Upload
rafael-ponte
View
6.758
Download
3
Embed Size (px)
DESCRIPTION
Desenvolver software é uma luta contra complexidade. Cada linha de código que um programador escreve pode ser mais um ponto de falha no software. Para diminuir os riscos é fundamental que o programador e a equipe adotem uma cultura na escrita de testes, de preferência automatizados, para garantir que o software se comporte como esperado durante todo o ciclo de vida do desenvolvimento. Nesta apresentação explanarei a importância dos testes automatizados de acordo com a cultura ágil, os tipos de testes que podemos escrever, os prejuízos causados pelo não uso de testes, os benefícios obtidos a médio e longo prazo, e as dificuldades ao escreve-los.
Citation preview
A importância dos testes automatizados
no dia a dia_
Rafael Ponte@rponte
Monday, February 4, 2013
@rponte
Monday, February 4, 2013
Monday, February 4, 2013
Como os clientes chegam até nós...
Monday, February 4, 2013
Solucionar bugs críticos e “apagar incêndios”
Monday, February 4, 2013
Solucionar bugs críticos e “apagar incêndios”
Migrar ou Reescrever sistemas
Monday, February 4, 2013
Solucionar bugs críticos e “apagar incêndios”
Migrar ou Reescrever sistemas
Treinar a equipe
Monday, February 4, 2013
Solucionar bugs críticos e “apagar incêndios”
Migrar ou Reescrever sistemas
Treinar a equipe
Monday, February 4, 2013
Migrar ou reescrever sistemas de:
Monday, February 4, 2013
Migrar ou reescrever sistemas de:
* Desktop para Web
Monday, February 4, 2013
Migrar ou reescrever sistemas de:
* Desktop para Web
* PHP para Java
Monday, February 4, 2013
Migrar ou reescrever sistemas de:
* Desktop para Web
* PHP para Java
* Java para Ruby on Rails
Monday, February 4, 2013
Migrar ou reescrever sistemas de:
* Desktop para Web
* PHP para Java
* Java para Ruby on Rails
* Java para Java
Monday, February 4, 2013
após alguns minutos de conversa...
Monday, February 4, 2013
com o gerente ou a equipe, é comum escutar...após alguns minutos de conversa...
Monday, February 4, 2013
“Temos uma equipe de 8 programadores. E +3 vagas
em aberto.” - Gerente
Monday, February 4, 2013
“Criamos nosso próprio framework para agilizar o
trabalho.” - Arquiteto
Monday, February 4, 2013
“Eu li que JSF2 é mais simples do que GWT.”
Programador
Monday, February 4, 2013
“Fiz uma PoC com Ruby On Rails. É mais produtivo do que Java!” - Arquiteto
Monday, February 4, 2013
“Com o “Caker” podemos gerar cadastros em minutos.” - Gerente
Monday, February 4, 2013
Eles querem mais
Produtividade?!
Monday, February 4, 2013
Eles querem mais
Produtividade?!nãoMonday, February 4, 2013
Eles procuram VELOCIDADE no desenvolvimento de novas
funcionalidades
Monday, February 4, 2013
Produtividade=
Velocidade
Monday, February 4, 2013
Produtividade=
Velocidadenão
Monday, February 4, 2013
Eles estão focando no local errado...
Monday, February 4, 2013
Eles estão focando no local errado...
* Java para Ruby on Rails
Monday, February 4, 2013
Mudar a forma como o programador trabalha!
Monday, February 4, 2013
ProgramadoresResistência a mudança?
Monday, February 4, 2013
Programador Cowboy
Monday, February 4, 2013
Code and Fix
Abandona sua disciplina na hora do aperto
O programador que os gerentes adoram
Monday, February 4, 2013
Programador Profissional
Monday, February 4, 2013
Disciplinado
Mantém a tranquilidade e disciplina
Se mantém em evolução
Monday, February 4, 2013
Boas Práticas
Monday, February 4, 2013
Escrita de Testes Automatizados
Monday, February 4, 2013
Testes Manuaisversus
Testes Automatizados
Monday, February 4, 2013
Não é mais demorado?
Monday, February 4, 2013
1 2 3 4 5 6 7 80
17.5
35
52.5
70
Prod
utiv
idad
e
Tempo
"Cowboy" Profissional
Produtividade
Monday, February 4, 2013
1 2 3 4 5 6 7 80
17.5
35
52.5
70
Prod
utiv
idad
e
Tempo
"Cowboy" Profissional
Produtividade
Monday, February 4, 2013
1 2 3 4 5 6 7 80
17.5
35
52.5
70
Prod
utiv
idad
e
Tempo
"Cowboy" Profissional
Produtividade
Monday, February 4, 2013
1 2 3 4 5 6 7 80
17.5
35
52.5
70
Prod
utiv
idad
e
Tempo
"Cowboy" Profissional
Produtividade
Monday, February 4, 2013
1 2 3 4 5 6 7 80
17.5
35
52.5
70
Prod
utiv
idad
e
Tempo
"Cowboy" Profissional
Produtividade
Monday, February 4, 2013
1 2 3 4 5 6 7 80
17.5
35
52.5
70
Prod
utiv
idad
e
Tempo
"Cowboy" Profissional
Produtividade
Monday, February 4, 2013
1 2 3 4 5 6 7 80
17.5
35
52.5
70
Prod
utiv
idad
e
Tempo
"Cowboy" Profissional
Produtividade
Monday, February 4, 2013
1 2 3 4 5 6 7 80
17.5
35
52.5
70
Prod
utiv
idad
e
Tempo
"Cowboy" Profissional
Produtividade
Monday, February 4, 2013
1 2 3 4 5 6 7 80
17.5
35
52.5
70
Prod
utiv
idad
e
Tempo
"Cowboy" Profissional
Produtividade
Monday, February 4, 2013
Se a coisa já é ruim com um programador cowboy...
Monday, February 4, 2013
imagina uma equipe de cowboys
Monday, February 4, 2013
Cowboys Profissionais
1s
2s
3s
4s
5s
6s
F = Nova Funcionalidade F = Funcionalidade com Bug
Monday, February 4, 2013
Cowboys Profissionais
1s F1
2s
3s
4s
5s
F2F3F4F5 F2F1
6s
F = Nova Funcionalidade F = Funcionalidade com Bug
Monday, February 4, 2013
Cowboys Profissionais
1s F1
2s
3s
4s
5s
F2F3F4F5 F2F1
F6F2F7F4F8 F4F1 F5
6s
F = Nova Funcionalidade F = Funcionalidade com Bug
Monday, February 4, 2013
Cowboys Profissionais
1s F1
2s
3s
4s
5s
F2F3F4F5 F2F1
F6F2F7F4F8 F4F1 F5
F6F9F7F4F10 F7F6 F8
6s
F = Nova Funcionalidade F = Funcionalidade com Bug
Monday, February 4, 2013
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
Monday, February 4, 2013
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
Monday, February 4, 2013
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
Monday, February 4, 2013
Não é dificil perceber alguns padrões...
Monday, February 4, 2013
reincidência de bugs
Monday, February 4, 2013
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
Monday, February 4, 2013
funcionalidades “bugam” do nada
Monday, February 4, 2013
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
Monday, February 4, 2013
diminuição de novas funcionalidades
Monday, February 4, 2013
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
Monday, February 4, 2013
Por que isso acontece?
Monday, February 4, 2013
reincidência de bugsNão escrevem testes!
Monday, February 4, 2013
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
Monday, February 4, 2013
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
Monday, February 4, 2013
funcionalidades “bugam” do nadaNão fazem teste de
regressão
Monday, February 4, 2013
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
Monday, February 4, 2013
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
Monday, February 4, 2013
diminuição de novas funcionalidades
Disciplina com testes
Monday, February 4, 2013
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
Monday, February 4, 2013
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
Monday, February 4, 2013
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
MedoInsegurança
Evolução LentaCliente FrustradoSem credibilidade
SegurançaFeedback
ProdutividadeCliente Satisfeito
Credibilidade
Monday, February 4, 2013
Não é dificil escrever testes automatizados
Monday, February 4, 2013
Mas requer um tempo de maturidade
Monday, February 4, 2013
tipos de testes testes de unidade testes de integração testes de aceitação
Monday, February 4, 2013
testes de unidademenor unidade de código
executável
Monday, February 4, 2013
menor unidade na
POO= método
Monday, February 4, 2013
teste de unidade
= teste unitário
Monday, February 4, 2013
> mais fáceis de escrever;> muito rápidos para rodar;> mais fáceis para rastrear erros;
testes de unidade normalmente são:
Monday, February 4, 2013
que tal rodar centenas ou milhares de testes em
segundos?
Monday, February 4, 2013
feedback quase que instantâneo! WOW!
Monday, February 4, 2013
testes de integraçãoseu código integrado ao banco
de dados, rede, disco etc
Monday, February 4, 2013
valida os componentes de software funcionando juntos
Monday, February 4, 2013
valida os componentes de software funcionando juntos
Yuri Adams
teste de “maxu” vai no banco de dados!
Monday, February 4, 2013
e assim como os testes de unidade...
Monday, February 4, 2013
> mais fáceis de escrever;> muito rápidos para rodar;> mais fáceis para rastrear erros;
testes de integração normalmente são:
Monday, February 4, 2013
feedback AINDA quase que instantâneo
Monday, February 4, 2013
testes de aceitaçãoo que o usuário espera que
aconteça
Monday, February 4, 2013
teste
Monday, February 4, 2013
endteste
Monday, February 4, 2013
endto
teste
Monday, February 4, 2013
end
endto
teste
Monday, February 4, 2013
valida o software na perspectiva do usuário
Monday, February 4, 2013
valida o software na perspectiva
do usuário
Monday, February 4, 2013
valida o software na perspectiva
do usuário
Monday, February 4, 2013
> trabalhosos para escrever;> lentos para rodar;> difíceis para rastrear erros;> frágeis
testes de aceitação normalmente são:
Monday, February 4, 2013
apesar da dificuldade para escrevê-los...
Monday, February 4, 2013
Handerson Frota
apesar da dificuldade para escrevê-los...
Aceite os testes de aceitação!!
Monday, February 4, 2013
ainda assim vale a pena!
Aceite os testes de aceitação!!
Handerson Frota
apesar da dificuldade para escrevê-los...
Monday, February 4, 2013
resumindo...
Monday, February 4, 2013
como tudo isso vai numa app real?
Monday, February 4, 2013
Monday, February 4, 2013
browser
app(servidor)
banco de dados
Monday, February 4, 2013
teste de unidade
Monday, February 4, 2013
teste de integraçãoMonday, February 4, 2013
teste de aceitação
Monday, February 4, 2013
teste de integração
teste de unidade
teste de aceitação
Monday, February 4, 2013
qual o melhor?
Monday, February 4, 2013
unidade > integração ?
Monday, February 4, 2013
nãoMonday, February 4, 2013
integração > aceitação ?
Monday, February 4, 2013
nãoMonday, February 4, 2013
aceitação > unidade ?
Monday, February 4, 2013
nãoMonday, February 4, 2013
depende?
Monday, February 4, 2013
simMonday, February 4, 2013
depende da tua necessidade
Monday, February 4, 2013
depende da tua necessidadeteste de aceitação testa TUDO.
Handerson Frota
Monday, February 4, 2013
depende da tua necessidadeteste de aceitação testa TUDO.
Handerson Frota
Yuri Adams
teste de integração é teste de “maxu”.
Monday, February 4, 2013
mas no geral, siga a pirâmide
Monday, February 4, 2013
Aceitação - 10%
Integração - 40%
Unidade - 50%
Test Automation Pyramid
Monday, February 4, 2013
indo além...
Monday, February 4, 2013
primeiro escreve o código de produção, depois escreve o teste...
LEGAL!
“Modelo Tradicional”
Monday, February 4, 2013
e se fosse possível escrever o teste ANTES da implementação?
Monday, February 4, 2013
ahn?
Monday, February 4, 2013
TDDTest Driven Development
Monday, February 4, 2013
step by step
Monday, February 4, 2013
O que ganho com isso?
Monday, February 4, 2013
TDD = testes
Monday, February 4, 2013
TDD = testesnãoMonday, February 4, 2013
TDD é sobre DESIGN e MODELAGEM de código
Monday, February 4, 2013
a bateria de testes é um brinde
Monday, February 4, 2013
CONCLUSÃO
Monday, February 4, 2013
Você só percebe os benefícios dos testes entre
6 meses e 1 ano
Monday, February 4, 2013
não existe uma receita de bolo para desenvolver software
Monday, February 4, 2013
mas simum conjunto de princípios e
práticas que podem te ajudar a desenvolver melhor
Monday, February 4, 2013
testes automatizados
é apenas a ponta do iceberg
Monday, February 4, 2013
permita que sua equipe trabalhe melhor
Monday, February 4, 2013
permita que sua empresa entregue software melhor
Monday, February 4, 2013
permita-se ser um profissional melhor
Monday, February 4, 2013
use testes automatizados
Monday, February 4, 2013
testes automatizados
eu aprovo!Monday, February 4, 2013