SlideShare a Scribd company logo
1 of 44
Download to read offline
Melhorando sua Estratégia 
de Testes Automatizados! 
Stefan Teixeira! 
stefanfk@gmail.com / stefanteixeira.com.br
Sobre o palestrante 
Stefan 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: stefanfk@gmail.com! 
• Twitter: twitter.com/stefan_teixeira! 
• Facebook: facebook.com/stefan.teixeira! 
• LinkedIn: linkedin.com/in/stefanteixeira! 
• GitHub: github.com/stefanteixeira! 
• SlideShare: slideshare.net/stefanteixeira 
2
Testes Automatizados
Testes pela UI?
Testes de unidade?
Como as empresas 
começam a automatizar 
testes?
Ferramentas record-playback
• Simples criar novos testes! 
• Não requerem skills de programação
Mas seria uma pena 
se a gente…
• … incluísse um novo campo?! 
• … alterasse o id de um campo?
E a médio/longo 
prazo…
Problemas!! 
• Alto custo de manutenção! 
• Testes lentos -> aumento do tempo de build e 
de feedback! 
• Falsos negativos
E com o tempo de feedback lento…! 
• Perda de confiança do time! 
• Time deixa de rodar os testes
Falando sobre 
feedback…
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.”! 
! 
- James Shore, The Art of Agile Development
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
E os testes de 
unidade?
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
Testes de unidade! 
! 
• Por definição, testam componentes isolados! 
• Como testamos a integração entre 
componentes? Criando um teste que 
navegue pela UI?
Pirâmide de 
Automação de Testes
Mike Cohn (Succeeding with Agile)
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)
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
Arquillian (arquillian.org)
Testes pela UI
Foco de Testes pela UI:! 
! 
• Smoke Tests! 
• xBrowser Testing! 
• Visual Regression Testing
E quando automatizamos 
tudo pela UI?
Como melhorar testes 
pela UI?
#1: Page Objects
#2: Headless Browsers
Frameworks Headless Browsers 
Selenium WebDriver 
PhantomJS (GhostDriver), 
HTMLUnit (HTMLUnitDriver) 
Capybara 
PhantomJS (Poltergeist), 
HTMLUnit (Celerity) 
CasperJS PhantomJS, SlimerJS
#3: BDD
Linguagem Gherkin (Given/When/Then)
#4: Paralelizar testes
#5: 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
Obrigado! 
Stefan Teixeira! 
stefanfk@gmail.com! 
stefanteixeira.com.br! 
@stefan_teixeira

More Related Content

What's hot

Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...
Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...
Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...
Jaqueline Ramos
 

What's hot (20)

A Importância do Teste Continuo
A Importância do Teste ContinuoA Importância do Teste Continuo
A Importância do Teste Continuo
 
Feedback mais rápido na sua build dividindo os testes funcionais
Feedback mais rápido na sua build dividindo os testes funcionaisFeedback mais rápido na sua build dividindo os testes funcionais
Feedback mais rápido na sua build dividindo os testes funcionais
 
Coders On Beer + Ministry Of Testing - Agile Testing
Coders On Beer + Ministry Of Testing - Agile TestingCoders On Beer + Ministry Of Testing - Agile Testing
Coders On Beer + Ministry Of Testing - Agile Testing
 
Ruby Conf Brasil 2015
Ruby Conf Brasil 2015Ruby Conf Brasil 2015
Ruby Conf Brasil 2015
 
MTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression TestingMTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression Testing
 
Criação de uma equipe de QAs, do Waterfall ao Agile
Criação de uma equipe de QAs, do Waterfall ao AgileCriação de uma equipe de QAs, do Waterfall ao Agile
Criação de uma equipe de QAs, do Waterfall ao Agile
 
DevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a QualidadeDevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a Qualidade
 
Agile Brazil 2014 - Visual Regression Testing com PhantomCSS
Agile Brazil 2014 - Visual Regression Testing com PhantomCSSAgile Brazil 2014 - Visual Regression Testing com PhantomCSS
Agile Brazil 2014 - Visual Regression Testing com PhantomCSS
 
Application Insights - Monitore a sua aplicação em tempo real
Application Insights - Monitore a sua aplicação em tempo realApplication Insights - Monitore a sua aplicação em tempo real
Application Insights - Monitore a sua aplicação em tempo real
 
Acelere - e melhore! - o feedback com testes automatizados rápidos
Acelere - e melhore! - o feedback com testes automatizados rápidosAcelere - e melhore! - o feedback com testes automatizados rápidos
Acelere - e melhore! - o feedback com testes automatizados rápidos
 
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesTOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
 
DevOps Summit Brasil - O que não te contaram sobre Agile Testing
DevOps Summit Brasil - O que não te contaram sobre Agile TestingDevOps Summit Brasil - O que não te contaram sobre Agile Testing
DevOps Summit Brasil - O que não te contaram sobre Agile Testing
 
POG - Definição e Conceitos
POG - Definição e ConceitosPOG - Definição e Conceitos
POG - Definição e Conceitos
 
Visual Regression Testing: mais um tipo de teste pra sua pipeline
Visual Regression Testing: mais um tipo de teste pra sua pipelineVisual Regression Testing: mais um tipo de teste pra sua pipeline
Visual Regression Testing: mais um tipo de teste pra sua pipeline
 
Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...
Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...
Gerenciando seu débito técnico, utilizando Sonarqube e Team Foundation Server...
 
Tester, pegue suas coisas, você está demitido
Tester, pegue suas coisas, você está demitidoTester, pegue suas coisas, você está demitido
Tester, pegue suas coisas, você está demitido
 
Android Dev Conference 2017 - Automação de Testes na Cloud
Android Dev Conference 2017 - Automação de Testes na CloudAndroid Dev Conference 2017 - Automação de Testes na Cloud
Android Dev Conference 2017 - Automação de Testes na Cloud
 
Sonarqube
SonarqubeSonarqube
Sonarqube
 
3 noções básicas para automação de testes efetivos - Taíse Dias da Silva
3 noções básicas para automação de testes efetivos - Taíse Dias da Silva 3 noções básicas para automação de testes efetivos - Taíse Dias da Silva
3 noções básicas para automação de testes efetivos - Taíse Dias da Silva
 
1º Encontro do Grupo de Testes Carioca - Primeiros Passos em Automação de Testes
1º Encontro do Grupo de Testes Carioca - Primeiros Passos em Automação de Testes1º Encontro do Grupo de Testes Carioca - Primeiros Passos em Automação de Testes
1º Encontro do Grupo de Testes Carioca - Primeiros Passos em Automação de Testes
 

Similar to Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados

Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?
Igor Abade
 
Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALM
Adriano Bertucci
 

Similar to Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados (20)

QConRio 2014 - Uso de Headless Browsers em Testes Automatizados
QConRio 2014 - Uso de Headless Browsers em Testes AutomatizadosQConRio 2014 - Uso de Headless Browsers em Testes Automatizados
QConRio 2014 - Uso de Headless Browsers em Testes Automatizados
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?
 
Ideais Cowabunga - Headless Testing com GhostDriver
Ideais Cowabunga - Headless Testing com GhostDriverIdeais Cowabunga - Headless Testing com GhostDriver
Ideais Cowabunga - Headless Testing com GhostDriver
 
Scrum Gathering Rio 2015 - Testando na nuvem a UI e o JavaScript de sua aplic...
Scrum Gathering Rio 2015 - Testando na nuvem a UI e o JavaScript de sua aplic...Scrum Gathering Rio 2015 - Testando na nuvem a UI e o JavaScript de sua aplic...
Scrum Gathering Rio 2015 - Testando na nuvem a UI e o JavaScript de sua aplic...
 
Cultura de testes em times mobile
Cultura de testes em times mobileCultura de testes em times mobile
Cultura de testes em times mobile
 
Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALM
 
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareDevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
 
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOps
 
QAOps - O QA com pézinho em DevOps (Ministry of Testing Floripa 2019)
QAOps - O QA com pézinho em DevOps (Ministry of Testing Floripa 2019)QAOps - O QA com pézinho em DevOps (Ministry of Testing Floripa 2019)
QAOps - O QA com pézinho em DevOps (Ministry of Testing Floripa 2019)
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração Contínua
 
Ágil na Prática
Ágil na PráticaÁgil na Prática
Ágil na Prática
 
Agile Brazil 2015 - Testando na Nuvem a UI e o JavaScript de sua aplicação
Agile Brazil 2015 - Testando na Nuvem a UI e o JavaScript de sua aplicaçãoAgile Brazil 2015 - Testando na Nuvem a UI e o JavaScript de sua aplicação
Agile Brazil 2015 - Testando na Nuvem a UI e o JavaScript de sua aplicação
 
Qualidade - Porque testar seu software?
Qualidade - Porque testar seu software?Qualidade - Porque testar seu software?
Qualidade - Porque testar seu software?
 
SonarQube
SonarQubeSonarQube
SonarQube
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end selenium
 
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
 
[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados
 
Dezembro 2015 - Primeiros Passos em Automação de Testes
Dezembro 2015 - Primeiros Passos em Automação de Testes Dezembro 2015 - Primeiros Passos em Automação de Testes
Dezembro 2015 - Primeiros Passos em Automação de Testes
 

More from Stefan Teixeira

More from Stefan Teixeira (20)

Scrum Gathering Portugal 2016 - Containerizing Tests with Docker
Scrum Gathering Portugal 2016 - Containerizing Tests with DockerScrum Gathering Portugal 2016 - Containerizing Tests with Docker
Scrum Gathering Portugal 2016 - Containerizing Tests with Docker
 
Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit
Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnitAgile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit
Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit
 
Latinoware 2016 - Continuous Delivery com ferramentas open source
Latinoware 2016 - Continuous Delivery com ferramentas open sourceLatinoware 2016 - Continuous Delivery com ferramentas open source
Latinoware 2016 - Continuous Delivery com ferramentas open source
 
Ágiles 2016 - Using open source tools to support Continuous Delivery
Ágiles 2016 - Using open source tools to support Continuous DeliveryÁgiles 2016 - Using open source tools to support Continuous Delivery
Ágiles 2016 - Using open source tools to support Continuous Delivery
 
6º Encontro do Grupo de Testes Carioca - Testes em um contexto de Continuous ...
6º Encontro do Grupo de Testes Carioca - Testes em um contexto de Continuous ...6º Encontro do Grupo de Testes Carioca - Testes em um contexto de Continuous ...
6º Encontro do Grupo de Testes Carioca - Testes em um contexto de Continuous ...
 
TDC 2016 SP - Desmistificando cobertura de código como métrica de qualidade
TDC 2016 SP - Desmistificando cobertura de código como métrica de qualidadeTDC 2016 SP - Desmistificando cobertura de código como métrica de qualidade
TDC 2016 SP - Desmistificando cobertura de código como métrica de qualidade
 
TDC 2016 SP - Continuous Delivery para aplicações Java com ferramentas open-s...
TDC 2016 SP - Continuous Delivery para aplicações Java com ferramentas open-s...TDC 2016 SP - Continuous Delivery para aplicações Java com ferramentas open-s...
TDC 2016 SP - Continuous Delivery para aplicações Java com ferramentas open-s...
 
TDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecer
TDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecerTDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecer
TDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecer
 
TDC 2016 SP - Cobertura de código de procedures T-SQL com SQLCC
TDC 2016 SP - Cobertura de código de procedures T-SQL com SQLCCTDC 2016 SP - Cobertura de código de procedures T-SQL com SQLCC
TDC 2016 SP - Cobertura de código de procedures T-SQL com SQLCC
 
Scrum Gathering Rio 2016 - Conteinerizando Testes com Docker Compose
Scrum Gathering Rio 2016 - Conteinerizando Testes com Docker ComposeScrum Gathering Rio 2016 - Conteinerizando Testes com Docker Compose
Scrum Gathering Rio 2016 - Conteinerizando Testes com Docker Compose
 
Minas Testing Conference 2016 - Testes de Carga com Locust
Minas Testing Conference 2016 - Testes de Carga com LocustMinas Testing Conference 2016 - Testes de Carga com Locust
Minas Testing Conference 2016 - Testes de Carga com Locust
 
4º Encontro do Grupo de Testes Carioca - Testes de Carga com Locust
4º Encontro do Grupo de Testes Carioca - Testes de Carga com Locust4º Encontro do Grupo de Testes Carioca - Testes de Carga com Locust
4º Encontro do Grupo de Testes Carioca - Testes de Carga com Locust
 
Meetup DevOps Carioca - Testes de Carga com Locust
Meetup DevOps Carioca - Testes de Carga com LocustMeetup DevOps Carioca - Testes de Carga com Locust
Meetup DevOps Carioca - Testes de Carga com Locust
 
TDC 2016 Floripa - Criando APIs REST em minutos com Spark + Java 8
TDC 2016 Floripa - Criando APIs REST em minutos com Spark + Java 8TDC 2016 Floripa - Criando APIs REST em minutos com Spark + Java 8
TDC 2016 Floripa - Criando APIs REST em minutos com Spark + Java 8
 
TDC 2016 Floripa - Aprendendo Docker sem bruxaria
TDC 2016 Floripa - Aprendendo Docker sem bruxariaTDC 2016 Floripa - Aprendendo Docker sem bruxaria
TDC 2016 Floripa - Aprendendo Docker sem bruxaria
 
TDC 2016 Floripa - Testando APIs REST com Supertest e Promises
TDC 2016 Floripa - Testando APIs REST com Supertest e PromisesTDC 2016 Floripa - Testando APIs REST com Supertest e Promises
TDC 2016 Floripa - Testando APIs REST com Supertest e Promises
 
Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história ...
Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história ...Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história ...
Agile Testers Conference 2016 - GoCD + Docker + Docker Compose: uma história ...
 
VR Dev Summit 2016 - Primeiros Passos em Automação de Testes
VR Dev Summit 2016 - Primeiros Passos em Automação de TestesVR Dev Summit 2016 - Primeiros Passos em Automação de Testes
VR Dev Summit 2016 - Primeiros Passos em Automação de Testes
 
Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor
Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amorMeetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor
Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor
 
Meetup AngularJS Rio - Testes e2e para apps AngularJS com Protractor
Meetup AngularJS Rio - Testes e2e para apps AngularJS com ProtractorMeetup AngularJS Rio - Testes e2e para apps AngularJS com Protractor
Meetup AngularJS Rio - Testes e2e para apps AngularJS com Protractor
 

Recently uploaded

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Recently uploaded (6)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

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

  • 1. Melhorando sua Estratégia de Testes Automatizados! Stefan Teixeira! stefanfk@gmail.com / stefanteixeira.com.br
  • 2. Sobre o palestrante Stefan 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: stefanfk@gmail.com! • Twitter: twitter.com/stefan_teixeira! • Facebook: facebook.com/stefan.teixeira! • LinkedIn: linkedin.com/in/stefanteixeira! • GitHub: github.com/stefanteixeira! • SlideShare: slideshare.net/stefanteixeira 2
  • 6. Como as empresas começam a automatizar testes?
  • 8. • Simples criar novos testes! • Não requerem skills de programação
  • 9. Mas seria uma pena se a gente…
  • 10. • … incluísse um novo campo?! • … alterasse o id de um campo?
  • 11. E a médio/longo prazo…
  • 12. Problemas!! • Alto custo de manutenção! • Testes lentos -> aumento do tempo de build e de feedback! • Falsos negativos
  • 13. E com o tempo de feedback lento…! • Perda de confiança do time! • Time deixa de rodar os testes
  • 15. 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! !
  • 16. “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
  • 17. 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
  • 18. E os testes de unidade?
  • 19. 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
  • 20. Testes de unidade! ! • Por definição, testam componentes isolados! • Como testamos a integração entre componentes? Criando um teste que navegue pela UI?
  • 21.
  • 23. Mike Cohn (Succeeding with Agile)
  • 24. 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)
  • 25. 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
  • 28. Foco de Testes pela UI:! ! • Smoke Tests! • xBrowser Testing! • Visual Regression Testing
  • 29. E quando automatizamos tudo pela UI?
  • 30.
  • 31.
  • 34.
  • 36.
  • 37. Frameworks Headless Browsers Selenium WebDriver PhantomJS (GhostDriver), HTMLUnit (HTMLUnitDriver) Capybara PhantomJS (Poltergeist), HTMLUnit (Celerity) CasperJS PhantomJS, SlimerJS
  • 41.
  • 42. #5: Tratar código de teste como código de produção!
  • 43. “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
  • 44. Obrigado! Stefan Teixeira! stefanfk@gmail.com! stefanteixeira.com.br! @stefan_teixeira