TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

42
Globalcode – Open4education Melhorando sua Estratégia de Testes Automatizados Stefan Teixeira [email protected] / stefanteixeira.com.br

description

Palestra ministrada na trilha de Testes do TDC 2014 Florianópolis, no dia 15 de Maio.

Transcript of TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Page 1: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Melhorando sua Estratégia de Testes Automatizados

Stefan [email protected] / stefanteixeira.com.br

Page 2: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Sobre o palestrante

Stefan TeixeiraQA Engineer @ Orga Systems

Bacharel em Ciência da Computação pela UFRJ

Cursando MBA em Garantia de Qualidade de Software na Escola Politécnica da UFRJ

Certificado CTAL-TA / CTAL-TM pelo ISTQB e CPRE-FL pelo IREB

Contatos:E-mail: [email protected]

Blog: stefanteixeira.com.br

Facebook: facebook.com/stefan.teixeira

LinkedIn: linkedin.com/in/stefanteixeira

Untappd: untappd.com/user/stefanteixeira

Page 3: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Testes Automatizados

Page 4: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Testes pela UI?

Page 5: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Testes de unidade?

Page 6: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Como as empresas começam a automatizar

testes?

Page 7: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Ferramentas record-playback

Page 8: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Ferramentas record-playback

Fácil criar testes novos

Não requerem skills de programação

Page 9: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Mas seria uma pena se a gente...

Page 10: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Ferramentas record-playback

...incluísse um campo novo?

...alterasse o id de um campo?

Page 11: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

E a médio/longo prazo...

Page 12: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Ferramentas record-playback

Problemas!

Alto custo de manutenção

Testes lentos -> aumento do tempo de build e de feedback

Falsos negativos

Page 13: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Ferramentas record-playback

E com o tempo de feedback lento...Perda de confiança do time

Time deixa de rodar os testes

Page 14: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Falando sobre feedback...

Page 15: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

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

“That’s about the right amount of time to stretch my legs, get some coffee, and talk over our work with my pairing partner.”

Page 16: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

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

Page 17: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

E os testes de unidade?

Page 18: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

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 19: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Testes de unidade

Por definição, testam componentes isolados

Como testamos a integração entre eles? Criando um teste que navegue pela UI?

Page 20: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Page 21: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Pirâmide de Automação de Testes

Page 22: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Pirâmide de Automação de Testes

Mike Cohn (Succeeding with Agile)

Page 23: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

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 24: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Testes na camada de serviço

Testar a aplicação sem depender da interface (web, android, iOS...)

Geralmente utilizados para testes com BDDValidar critérios de aceite das user stories

Page 25: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Arquillian

arquillian.org

Page 26: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Testes na UI

Page 27: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Testes na UI

Smoke Tests

xBrowser Testing

Visual Regression Testing

Page 28: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

E quando automatizamos tudo pela UI?

Page 29: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Page 30: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Como evitar os problemas de testes pela UI?

Page 31: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Page Objects

Page 32: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

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

“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 33: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Headless Browsers

http://stefanteixeira.com.br/2014/05/11/headless-testing-com-ghostdriver/

Page 34: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Headless Browsers

Frameworks e Runners

Selenium WebDriverGhostDriver

HtmlUnitDriver

CapybaraPoltergeist

Celerity

Page 35: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

BDD

Linguagem Gherkin (Given-When-Then)

Page 36: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Paralelizar Testes

Page 37: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Visual Regression Tests

Page 38: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Page 39: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Page 40: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Usos

Validar valores de CSS

Comparar screenshots

Validar design responsivo

Page 41: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Tools

Page 42: TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Globalcode – Open4education

Obrigado!

Stefan Teixeira

[email protected]

stefanteixeira.com.br

br.linkedin.com/in/stefanteixeira