Post on 17-Feb-2017
Primeiros Passos em Automação de Testes
Stefan Teixeira @stefan_teixeira
stefanfk@gmail.com stefanteixeira.com.br
stefanteixeira.com
About meStefan Teixeira
• QA Engineer @ M4U • Entusiasta de Automação de Testes, Agile Testing e
DevOps • Blogs técnicos: stefanteixeira.com.br (pt-br) /
stefanteixeira.com (en)
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
Importância do tempo de build/feedback
• XP (Extreme Programming) ➡ 10-minute build
• James Shore (The Art of Agile Development)
➡ 10 or 15-minute build
“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
Testes de Unidade
• Rodam MUITO rápido = feedback mais rápido!
• Ótimos para testar valores limite ou combinações de desvios no código
Testes de Unidade
• Boa quantidade e cobertura de testes = menor necessidade de testes exaustivos pela UI
Testes de Unidade
• Boa quantidade e cobertura de testes = menor necessidade de testes exaustivos pela UI
• Te oferecerem segurança para introduzir mudanças (safety net)
Cobertura de código: dicas
• “High coverage numbers are too easy to reach with low quality testing” (Martin Fowler)
Cobertura de código: dicas
• “High coverage numbers are too easy to reach with low quality testing” (Martin Fowler)
• Cobertura alta != bons testes
Cobertura de código: dicas
• “High coverage numbers are too easy to reach with low quality testing” (Martin Fowler)
• Cobertura alta != bons testes
• Você pode ter 100% de cobertura sem nenhum assert nos testes!
Testes no nível de Serviço
• Preencher o gap entre Unidade e UI
• Testar regras de negócio “abaixo” da UI, sem depender da interface (Web, Mobile, Desktop)
Testes no nível de Serviço
• Preencher o gap entre Unidade e UI
• Testar regras de negócio “abaixo” da UI, sem depender da interface (Web, Mobile, Desktop)
• Subcutaneous Tests (Martin Fowler)
Testes no nível de Serviço: Tipos
• Testes de Componente / Integração
• Testes de WebServices / APIs
Testes no nível de Serviço: Tipos
• Testes de Componente / Integração
• Testes de WebServices / APIs
• Testes de Contrato
Testes pela UI
• Mais lentos/frágeis, feedback lento
• Ponto de vista do usuário final
• Focar nos cenários mais importantes
• Projeto de exemplo: https://github.com/stefanteixeira/primeiros-passos-automacao-testes
• JUnit + REST-Assured + Selenium Webdriver
Hands-on
Obrigado!
Stefan Teixeira @stefan_teixeira
stefanfk@gmail.com stefanteixeira.com.br
stefanteixeira.com