Melhorando sua Estratégia 
de Testes Automatizados! 
Stefan Teixeira! 
stefanfk@gmail.com / stefanteixeira.com.br
Sobre o palestrante 
Stefan Teixeira! 
• QA Engineer @ Orga Systems! 
• Bacharel em Ciência da Computação pela UFRJ! 
• Fi...
Testes Automatizados
Testes pela UI?
Testes de unidade?
Como as empresas 
começam a automatizar 
testes?
Ferramentas record-playback
• Simples criar novos testes! 
• Não requerem skills de programação
Mas seria uma pena 
se a gente…
• … incluísse um novo campo?! 
• … alterasse o id de um campo?
E a médio/longo 
prazo…
Problemas!! 
• Alto custo de manutenção! 
• Testes lentos -> aumento do tempo de build e 
de feedback! 
• Falsos negativos
E com o tempo de feedback lento…! 
• Perda de confiança do time! 
• Time deixa de rodar os testes
Falando sobre 
feedback…
Importância do tempo de build e 
feedback! 
• XP (Extreme Programming)! 
‣ 10-minute build! 
! 
• James Shore (The Art of ...
“That's about the right amount of time to 
stretch my legs, get some coffee, and 
talk over our work with my pairing 
part...
Importância do tempo de build e 
feedback! 
• Dan Bodart! 
‣ Palestra - “Crazy Fast Build Times - or when 
10 seconds star...
E os testes de 
unidade?
Testes de unidade! 
! 
• Boa quantidade e cobertura de testes -> 
menor necessidade de testes exaustivos 
pela UI! 
• Roda...
Testes de unidade! 
! 
• Por definição, testam componentes isolados! 
• Como testamos a integração entre 
componentes? Cri...
Pirâmide de 
Automação de Testes
Mike Cohn (Succeeding with Agile)
Testes na camada de serviço! 
! 
• Preencher o gap entre unidade e UI! 
• Testar regras de negócio “abaixo" da UI! 
• Tamb...
Testes na camada de serviço! 
! 
• Também chamados de Testes de 
Integração, API Tests, etc.! 
• Testar a aplicação sem de...
Arquillian (arquillian.org)
Testes pela UI
Foco de Testes pela UI:! 
! 
• Smoke Tests! 
• xBrowser Testing! 
• Visual Regression Testing
E quando automatizamos 
tudo pela UI?
Como melhorar testes 
pela UI?
#1: Page Objects
#2: Headless Browsers
Frameworks Headless Browsers 
Selenium WebDriver 
PhantomJS (GhostDriver), 
HTMLUnit (HTMLUnitDriver) 
Capybara 
PhantomJS...
#3: BDD
Linguagem Gherkin (Given/When/Then)
#4: Paralelizar testes
#5: Tratar código de teste 
como código de produção!
“What makes a clean test? Three things. 
Readability, readability, and readability.”! 
! 
- Uncle Bob Martin, Clean Code! ...
Obrigado! 
Stefan Teixeira! 
stefanfk@gmail.com! 
stefanteixeira.com.br! 
@stefan_teixeira
Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados
Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados
Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados
Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados
Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados
Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados
Próximos SlideShares
Carregando em…5
×

Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados

1.236 visualizações

Publicada em

Palestra ministrada no segundo dia do Scrum Gathering Rio 2014, em 05/09/2014.

Publicada em: Tecnologia
0 comentários
3 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.236
No SlideShare
0
A partir de incorporações
0
Número de incorporações
33
Ações
Compartilhamentos
0
Downloads
45
Comentários
0
Gostaram
3
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados

  1. 1. Melhorando sua Estratégia de Testes Automatizados! Stefan Teixeira! stefanfk@gmail.com / stefanteixeira.com.br
  2. 2. Sobre o palestrante Stefan Teixeira! • QA Engineer @ Orga Systems! • Bacharel em Ciência da Computação pela UFRJ! • Finalizando MBA em Garantia de Qualidade de Software pela Escola Politécnica da UFRJ! • Mantém um blog técnico sobre testes: stefanteixeira.com.br! • Certificado CTAL-TM / TA pelo ISQTB e CPRE-FL pelo IREB! Contatos:! • E-mail: stefanfk@gmail.com! • Twitter: twitter.com/stefan_teixeira! • Facebook: facebook.com/stefan.teixeira! • LinkedIn: linkedin.com/in/stefanteixeira! • GitHub: github.com/stefanteixeira! • SlideShare: slideshare.net/stefanteixeira 2
  3. 3. Testes Automatizados
  4. 4. Testes pela UI?
  5. 5. Testes de unidade?
  6. 6. Como as empresas começam a automatizar testes?
  7. 7. Ferramentas record-playback
  8. 8. • Simples criar novos testes! • Não requerem skills de programação
  9. 9. Mas seria uma pena se a gente…
  10. 10. • … incluísse um novo campo?! • … alterasse o id de um campo?
  11. 11. E a médio/longo prazo…
  12. 12. Problemas!! • Alto custo de manutenção! • Testes lentos -> aumento do tempo de build e de feedback! • Falsos negativos
  13. 13. E com o tempo de feedback lento…! • Perda de confiança do time! • Time deixa de rodar os testes
  14. 14. Falando sobre feedback…
  15. 15. Importância do tempo de build e feedback! • XP (Extreme Programming)! ‣ 10-minute build! ! • James Shore (The Art of Agile Development)! ‣ 10 or 15-minute build! !
  16. 16. “That's about the right amount of time to stretch my legs, get some coffee, and talk over our work with my pairing partner.”! ! - James Shore, The Art of Agile Development
  17. 17. Importância do tempo de build e feedback! • Dan Bodart! ‣ Palestra - “Crazy Fast Build Times - or when 10 seconds starts to make you nervous”! ‣ Mostra formas de reduzir em até 10 vezes o tempo de build de uma aplicação! ‣ Link da palestra no InfoQ: http://goo.gl/ ScN6HH
  18. 18. E os testes de unidade?
  19. 19. Testes de unidade! ! • Boa quantidade e cobertura de testes -> menor necessidade de testes exaustivos pela UI! • Rodam muito rápido -> feedback mais rápido! • Muito efetivos para testar valores limite ou combinações de desvios no código
  20. 20. Testes de unidade! ! • Por definição, testam componentes isolados! • Como testamos a integração entre componentes? Criando um teste que navegue pela UI?
  21. 21. Pirâmide de Automação de Testes
  22. 22. Mike Cohn (Succeeding with Agile)
  23. 23. Testes na camada de serviço! ! • Preencher o gap entre unidade e UI! • Testar regras de negócio “abaixo" da UI! • Também chamados de Subcutaneous Tests (Martin Fowler)
  24. 24. Testes na camada de serviço! ! • Também chamados de Testes de Integração, API Tests, etc.! • Testar a aplicação sem depender da interface (Web, Mobile, etc.)! • Geralmente utilizados para BDD -> validar critérios de aceite das user stories
  25. 25. Arquillian (arquillian.org)
  26. 26. Testes pela UI
  27. 27. Foco de Testes pela UI:! ! • Smoke Tests! • xBrowser Testing! • Visual Regression Testing
  28. 28. E quando automatizamos tudo pela UI?
  29. 29. Como melhorar testes pela UI?
  30. 30. #1: Page Objects
  31. 31. #2: Headless Browsers
  32. 32. Frameworks Headless Browsers Selenium WebDriver PhantomJS (GhostDriver), HTMLUnit (HTMLUnitDriver) Capybara PhantomJS (Poltergeist), HTMLUnit (Celerity) CasperJS PhantomJS, SlimerJS
  33. 33. #3: BDD
  34. 34. Linguagem Gherkin (Given/When/Then)
  35. 35. #4: Paralelizar testes
  36. 36. #5: Tratar código de teste como código de produção!
  37. 37. “What makes a clean test? Three things. Readability, readability, and readability.”! ! - Uncle Bob Martin, Clean Code! ! ! “Any fool can write code that a computer can understand. Good programmers write code that humans can understand.”! ! - Martin Fowler, Refactoring: Improving the Design of Existing Code
  38. 38. Obrigado! Stefan Teixeira! stefanfk@gmail.com! stefanteixeira.com.br! @stefan_teixeira

×