Upload
rafael-ponte
View
440
Download
1
Embed Size (px)
Citation preview
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 procuram VELOCIDADE no desenvolvimento de novas
funcionalidades
Produtividade =
Velocidade
Produtividade =
Velocidadenã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?
Tuesday, December 15, 2009
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?
Prod
utiv
idad
e
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 BUGS1
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 NADA2
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 FUNCIONALIDADES3
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!