scrum gathering rio 2014 - melhorando sua estratégia de testes automatizados

44
Melhorando sua Estratégia de Testes Automatizados Stefan Teixeira [email protected] / stefanteixeira.com.br

Upload: stefan-teixeira

Post on 25-Jun-2015

782 views

Category:

Technology


0 download

DESCRIPTION

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

TRANSCRIPT

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

Melhorando sua Estratégia de Testes Automatizados!

Stefan [email protected] / stefanteixeira.com.br

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

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

Testes Automatizados

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

Testes pela UI?

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

Testes de unidade?

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

Como as empresas começam a automatizar

testes?

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

Ferramentas record-playback

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

• Simples criar novos testes!• Não requerem skills de programação

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

Mas seria uma pena se a gente…

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

• … incluísse um novo campo?!• … alterasse o id de um campo?

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

E a médio/longo prazo…

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

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

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

Falando sobre feedback…

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

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

“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

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

E os testes de unidade?

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

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

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
Page 22: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados

Pirâmide de Automação de Testes

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

Mike Cohn (Succeeding with Agile)

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

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

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 26: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados

Arquillian (arquillian.org)

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

Testes pela UI

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

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

E quando automatizamos tudo pela UI?

Page 30: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados
Page 31: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados
Page 32: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados

Como melhorar testes pela UI?

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

#1: Page Objects

Page 34: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados
Page 35: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados

#2: Headless Browsers

Page 36: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados
Page 37: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados

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

#3: BDD

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

Linguagem Gherkin (Given/When/Then)

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

#4: Paralelizar testes

Page 41: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados
Page 42: Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados

#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

“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

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

Obrigado!

Stefan [email protected]!stefanteixeira.com.br!@stefan_teixeira