Testes de Software & Ferramentas de Testes

27,776
-1

Published on

Published in: Technology

Testes de Software & Ferramentas de Testes

  1. 1. Testes de Software & Ferramentas para Testes
  2. 2. Testes de Software & Ferramentas para Testes por Paulo César M. Jeveaux 30/11/2007
  3. 3. Paulo César M. Jeveaux (Jevô) • Consultor e Arquiteto de soluções Java na Inflor; • Mantenedor responsável do PortalJava.com e ESJUG; • Palestrante-Entusiasta-Evangelista Java;
  4. 4. Agenda Introdução • O que são testes? • Cobertura de testes • Você confia no que você faz? • Desenvolvendo orientado a testes • Ferramentas e técnicas de testes •
  5. 5. Introdução Desenvolvimento de software
  6. 6. Introdução Desenvolvimento de software Falhas de Software
  7. 7. Falhas de Software • Mais de 1/3 das falhas poderiam ser evitadas com testes; [1] • Cerca de 50% das falhas só são descobertas em produção; [1]
  8. 8. Introdução Desenvolvimento de software Falhas de Software Falhas custam caro
  9. 9. Falhas custam $$$ Segundo uma pesquisa do Departamento de Comércio dos EUA, publicada em 2002, falhas de software são tão comuns e tão danosas que se estima que causem um prejuízo anual de mais de 60 bilhões de dólares para a economia americana. [1], [2]
  10. 10. Introdução Desenvolvimento de software Falhas de Software Falhas custam caro Testes não evitam falhas
  11. 11. Introdução Desenvolvimento de software Falhas de Software Falhas custam caro Testes não evitam falhas Testes identificam as falhas antes delas acontecerem
  12. 12. O que são testes?
  13. 13. O que são testes? • Um teste é uma verificação feita sobre um código ou fragmento de código para garantir que uma determinada entrada produza, sempre, uma saída esperada;
  14. 14. O que são testes? • São pontuais; • São previsíveis; • São finitos; • São (ou deveriam ser) simples;
  15. 15. O que são testes? • Testes não verificam completamente a saída de um programa pois as entradas são finitas; • Testes não são perfeitos para validação, mas são a melhor opção para isso;
  16. 16. O que são testes? White Box
  17. 17. Caixa branca • Testes de unidade de código; • Testam parte da solução; • São escritos e mantidos pelo programador e devem estar sempre atualizados;
  18. 18. Caixa branca • Quando construímos um teste de unidade, o principal desafio é isolar a classe ou trecho de código que está sendo testado, para que nenhuma outra classe do sistema seja envolvida no teste e influencie no resultado esperado.
  19. 19. O que são testes? White Box Black Box
  20. 20. Caixa preta • Testes funcionais e de aceitação; • Testes de integração; • Testam a solução completa;
  21. 21. Cobertura de testes
  22. 22. Cobertura dos testes Resultado esperado Trecho alterado com alteração: OK Reflexo da alteração Erro #1 Reflexo da alteração Erro #2 Reflexo da alteração BUG Reflexo da alteração Inesperado
  23. 23. Cobertura dos testes Sem cobertura Com cobertura • Novo release = códigos sem testes; • Não há segurança de que as alterações não irão impactar em outros pontos da aplicação; • Problemas, muitos problemas;
  24. 24. Cobertura dos testes • Dificilmente consegue-se 100% de cobertura de testes, contete-se com 99%; • Quanto maior a cobertura dos testes na aplicação maior a confiabilidade nas alterações e novos recursos;
  25. 25. Cobertura dos testes • Aplicações cobertas por bons testes propiciam: – Facilidade de manutenção; – Facilidade para inclusão de novos membros no time de desenvolvimento; – Menos problemas e redução de custos em manutenções; – Telefone silencioso nas madrugadas!
  26. 26. Testes são necessários • Você precisa verificar o código, sempre; • Você precisa garantir que os requisitos estão implementados (e corretos); • Você precisa ter segurança para realizar alterações;
  27. 27. Testes são necessários • Você precisa testar rápido para entregar rápido; • Você aumenta e garante a qualidade da sua solução com testes; • Você precisa ser criativo para explorar o máximo possível com seus testes, não use testes mentirosos;
  28. 28. Você confia no que faz?
  29. 29. Garanta o que você faz • Cliente: – Isso aqui não está funcionando! • Programador: – Mas como!? Na minha máquina estava funcionando até ontem.
  30. 30. Garanta o seu trabalho, seja profissional Errado! Realidade! • Num mundo • O cliente não quer capitalizado não há saber se X virou Y. Ele tempo para testes; quer que o problema não aconteça e se acontecer que seja • O cliente não quer corrigido rapidamente; saber como é feito, ele quer que funcione • Não se consegue qualidade e confiabilidade sem testes; [4]
  31. 31. Test-Driven Development
  32. 32. TDD refatore Escreva código Escreva um que passe Teste no teste
  33. 33. Ferramentas Ferramentas de teste de software
  34. 34. JUnit • É um framework altamente eficaz e largamente utilizado na criação e execução de testes unitários de códigos;
  35. 35. Um teste com JUnit public class HelloWorldTest { @Test public void testMultiplication() { //Testando se 2*2 = 4 assertEquals (quot;Multiplicationquot;, 4, 2*2); } }
  36. 36. Selenium • Ferramenta para realização de testes integrados e de aceitação; • Usado no browser, grava todos os passos executados na aplicação diretamente no browser e os executa de forma automatizada no browser;
  37. 37. Selenium
  38. 38. JMeter • Propósito principal para testes de carga e stress de aplicações; • Pode ser usado para testes integrados e de aceitação;
  39. 39. JMeter
  40. 40. Clover • Ferramenta para análise de cobertura dos testes existem na aplicação; • Integrado a várias IDEs - Eclipse ;-) • Existem diversas opções semelhantes: JCoverage, Cobertura, etc;
  41. 41. Clover
  42. 42. Dúvidas?
  43. 43. Referências • [1] - NIST - http://www.nist.gov/public_affairs/releases/n02- 10.htm • [2] - ImproveIt - http://www.improveit.com.br/xp/praticas/tdd • [3] - Caelum - http://blog.caelum.com.br/2006/09/08/voce- acredita-no-seu-codigo/ • [4] – Fragmental - Shoes - http://blog.fragmental.com.br/2007/10/31/programadores- profissionais-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/Test- driven_development • [7] - TDD - http://www.testdriven.com
  44. 44. Podem acordar, acabou! • Obrigado a todos. • Contatos: – www.portaljava.com | www.jeveaux.com – jeveaux@portaljava.com | paulo@jeveaux.com
  45. 45. Testes de Software & Ferramentas para Testes Esta apresentação usa a licença : Creative Commons : de Atribuição/Uso Não Comercial Compartilhado.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×