SlideShare a Scribd company logo
1 of 99
Download to read offline
A importância dos
testes automatizados
no dia a dia_
Rafael Ponte
@rponte
@rponte
Fortaleza - Terra do Sol
Mas antes de 2014…
Como os clientes chegavam
até nós...
Solucionar bugs críticos
e “apagar incêndios”
Solucionar bugs críticos
e “apagar incêndios”
Migrar ou Reescrever
sistemas
Solucionar bugs críticos
e “apagar incêndios”
Migrar ou Reescrever
sistemas
Treinar a
equipe
Solucionar bugs críticos
e “apagar incêndios”
Migrar ou Reescrever
sistemas
Treinar a
equipe
Migrar ou reescrever
sistemas de:
Migrar ou reescrever
sistemas de:
* Desktop para Web
Migrar ou reescrever
sistemas de:
* Desktop para Web
* PHP para Java
Migrar ou reescrever
sistemas de:
* Desktop para Web
* PHP para Java
* Java para Ruby on Rails
Migrar ou reescrever
sistemas de:
* Desktop para Web
* PHP para Java
* Java para Ruby on Rails
* Java para Java
após alguns minutos de conversa...
com o gerente ou a equipe, é comum escutar...
após alguns minutos de conversa...
“Temos uma equipe de 8
programadores. E +3 vagas
em aberto.” - Gerente
“Criamos nosso próprio
framework para agilizar o
trabalho.” - Arquiteto
“Eu li que JSF2 é mais
simples do que Struts.”
Programador
“Fiz uma PoC com Ruby
On Rails. É mais produtivo
do que Java!” - Arquiteto
“Com o “Caker” podemos
gerar cadastros em
minutos.” - Gerente
Eles querem mais
PRODUTIVIDADE ?!
Eles querem mais
PRODUTIVIDADE?!não
Eles procuramVELOCIDADE
no desenvolvimento de novas
funcionalidades
Produtividade
=
Velocidade
Produtividade
=
Velocidade
não
É preferível esperar um
pouco mais e ter um
resultado melhor?
Eles estão focando no local
errado...
Eles estão focando no local
errado...
* Java para Ruby on Rails
Mudar a forma
como o programador
trabalha!
Programadores
Resistência a mudança?
Zona de Conforto
Programador
Cowboy
Code and Fix
Code and Fix
Abandona sua disciplina na
hora do aperto
Code and Fix
Abandona sua disciplina na
hora do aperto
O programador que os
gerentes adoram
Programador
Profissional
Disciplinado
Disciplinado
Mantém a tranquilidade e
disciplina
Disciplinado
Mantém a tranquilidade e
disciplina
Se mantém em evolução
Evolução contínua traz
aprendizado…
Boas Práticas
Escrita de 

Testes Automatizados
Testes Manuais
versus
Testes Automatizados
Não é mais
demorado?
Produtividade
0
17.5
35
52.5
70
Tempo
1 2 3 4 5 6 7 8
"Cowboy" Profissional
Produtividade
Se a coisa já é ruim com
um programador cowboy...
imagina uma equipe de
cowboys
Cowboys Profissionais
1s
2s
3s
4s
5s
6s
F = Nova Funcionalidade F = Funcionalidade com Bug
Cowboys Profissionais
1s F1
2s
3s
4s
5s
F2F3F4F5 F2F1
6s
F = Nova Funcionalidade F = Funcionalidade com Bug
Cowboys Profissionais
1s F1
2s
3s
4s
5s
F2F3F4F5 F2F1
F6F2F7F4F8 F4F1 F5
6s
F = Nova Funcionalidade F = Funcionalidade com Bug
Cowboys Profissionais
1s F1
2s
3s
4s
5s
F2F3F4F5 F2F1
F6F2F7F4F8 F4F1 F5
F6F9F7F4F10 F7F6 F8
6s
F = Nova Funcionalidade F = Funcionalidade com Bug
Cowboys Profissionais
1s F1
2s
3s
4s
5s
F2F3F4F5 F2F1
F6F2F7F4F8 F4F1 F5
F6F9F7F4F10 F7F6 F8
F6F11F7F12F13 F10F9 F8 F11
6s
F = Nova Funcionalidade F = Funcionalidade com Bug
Cowboys Profissionais
1s F1
2s
3s
4s
5s
F2F3F4F5 F2F1
F6F2F7F4F8 F4F1 F5
F6F9F7F4F10 F7F6 F8
F6F11F7F12F13 F10F9 F8 F11
F14F10F7F12 F13F12 F14 F15
6s
F = Nova Funcionalidade F = Funcionalidade com Bug
Cowboys Profissionais
1s F1
2s
3s
4s
5s
F2F3F4F5 F2F1
F6F2F7F4F8 F4F1 F5
F6F9F7F4F10 F7F6 F8
F6F11F7F12F13 F10F9 F8 F11
F14F10F7F12 F13F12 F14 F15
6s F1F10F4F12 F17F16 F18 F19F9
F = Nova Funcionalidade F = Funcionalidade com Bug
Não é dificil perceber
alguns padrões...
REINCIDÊNCIA DE
BUGS
1
Cowboys Profissionais
1s F1
2s
3s
4s
5s
F2F3F4F5 F2F1
F6F2F7F4F8 F4F1 F5
F6F9F7F4F10 F7F6 F8
F6F11F7F12F13 F10F9 F8 F11
F14F10F7F12 F13F12 F14 F15
6s F1F10F4F12 F17F16 F18 F19F9
F = Nova Funcionalidade F = Funcionalidade com Bug
FUNCIONALIDADES
“BUGAM” DO NADA
2
Cowboys Profissionais
1s F1
2s
3s
4s
5s
F2F3F4F5 F2F1
F6F2F7F4F8 F4F1 F5
F6F9F7F4F10 F7F6 F8
F6F11F7F12F13 F10F9 F8 F11
F14F10F7F12 F13F12 F14 F15
6s F1F10F4F12 F17F16 F18 F19F9
F = Nova Funcionalidade F = Funcionalidade com Bug
DIMINUIÇÃO DE NOVAS
FUNCIONALIDADES
3
Cowboys Profissionais
1s F1
2s
3s
4s
5s
F2F3F4F5 F2F1
F6F2F7F4F8 F4F1 F5
F6F9F7F4F10 F7F6 F8
F6F11F7F12F13 F10F9 F8 F11
F14F10F7F12 F13F12 F14 F15
6s F1F10F4F12 F17F16 F18 F19F9
F = Nova Funcionalidade F = Funcionalidade com Bug
Por que isso acontece?
reincidência de bugs
Não escrevem testes!
1
Cowboys Profissionais
1s F1
2s
3s
4s
5s
F2F3F4F5 F2F1
F6F2F7F4F8 F4F1 F5
F6F9F7F4F10 F7F6 F8
F6F11F7F12F13 F10F9 F8 F11
F14F10F7F12 F13F12 F14 F15
6s F1F10F4F12 F17F16 F18 F19F9
F = Nova Funcionalidade F = Funcionalidade com Bug
Cowboys Profissionais
1s F1
2s
3s
4s
5s
F2F3F4F5 F2F1
F6F2F7F4F8 F4F1 F5
F6F9F7F4F10 F7F6 F8
F6F11F7F12F13 F10F9 F8 F11
F14F10F7F12 F13F12 F14 F15
6s F1F10F4F12 F17F16 F18 F19F9
F = Nova Funcionalidade F = Funcionalidade com Bug
funcionalidades “bugam” do nada
Não fazem teste de
regressão
2
Cowboys Profissionais
1s F1
2s
3s
4s
5s
F2F3F4F5 F2F1
F6F2F7F4F8 F4F1 F5
F6F9F7F4F10 F7F6 F8
F6F11F7F12F13 F10F9 F8 F11
F14F10F7F12 F13F12 F14 F15
6s F1F10F4F12 F17F16 F18 F19F9
F = Nova Funcionalidade F = Funcionalidade com Bug
Cowboys Profissionais
1s F1
2s
3s
4s
5s
F2F3F4F5 F2F1
F6F2F7F4F8 F4F1 F5
F6F9F7F4F10 F7F6 F8
F6F11F7F12F13 F10F9 F8 F11
F14F10F7F12 F13F12 F14 F15
6s F1F10F4F12 F17F16 F18 F19F9
F = Nova Funcionalidade F = Funcionalidade com Bug
diminuição de novas
funcionalidades
Sem disciplina com testes
3
Cowboys Profissionais
1s F1
2s
3s
4s
5s
F2F3F4F5 F2F1
F6F2F7F4F8 F4F1 F5
F6F9F7F4F10 F7F6 F8
F6F11F7F12F13 F10F9 F8 F11
F14F10F7F12 F13F12 F14 F15
6s F1F10F4F12 F17F16 F18 F19F9
F = Nova Funcionalidade F = Funcionalidade com Bug
Cowboys Profissionais
1s F1
2s
3s
4s
5s
F2F3F4F5 F2F1
F6F2F7F4F8 F4F1 F5
F6F9F7F4F10 F7F6 F8
F6F11F7F12F13 F10F9 F8 F11
F14F10F7F12 F13F12 F14 F15
6s F1F10F4F12 F17F16 F18 F19F9
F = Nova Funcionalidade F = Funcionalidade com Bug
Cowboys Profissionais
1s F1
2s
3s
4s
5s
F2F3F4F5 F2F1
F6F2F7F4F8 F4F1 F5
F6F9F7F4F10 F7F6 F8
F6F11F7F12F13 F10F9 F8 F11
F14F10F7F12 F13F12 F14 F15
6s F1F10F4F12 F17F16 F18 F19F9
F = Nova Funcionalidade F = Funcionalidade com Bug
Medo	

	

	

	

Segurança
Cowboys Profissionais
1s F1
2s
3s
4s
5s
F2F3F4F5 F2F1
F6F2F7F4F8 F4F1 F5
F6F9F7F4F10 F7F6 F8
F6F11F7F12F13 F10F9 F8 F11
F14F10F7F12 F13F12 F14 F15
6s F1F10F4F12 F17F16 F18 F19F9
F = Nova Funcionalidade F = Funcionalidade com Bug
Medo	

Insegurança	

	

	

Segurança	

Feedback
Cowboys Profissionais
1s F1
2s
3s
4s
5s
F2F3F4F5 F2F1
F6F2F7F4F8 F4F1 F5
F6F9F7F4F10 F7F6 F8
F6F11F7F12F13 F10F9 F8 F11
F14F10F7F12 F13F12 F14 F15
6s F1F10F4F12 F17F16 F18 F19F9
F = Nova Funcionalidade F = Funcionalidade com Bug
Medo	

Insegurança	

Evolução Lenta	

	

Segurança	

Feedback	

Produtividade
Cowboys Profissionais
1s F1
2s
3s
4s
5s
F2F3F4F5 F2F1
F6F2F7F4F8 F4F1 F5
F6F9F7F4F10 F7F6 F8
F6F11F7F12F13 F10F9 F8 F11
F14F10F7F12 F13F12 F14 F15
6s F1F10F4F12 F17F16 F18 F19F9
F = Nova Funcionalidade F = Funcionalidade com Bug
Medo	

Insegurança	

Evolução Lenta	

Cliente Frustrado	

Segurança	

Feedback	

Produtividade	

Cliente Satisfeito
Cowboys Profissionais
1s F1
2s
3s
4s
5s
F2F3F4F5 F2F1
F6F2F7F4F8 F4F1 F5
F6F9F7F4F10 F7F6 F8
F6F11F7F12F13 F10F9 F8 F11
F14F10F7F12 F13F12 F14 F15
6s F1F10F4F12 F17F16 F18 F19F9
F = Nova Funcionalidade F = Funcionalidade com Bug
Medo	

Insegurança	

Evolução Lenta	

Cliente Frustrado	

Sem credibilidade
Segurança	

Feedback	

Produtividade	

Cliente Satisfeito	

Credibilidade
Não é dificil escrever
testes automatizados
Invista em você
mesmo! ESTUDE!
Mas requer um tempo
de maturidade
CONCLUSÃO
Você só percebe os benefícios dos testes entre
6 meses e 1 ano
não existe uma receita de bolo
para desenvolver software
mas sim
um conjunto de princípios e
práticas que podem te ajudar a
desenvolver melhor
testes
automatizados
é apenas a
ponta do
iceberg
permita que sua equipe
trabalhe melhor
permita que sua empresa
entregue software melhor
permita-se ser um profissional
melhor
use testes
automatizados
testes automatizados
eu aprovo!
Rafael Ponte
rponte@triadworks.com.br

More Related Content

More from Rafael Ponte

TechDay: 10 Features do Oracle que voce nao conhecia - CONNECT BY CLAUSE
TechDay: 10 Features do Oracle que voce nao conhecia - CONNECT BY CLAUSETechDay: 10 Features do Oracle que voce nao conhecia - CONNECT BY CLAUSE
TechDay: 10 Features do Oracle que voce nao conhecia - CONNECT BY CLAUSERafael Ponte
 
TechDay Retrospectiva 2018
TechDay Retrospectiva 2018TechDay Retrospectiva 2018
TechDay Retrospectiva 2018Rafael Ponte
 
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do HypeArquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do HypeRafael Ponte
 
Como treinar seu estagiario
Como treinar seu estagiarioComo treinar seu estagiario
Como treinar seu estagiarioRafael Ponte
 
Como Apresentar Codigo em Slides - Javou #7 - 2016
Como Apresentar Codigo em Slides - Javou #7 - 2016Como Apresentar Codigo em Slides - Javou #7 - 2016
Como Apresentar Codigo em Slides - Javou #7 - 2016Rafael Ponte
 
Migrations for Java (Javou #4 - JavaCE)
Migrations for Java (Javou #4 - JavaCE)Migrations for Java (Javou #4 - JavaCE)
Migrations for Java (Javou #4 - JavaCE)Rafael Ponte
 
Hibernate efetivo (IA-2014 / Disturbing the Mind)
Hibernate efetivo (IA-2014 / Disturbing the Mind)Hibernate efetivo (IA-2014 / Disturbing the Mind)
Hibernate efetivo (IA-2014 / Disturbing the Mind)Rafael Ponte
 
Migrations for Java (QCONSP2013)
Migrations for Java (QCONSP2013)Migrations for Java (QCONSP2013)
Migrations for Java (QCONSP2013)Rafael Ponte
 
Importancia dos Testes Automatizados no dia a dia (Don't Panic)
Importancia dos Testes Automatizados no dia a dia (Don't Panic)Importancia dos Testes Automatizados no dia a dia (Don't Panic)
Importancia dos Testes Automatizados no dia a dia (Don't Panic)Rafael Ponte
 
Importância dos testes automatizados no dia a dia
Importância dos testes automatizados no dia a diaImportância dos testes automatizados no dia a dia
Importância dos testes automatizados no dia a diaRafael Ponte
 
Hibernate Efetivo (QCONSP-2012)
Hibernate Efetivo (QCONSP-2012)Hibernate Efetivo (QCONSP-2012)
Hibernate Efetivo (QCONSP-2012)Rafael Ponte
 
Migrations for Java
Migrations for JavaMigrations for Java
Migrations for JavaRafael Ponte
 
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)Rafael Ponte
 
Importância dos testes automatizadoss
Importância dos testes automatizadossImportância dos testes automatizadoss
Importância dos testes automatizadossRafael Ponte
 
Greenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresaGreenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresaRafael Ponte
 
Desafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSFDesafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSFRafael Ponte
 
Curso de Java server faces (JSF)
Curso de Java server faces (JSF)Curso de Java server faces (JSF)
Curso de Java server faces (JSF)Rafael Ponte
 
Os 10 maus hábitos dos desenvolvedores JSF
Os 10 maus hábitos dos desenvolvedores JSFOs 10 maus hábitos dos desenvolvedores JSF
Os 10 maus hábitos dos desenvolvedores JSFRafael Ponte
 
Boas Práticas com JavaServer Faces (Jsf)
Boas Práticas com JavaServer Faces (Jsf)Boas Práticas com JavaServer Faces (Jsf)
Boas Práticas com JavaServer Faces (Jsf)Rafael Ponte
 
JavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividadeJavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividadeRafael Ponte
 

More from Rafael Ponte (20)

TechDay: 10 Features do Oracle que voce nao conhecia - CONNECT BY CLAUSE
TechDay: 10 Features do Oracle que voce nao conhecia - CONNECT BY CLAUSETechDay: 10 Features do Oracle que voce nao conhecia - CONNECT BY CLAUSE
TechDay: 10 Features do Oracle que voce nao conhecia - CONNECT BY CLAUSE
 
TechDay Retrospectiva 2018
TechDay Retrospectiva 2018TechDay Retrospectiva 2018
TechDay Retrospectiva 2018
 
Arquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do HypeArquitetura Java - Escalando além do Hype
Arquitetura Java - Escalando além do Hype
 
Como treinar seu estagiario
Como treinar seu estagiarioComo treinar seu estagiario
Como treinar seu estagiario
 
Como Apresentar Codigo em Slides - Javou #7 - 2016
Como Apresentar Codigo em Slides - Javou #7 - 2016Como Apresentar Codigo em Slides - Javou #7 - 2016
Como Apresentar Codigo em Slides - Javou #7 - 2016
 
Migrations for Java (Javou #4 - JavaCE)
Migrations for Java (Javou #4 - JavaCE)Migrations for Java (Javou #4 - JavaCE)
Migrations for Java (Javou #4 - JavaCE)
 
Hibernate efetivo (IA-2014 / Disturbing the Mind)
Hibernate efetivo (IA-2014 / Disturbing the Mind)Hibernate efetivo (IA-2014 / Disturbing the Mind)
Hibernate efetivo (IA-2014 / Disturbing the Mind)
 
Migrations for Java (QCONSP2013)
Migrations for Java (QCONSP2013)Migrations for Java (QCONSP2013)
Migrations for Java (QCONSP2013)
 
Importancia dos Testes Automatizados no dia a dia (Don't Panic)
Importancia dos Testes Automatizados no dia a dia (Don't Panic)Importancia dos Testes Automatizados no dia a dia (Don't Panic)
Importancia dos Testes Automatizados no dia a dia (Don't Panic)
 
Importância dos testes automatizados no dia a dia
Importância dos testes automatizados no dia a diaImportância dos testes automatizados no dia a dia
Importância dos testes automatizados no dia a dia
 
Hibernate Efetivo (QCONSP-2012)
Hibernate Efetivo (QCONSP-2012)Hibernate Efetivo (QCONSP-2012)
Hibernate Efetivo (QCONSP-2012)
 
Migrations for Java
Migrations for JavaMigrations for Java
Migrations for Java
 
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
 
Importância dos testes automatizadoss
Importância dos testes automatizadossImportância dos testes automatizadoss
Importância dos testes automatizadoss
 
Greenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresaGreenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresa
 
Desafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSFDesafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSF
 
Curso de Java server faces (JSF)
Curso de Java server faces (JSF)Curso de Java server faces (JSF)
Curso de Java server faces (JSF)
 
Os 10 maus hábitos dos desenvolvedores JSF
Os 10 maus hábitos dos desenvolvedores JSFOs 10 maus hábitos dos desenvolvedores JSF
Os 10 maus hábitos dos desenvolvedores JSF
 
Boas Práticas com JavaServer Faces (Jsf)
Boas Práticas com JavaServer Faces (Jsf)Boas Práticas com JavaServer Faces (Jsf)
Boas Práticas com JavaServer Faces (Jsf)
 
JavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividadeJavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividade
 

Importância dos testes automatizados