Primeiros Passos em Automação de Testes
Stefan Teixeira @stefan_teixeira
[email protected] stefanteixeira.com.br
stefanteixeira.com
• 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: [email protected] • Twitter: twitter.com/stefan_teixeira • Facebook: facebook.com/stefan.teixeira • LinkedIn: linkedin.com/in/stefanteixeira • GitHub: github.com/stefanteixeira • SlideShare: slideshare.net/stefanteixeira
Sobre
Vocês automatizam testes?
Estágios iniciais de automação
Automação hardcore
Pirâmide de Automação de Testes
Pirâmide de Automação de Testes
Testes de UI são mais lentos!
Tempo de feedback
•Perda de confiança do time
E quando o feedback é lento?
E quando o feedback é lento?
•Perda de confiança do time
•Time deixa de rodar os testes
Importância do tempo de build/feedback
•XP (Extreme Programming) ‣10-minute build
Importância do tempo de build/feedback
• 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
Testes de Unidade
•Rodam MUITO rápido ➤
feedback rápido!
Testes de Unidade
•Ó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
•Oferecem segurança para introduzir mudanças (safety net)
Cobertura de Código
“High coverage numbers are too easy to reach with low quality
testing"
- Martin Fowler
Importante!
•Cobertura alta != bons testes
Importante!
•Cobertura alta != bons testes
•Você pode ter 100% de cobertura sem nenhum assert nos testes! 💩
Exemplos de ferramentas
Testes de Serviço
Testes de Serviço
•Preencher gap entre unidade e UI
Testes de Serviço
•Testar regras de negócio “abaixo" da UI, sem depender da interface (Web, Mobile, Desktop)
Alguns tipos
•Testes de Componente / Integração
Alguns tipos
•Testes de Componente / Integração
•Testes de Webservices / APIs
Alguns tipos
•Testes de Componente / Integração
•Testes de Webservices / APIs
•Testes de Contrato
Exemplos de ferramentas
Testes de UI
•Mais lentos, frágeis, feedback lento
Testes de UI
•Focar nos cenários mais importantes da sua aplicação
Alguns tipos
•Cross Browser Testing (xBrowser)
Alguns tipos
•Cross Browser Testing (xBrowser)
•Headless Testing
Alguns tipos
•Cross Browser Testing (xBrowser)
•Headless Testing
•Visual Regression Testing
Visual Regression Testing: como é? 🤔
Ferramentas: xBrowser/Headless Testing
Ferramentas: Mobile UI Testing
Ferramentas: Visual Regression Testing
Hands-on
•https://github.com/stefanteixeira/primeiros-passos-automacao-testes
• JUnit + REST Assured + Selenium WebDriver
E quando o feedback é lento?Livros Recomendados
Obrigado!
Stefan Teixeira @stefan_teixeira
[email protected] stefanteixeira.com.br
stefanteixeira.com