Escolar Documentos
Profissional Documentos
Cultura Documentos
Palestrante-Entusiasta-Evangelista Java;
Agenda
Introduo O que so testes? Cobertura de testes Voc confia no que voc faz? Desenvolvendo orientado a testes Ferramentas e tcnicas de testes
Introduo
Desenvolvimento de software
Introduo
Desenvolvimento de software Falhas de Software
Falhas de Software
Mais de 1/3 das falhas poderiam ser evitadas com testes;
[1]
Introduo
Desenvolvimento de software Falhas de Software Falhas custam caro
Introduo
Desenvolvimento de software Falhas de Software Falhas custam caro Testes no evitam falhas
Introduo
Desenvolvimento de software Falhas de Software Falhas custam caro Testes no evitam falhas Testes identificam as falhas antes delas acontecerem
O que so testes?
O que so testes?
Um teste uma verificao feita sobre um cdigo ou fragmento de cdigo para garantir que uma determinada entrada produza, sempre, uma sada esperada;
O que so testes?
So pontuais; So previsveis; So finitos; So (ou deveriam ser) simples;
O que so testes?
Testes no verificam completamente a sada de um programa pois as entradas so finitas; Testes no so perfeitos para validao, mas so a melhor opo para isso;
O que so testes?
White Box
Caixa branca
Testes de unidade de cdigo; Testam parte da soluo;
Caixa branca
Quando construmos um teste de unidade, o principal desafio isolar a classe ou trecho de cdigo que est sendo testado, para que nenhuma outra classe do sistema seja envolvida no teste e influencie no resultado esperado.
O que so testes?
White Box Black Box
Caixa preta
Testes funcionais e de aceitao; Testes de integrao; Testam a soluo completa;
Cobertura de testes
Testes so necessrios
Voc precisa verificar o cdigo, sempre; Voc precisa garantir que os requisitos esto implementados (e corretos); Voc precisa ter segurana para realizar alteraes;
Testes so necessrios
Voc precisa testar rpido para entregar rpido; Voc aumenta e garante a qualidade da sua soluo com testes; Voc precisa ser criativo para explorar o mximo possvel com seus testes, no use testes mentirosos;
Programador:
Mas como!? Na minha mquina estava funcionando at ontem.
[4]
Test-Driven Development
TDD
refatore
Escreva um Teste
Ferramentas
Ferramentas de teste de software
JUnit
um framework altamente eficaz e largamente utilizado na criao e execuo de testes unitrios de cdigos;
Selenium
Ferramenta para realizao de testes integrados e de aceitao; Usado no browser, grava todos os passos executados na aplicao diretamente no browser e os executa de forma automatizada no browser;
Selenium
JMeter
Propsito principal para testes de carga e stress de aplicaes; Pode ser usado para testes integrados e de aceitao;
JMeter
Clover
Ferramenta para anlise de cobertura dos testes existem na aplicao; Integrado a vrias IDEs - Eclipse ;-) Existem diversas opes semelhantes: JCoverage, Cobertura, etc;
Clover
Dvidas?
Referncias
[1] - NIST - http://www.nist.gov/public_affairs/releases/n0210.htm [2] - ImproveIt - http://www.improveit.com.br/xp/praticas/tdd [3] - Caelum - http://blog.caelum.com.br/2006/09/08/voceacredita-no-seu-codigo/ [4] Fragmental - Shoes http://blog.fragmental.com.br/2007/10/31/programadoresprofissionais-escrevem-testes-ponto-final/ [5] Marcos Pereira http://marcospereira.wordpress.com/2007/11/27/desenvolvedo res-odeiam-testar [6] Wikipedia http://en.wikipedia.org/wiki/Testdriven_development [7] - TDD - http://www.testdriven.com