scrum gathering rio 2014 - melhorando sua estratégia de testes automatizados
DESCRIPTION
Palestra ministrada no segundo dia do Scrum Gathering Rio 2014, em 05/09/2014.TRANSCRIPT
![Page 2: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/2.jpg)
Sobre o palestranteStefan 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: [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
2
![Page 3: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/3.jpg)
Testes Automatizados
![Page 4: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/4.jpg)
Testes pela UI?
![Page 5: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/5.jpg)
Testes de unidade?
![Page 6: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/6.jpg)
Como as empresas começam a automatizar
testes?
![Page 7: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/7.jpg)
Ferramentas record-playback
![Page 8: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/8.jpg)
• Simples criar novos testes!• Não requerem skills de programação
![Page 9: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/9.jpg)
Mas seria uma pena se a gente…
![Page 10: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/10.jpg)
• … incluísse um novo campo?!• … alterasse o id de um campo?
![Page 11: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/11.jpg)
E a médio/longo prazo…
![Page 12: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/12.jpg)
Problemas!!
• Alto custo de manutenção!
• Testes lentos -> aumento do tempo de build e de feedback!
• Falsos negativos
![Page 13: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/13.jpg)
E com o tempo de feedback lento…!
• Perda de confiança do time!
• Time deixa de rodar os testes
![Page 14: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/14.jpg)
Falando sobre feedback…
![Page 15: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/15.jpg)
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!!
![Page 16: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/16.jpg)
“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
![Page 17: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/17.jpg)
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
![Page 18: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/18.jpg)
E os testes de unidade?
![Page 19: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/19.jpg)
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
![Page 20: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/20.jpg)
Testes de unidade!!
• Por definição, testam componentes isolados!
• Como testamos a integração entre componentes? Criando um teste que navegue pela UI?
![Page 21: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/21.jpg)
![Page 22: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/22.jpg)
Pirâmide de Automação de Testes
![Page 23: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/23.jpg)
Mike Cohn (Succeeding with Agile)
![Page 24: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/24.jpg)
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)
![Page 25: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/25.jpg)
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
![Page 27: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/27.jpg)
Testes pela UI
![Page 28: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/28.jpg)
Foco de Testes pela UI:!!
• Smoke Tests!
• xBrowser Testing!
• Visual Regression Testing
![Page 29: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/29.jpg)
E quando automatizamos tudo pela UI?
![Page 30: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/30.jpg)
![Page 31: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/31.jpg)
![Page 32: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/32.jpg)
Como melhorar testes pela UI?
![Page 33: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/33.jpg)
#1: Page Objects
![Page 34: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/34.jpg)
![Page 35: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/35.jpg)
#2: Headless Browsers
![Page 36: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/36.jpg)
![Page 37: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/37.jpg)
Frameworks Headless Browsers
Selenium WebDriver PhantomJS (GhostDriver), HTMLUnit (HTMLUnitDriver)
Capybara PhantomJS (Poltergeist), HTMLUnit (Celerity)
CasperJS PhantomJS, SlimerJS
![Page 38: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/38.jpg)
#3: BDD
![Page 39: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/39.jpg)
Linguagem Gherkin (Given/When/Then)
![Page 40: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/40.jpg)
#4: Paralelizar testes
![Page 41: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/41.jpg)
![Page 42: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/42.jpg)
#5: Tratar código de teste como código de produção!
![Page 43: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados](https://reader033.vdocuments.mx/reader033/viewer/2022052621/558c00b8d8b42a101d8b4731/html5/thumbnails/43.jpg)
“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