Apresentação feita em 10 de outubro de 2013 na PUC-Rio, Rio de Janeiro, Brasil.
Aborda as diferentes formas de testes de software e como elas se aplicam no desenvolvimento do dia a dia. O objetivo é fazer com que conceitos antes abstratos e acadêmicos sejam compreendidos em contextos mais próximos da realidade dos desenvolvedores.
Abordamos aqui as principais ferramentas que nos dão uma visão realista do nosso projeto e nos ajudam a encontrar os pontos que podem ser melhorados/corrigidos
IT Talks - Testes Automatizados - Porque você deve ter? Versão: FinalClayton K. N. Passos
Palestra dada em 2013 sobre testes automatizados. O foco desta apresentação foi gerencial, mostrando números de mercado, e de experiências do autor a fim de comprovar o real benefício do uso de testes automatizados.
Também foi discutido, que a automação de teste não descarta os testes manuais, eles continuam sendo necessários e muito úteis, o teste automatizado libera os testadores a utilizar sua criatividade para inventar cenários ainda não imaginados
Abordamos aqui as principais ferramentas que nos dão uma visão realista do nosso projeto e nos ajudam a encontrar os pontos que podem ser melhorados/corrigidos
IT Talks - Testes Automatizados - Porque você deve ter? Versão: FinalClayton K. N. Passos
Palestra dada em 2013 sobre testes automatizados. O foco desta apresentação foi gerencial, mostrando números de mercado, e de experiências do autor a fim de comprovar o real benefício do uso de testes automatizados.
Também foi discutido, que a automação de teste não descarta os testes manuais, eles continuam sendo necessários e muito úteis, o teste automatizado libera os testadores a utilizar sua criatividade para inventar cenários ainda não imaginados
Automacao de Testes - do zero ao clean codeJoyce Bastos
Como ganhar empoderamento na automação de testes (web ou mobile)? Mais do que estudar uma linguagem específica de programação, temos a lógica e a colaboração por trás da automação. Então, como podemos começar a programar o mínimo possível envolvendo os conceitos de (classe, método e objeto) e ir evoluindo até envolver conceitos como interface, page objects, herança. Será mostrado um código inicial com conceitos bem básico porém que promovem a automação, um código intermediário com alguns conceitos um pouco mais avançados e que também promovem a automação e no fim um código com as práticas de clean code e que promove a mesma automação.
Qualidade em projetos PHP - PHPSC Conf 2011Luís Cobucci
Na nossa vida é importante nos preocuparmos com nossa saúde, e DEVEMOS fazer o mesmo com a saúde dos nossos softwares.
Você verá aqui as principais ferramentas para medir qualidade e encontrar alguns tumores nos seus projetos!
Presentation about Aceptance Test-Driven Development in Android. The source code using to guide this presentation can be found at:
https://github.com/pedroaugustofr/AndroidConverterATDD
TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...Bruno Tanoue
O profissional de QA certamente é necessário dentro de uma empresa. Mas em muitos casos, infelizmente, existem empresas que não aderem a cultura deste profissional. Isto se torna um grande desafio para as equipes de desenvolvimento, aumentar a qualidade de seus códigos. Esta apresentação visa dar dicas aprendidas com erros desta tentativa de tentar melhorar a qualidade de código e o tempo de execução de testes para um feedback rápido.
Esta apresentação fala sobre boas práticas no desenvolvimento de software utilizando o conceito de TDD.
Também apresenta no final um case sobre documentação de APIs Restful utilizando testes de integração, integração contínua e deploy contínuo.
Nessa apresentação abordamos a importância da automação de testes nos projetos de software, as melhores práticas de automação, as fases de testes e adicionamos exercícios 'mão na massa' no Selenium.
Selenium é uma ferramenta de automação de testes funcionais criada originalmente pela ThoughtWorks, e é hoje, uma das ferramentas de automação mais utilizadas no mundo.
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...Claudinei Brito Junior
Minicurso ministrado na XII SemanaTI na UNIVEM - Marília/SP, nos dias 23 e 24 de setembro de 2019. O título do minicurso é Técnicas de Teste e Automatização do Teste de Unidade e o minicurso tratava na teoria sobre algumas técnicas de Teste de Software, bem como a Técnica de Teste Estrutural, Teste Funcional e Teste Baseado em Defeitos, assim como aprendemos sobre a fase do Teste de Unidade, e ali, aplicamos na prática a Técnica de Teste Estrutural e tratamos sobre a teoria e a prática da automação de testes.
Design for change: Fatores que influenciam na longevidade de um Software PHPPablo Dall'Oglio
Nesta palestra, são abordados diversos aspectos da Engenharia de Software, desde BPMN, UML e uso de padrões de projeto, que influenciam diretamente na longevidade de um Software, ou seja, em sua Qualidade e Manutenibilidade. Para tal, são abordadas as contribuições que cada uma das áreas da Engenharia de Software pode dar à um projeto, com foco em Análise, Projeto e Arquitetura da solução, sempre com exemplos em PHP.
Automacao de Testes - do zero ao clean codeJoyce Bastos
Como ganhar empoderamento na automação de testes (web ou mobile)? Mais do que estudar uma linguagem específica de programação, temos a lógica e a colaboração por trás da automação. Então, como podemos começar a programar o mínimo possível envolvendo os conceitos de (classe, método e objeto) e ir evoluindo até envolver conceitos como interface, page objects, herança. Será mostrado um código inicial com conceitos bem básico porém que promovem a automação, um código intermediário com alguns conceitos um pouco mais avançados e que também promovem a automação e no fim um código com as práticas de clean code e que promove a mesma automação.
Qualidade em projetos PHP - PHPSC Conf 2011Luís Cobucci
Na nossa vida é importante nos preocuparmos com nossa saúde, e DEVEMOS fazer o mesmo com a saúde dos nossos softwares.
Você verá aqui as principais ferramentas para medir qualidade e encontrar alguns tumores nos seus projetos!
Presentation about Aceptance Test-Driven Development in Android. The source code using to guide this presentation can be found at:
https://github.com/pedroaugustofr/AndroidConverterATDD
TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...Bruno Tanoue
O profissional de QA certamente é necessário dentro de uma empresa. Mas em muitos casos, infelizmente, existem empresas que não aderem a cultura deste profissional. Isto se torna um grande desafio para as equipes de desenvolvimento, aumentar a qualidade de seus códigos. Esta apresentação visa dar dicas aprendidas com erros desta tentativa de tentar melhorar a qualidade de código e o tempo de execução de testes para um feedback rápido.
Esta apresentação fala sobre boas práticas no desenvolvimento de software utilizando o conceito de TDD.
Também apresenta no final um case sobre documentação de APIs Restful utilizando testes de integração, integração contínua e deploy contínuo.
Nessa apresentação abordamos a importância da automação de testes nos projetos de software, as melhores práticas de automação, as fases de testes e adicionamos exercícios 'mão na massa' no Selenium.
Selenium é uma ferramenta de automação de testes funcionais criada originalmente pela ThoughtWorks, e é hoje, uma das ferramentas de automação mais utilizadas no mundo.
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...Claudinei Brito Junior
Minicurso ministrado na XII SemanaTI na UNIVEM - Marília/SP, nos dias 23 e 24 de setembro de 2019. O título do minicurso é Técnicas de Teste e Automatização do Teste de Unidade e o minicurso tratava na teoria sobre algumas técnicas de Teste de Software, bem como a Técnica de Teste Estrutural, Teste Funcional e Teste Baseado em Defeitos, assim como aprendemos sobre a fase do Teste de Unidade, e ali, aplicamos na prática a Técnica de Teste Estrutural e tratamos sobre a teoria e a prática da automação de testes.
Design for change: Fatores que influenciam na longevidade de um Software PHPPablo Dall'Oglio
Nesta palestra, são abordados diversos aspectos da Engenharia de Software, desde BPMN, UML e uso de padrões de projeto, que influenciam diretamente na longevidade de um Software, ou seja, em sua Qualidade e Manutenibilidade. Para tal, são abordadas as contribuições que cada uma das áreas da Engenharia de Software pode dar à um projeto, com foco em Análise, Projeto e Arquitetura da solução, sempre com exemplos em PHP.
14. O que eu realmente queria
$ cd locadora
$ jake test
.....
--> success!
10/11/2013Rodrigo Dumont 14
15. Motivação
Se testes forem difíceis:
Eu não vou testar tanto
Não vou saber saber se algo quebrou
Feedback demorado
… ou pior: código em produção com erros
10/11/2013Rodrigo Dumont 15
16. A velha questão do custo
10/11/2013Rodrigo Dumont 16
projeto desenvolvimento integração entrega
$$custo
17. Testes automatizados devem:
Ter pré-requisitos sucintos
Ser facilmente executáveis
Ser legíveis
Ter resultado legível
10/11/2013Rodrigo Dumont 17
18. Estrutura de um teste
10/11/2013Rodrigo Dumont 18
Pré-condição
Teste
Pós-condição
Contexto
Ação
Verificação
Arrumar
Agir
Afirmar
20. Testes unitários
São muito rápidos ( < 30s)
Testam unidades de
código isoladamente
Parte do processo de Test-
Driven Development
10/11/2013Rodrigo Dumont 20
Funcionalidade
OK OK OK
OK OK OK FAIL OK
OK OK OK OK OK
OK FAIL OK OK OK
23. Testes de integração
São rápidos ( < 2min)
Testam a integração dos
componentes em cada
funcionalidade
Costuma integrar o
processo de Behaviour-
Driven Development
10/11/2013Rodrigo Dumont 23
Funcionalidade
OK ? ? ?
? ? ? ? ?
? ? ? ? ?
? ? ? ? ?
24. Behaviour Driven
Development
Artigo publicado por Dan North em 2006
Introducing BDD
Inspirou o projeto Cucumber
E, portanto, a linguagem Gherkin
“Acceptance criteria should be executable”
“Critérios de aceitação devem ser executáveis”
Dan North
26. Gherkin suporta vários
idiomas
Inglês
Feature: Sum
Scenario: Add two numbers
Given I have entered 50 into the calculator
And I have entered 70 into the calculator
When I press add
Then the result should be 120 on the screen
27. Gherkin suporta vários
idiomas
Português
Funcionalidade: Sum
Cenário: Somar dois números
Dado que escrevi 50 na calculadora
E que escrevi 70 na calculadora
Quando pressionar o botão de somar
Então o resultado na tela deverá ser 120
28. Gherkin suporta vários
idiomas
LOLCAT
OH HAI: Sum
MUSHUN: Add two numbers
I CAN HAZ entered 50 into the calculator
AN entered 70 into the calculator
WEN I press add
DEN the result should be 120 on the screen
29. Testes de Sistema
Geralmente são manuais
Podem ser automatizados
Testam interações completas
10/11/2013Rodrigo Dumont 29
31. Recapitulando
Execute o tempo todo os testes unitários! Eles devem:
Ser muito rápidos
Ser uito fáceis de executar
Ter grande cobertura do seu código
Não suba nada sem executar os testes de integração
Eles não devem demorar
Devem apontar problemas não cobertos pelos testes unitários
Observe atentamente os resultados dos testes de Sistema
Se houver falhas, volte à versão anterior
10/11/2013Rodrigo Dumont 31
33. Referências
The Art of Unit Testing
Ray Osherove
List of unit testing frameworks
(http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks)
Introducing BDD | Dan North (http://dannorth.net/introducing-bdd/)
Cucumber – Making BDD fun (http://cukes.info/)
Gherkin – Tool Support
(https://github.com/cucumber/gherkin/wiki/Tool-Support)
Selenium – Web Browser Automation (http://www.seleniumhq.org/)
10/11/2013Rodrigo Dumont 33