TDC 2014 - Melhorando sua Estratégia de Testes Automatizados

Post on 18-Dec-2014

549 views 2 download

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

Globalcode – Open4education

Melhorando sua Estratégia de Testes Automatizados

Stefan Teixeirastefanfk@gmail.com / stefanteixeira.com.br

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: stefanfk@gmail.com

Blog: stefanteixeira.com.br

Facebook: facebook.com/stefan.teixeira

LinkedIn: linkedin.com/in/stefanteixeira

Untappd: untappd.com/user/stefanteixeira

Globalcode – Open4education

Testes Automatizados

Globalcode – Open4education

Testes pela UI?

Globalcode – Open4education

Testes de unidade?

Globalcode – Open4education

Como as empresas começam a automatizar

testes?

Globalcode – Open4education

Ferramentas record-playback

Globalcode – Open4education

Ferramentas record-playback

Fácil criar testes novos

Não requerem skills de programação

Globalcode – Open4education

Mas seria uma pena se a gente...

Globalcode – Open4education

Ferramentas record-playback

...incluísse um campo novo?

...alterasse o id de um campo?

Globalcode – Open4education

E a médio/longo prazo...

Globalcode – Open4education

Ferramentas record-playback

Problemas!

Alto custo de manutenção

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

Falsos negativos

Globalcode – Open4education

Ferramentas record-playback

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

Time deixa de rodar os testes

Globalcode – Open4education

Falando sobre feedback...

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.”

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

Globalcode – Open4education

E os testes de unidade?

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

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?

Globalcode – Open4education

Globalcode – Open4education

Pirâmide de Automação de Testes

Globalcode – Open4education

Pirâmide de Automação de Testes

Mike Cohn (Succeeding with Agile)

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)

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

Globalcode – Open4education

Arquillian

arquillian.org

Globalcode – Open4education

Testes na UI

Globalcode – Open4education

Testes na UI

Smoke Tests

xBrowser Testing

Visual Regression Testing

Globalcode – Open4education

E quando automatizamos tudo pela UI?

Globalcode – Open4education

Globalcode – Open4education

Como evitar os problemas de testes pela UI?

Globalcode – Open4education

Page Objects

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

Globalcode – Open4education

Headless Browsers

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

Globalcode – Open4education

Headless Browsers

Frameworks e Runners

Selenium WebDriverGhostDriver

HtmlUnitDriver

CapybaraPoltergeist

Celerity

Globalcode – Open4education

BDD

Linguagem Gherkin (Given-When-Then)

Globalcode – Open4education

Paralelizar Testes

Globalcode – Open4education

Visual Regression Tests

Globalcode – Open4education

Globalcode – Open4education

Globalcode – Open4education

Usos

Validar valores de CSS

Comparar screenshots

Validar design responsivo

Globalcode – Open4education

Tools

Globalcode – Open4education

Obrigado!

Stefan Teixeira

stefanfk@gmail.com

stefanteixeira.com.br

br.linkedin.com/in/stefanteixeira