testes de software & ferramentas de testes

50
Testes de Software & Ferramentas para Ferramentas para Testes

Upload: paulo-cesar-m-jeveaux

Post on 25-May-2015

25.186 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Testes de Software & Ferramentas de Testes

Testes de Software&

Ferramentas para Ferramentas para Testes

Page 2: Testes de Software & Ferramentas de Testes

Testes de Software&

Ferramentas para Ferramentas para Testes

por Paulo César M. Jeveaux30/11/2007

Page 3: Testes de Software & Ferramentas de Testes

Paulo César M. Jeveaux (Jevô)

• Consultor e Arquiteto de soluções Javana Inflor;

• Mantenedor responsável do• Mantenedor responsável doPortalJava.com e ESJUG;

• Palestrante-Entusiasta-Evangelista Java;

Page 4: Testes de Software & Ferramentas de Testes

Agenda

• Introdução

• O que são testes?

• Cobertura de testes

• Você confia no que você faz?• Você confia no que você faz?

• Desenvolvendo orientado a testes

• Ferramentas e técnicas de testes

Page 5: Testes de Software & Ferramentas de Testes

Introdução

Desenvolvimento de software

Page 6: Testes de Software & Ferramentas de Testes
Page 7: Testes de Software & Ferramentas de Testes

Introdução

Desenvolvimento de software

Falhas de Software

Page 8: Testes de Software & Ferramentas de Testes

Falhas de Software

• Mais de 1/3 dasfalhas poderiam serevitadas com testes;[1]

• Cerca de 50% dasfalhas só sãodescobertas emprodução; [1]

Page 9: Testes de Software & Ferramentas de Testes

Introdução

Desenvolvimento de software

Falhas de Software

Falhas custam caro

Page 10: Testes de Software & Ferramentas de Testes

Falhas custam $$$

Segundo uma pesquisa do Departamentode Comércio dos EUA, publicada em2002, falhas de software são tãocomuns e tão danosas que se estimacomuns e tão danosas que se estimaque causem um prejuízo anual de maisde 60 bilhões de dólares para aeconomia americana. [1], [2]

Page 11: Testes de Software & Ferramentas de Testes

Introdução

Desenvolvimento de software

Falhas de Software

Falhas custam caro

Testes não evitam falhas

Page 12: Testes de Software & Ferramentas de Testes
Page 13: Testes de Software & Ferramentas de Testes

Introdução

Desenvolvimento de softwareFalhas de SoftwareFalhas custam caro

Testes não evitam falhasTestes identificam as falhas antes delas

acontecerem

Page 14: Testes de Software & Ferramentas de Testes
Page 15: Testes de Software & Ferramentas de Testes

O que são testes?

Page 16: Testes de Software & Ferramentas de Testes

O que são testes?

• Um teste é uma verificação feita sobreum código ou fragmento de código paragarantir que uma determinada entradaproduza, sempre, uma saída esperada;produza, sempre, uma saída esperada;

Page 17: Testes de Software & Ferramentas de Testes

O que são testes?

• São pontuais;

• São previsíveis;

• São finitos;

• São (ou deveriam ser) simples;

Page 18: Testes de Software & Ferramentas de Testes

O que são testes?

• Testes não verificam completamente asaída de um programa pois as entradassão finitas;

• Testes não são perfeitos para validação,mas são a melhor opção para isso;

Page 19: Testes de Software & Ferramentas de Testes

O que são testes?

White Box

Page 20: Testes de Software & Ferramentas de Testes

Caixa branca

• Testes de unidade de código;

• Testam parte da solução;

• São escritos e mantidos peloprogramador e devem estar sempreatualizados;

Page 21: Testes de Software & Ferramentas de Testes

Caixa branca

• Quando construímos um teste deunidade, o principal desafio é isolar aclasse ou trecho de código que estásendo testado, para que nenhuma outrasendo testado, para que nenhuma outraclasse do sistema seja envolvida noteste e influencie no resultadoesperado.

Page 22: Testes de Software & Ferramentas de Testes

O que são testes?

White Box

Black Box

Page 23: Testes de Software & Ferramentas de Testes

Caixa preta

• Testes funcionais e de aceitação;

• Testes de integração;

• Testam a solução completa;

Page 24: Testes de Software & Ferramentas de Testes

Cobertura de testes

Page 25: Testes de Software & Ferramentas de Testes

Cobertura dos testes

Trecho alteradoResultado esperado com alteração: OK

Reflexo da alteraçãoErro #1Erro #1

Reflexo da alteraçãoErro #2

Reflexo da alteraçãoBUG

Reflexo da alteraçãoInesperado

Page 26: Testes de Software & Ferramentas de Testes

Cobertura dos testes

• Novo release =códigos sem testes;

Sem cobertura Com cobertura

códigos sem testes;• Não há segurança deque as alteraçõesnão irão impactarem outros pontos daaplicação;

• Problemas, muitosproblemas;

Page 27: Testes de Software & Ferramentas de Testes

Cobertura dos testes

• Dificilmente consegue-se 100% decobertura de testes, contete-se com99%;

• Quanto maior a cobertura dos testes naaplicação maior a confiabilidade nasalterações e novos recursos;

Page 28: Testes de Software & Ferramentas de Testes

Cobertura dos testes

• Aplicações cobertas por bons testespropiciam:– Facilidade de manutenção;

– Facilidade para inclusão de novos membros– Facilidade para inclusão de novos membrosno time de desenvolvimento;

– Menos problemas e redução de custos emmanutenções;

– Telefone silencioso nas madrugadas!

Page 29: Testes de Software & Ferramentas de Testes

Testes são necessários

• Você precisa verificar o código, sempre;

• Você precisa garantir que os requisitosestão implementados (e corretos);estão implementados (e corretos);

• Você precisa ter segurança para realizaralterações;

Page 30: Testes de Software & Ferramentas de Testes

Testes são necessários

• Você precisa testar rápido para entregarrápido;

• Você aumenta e garante a qualidade da sua• Você aumenta e garante a qualidade da suasolução com testes;

• Você precisa ser criativo para explorar omáximo possível com seus testes, não usetestes mentirosos;

Page 31: Testes de Software & Ferramentas de Testes

Você confia no que faz?

Page 32: Testes de Software & Ferramentas de Testes
Page 33: Testes de Software & Ferramentas de Testes

Garanta o que você faz

• Cliente:– Isso aqui não está funcionando!

• Programador:• Programador:– Mas como!? Na minha máquina estavafuncionando até ontem.

Page 34: Testes de Software & Ferramentas de Testes

Garanta o seu trabalho, seja profissional

Errado!

• Num mundocapitalizado não hátempo para testes;

Realidade!

• O cliente não quersaber se X virou Y. Elequer que o problemanão aconteça e se

• O cliente não quersaber como é feito, elequer que funcione

não aconteça e seacontecer que sejacorrigido rapidamente;

• Não se conseguequalidade econfiabilidade semtestes;[4]

Page 35: Testes de Software & Ferramentas de Testes

Test-Driven Development

Page 36: Testes de Software & Ferramentas de Testes

TDD

Escreva umEscreva código

refatore

Escreva umTeste

Escreva códigoque passeno teste

Page 37: Testes de Software & Ferramentas de Testes

Ferramentas

Ferramentas de teste de software

Page 38: Testes de Software & Ferramentas de Testes

JUnit

• É um framework altamente eficaz elargamente utilizado na criação eexecução de testes unitários decódigos;códigos;

Page 39: Testes de Software & Ferramentas de Testes

Um teste com JUnit

public class HelloWorldTest {

@Test public void testMultiplication() {

//Testando se 2*2 = 4//Testando se 2*2 = 4

assertEquals ("Multiplication", 4, 2*2);

}

}

Page 40: Testes de Software & Ferramentas de Testes

Selenium

• Ferramenta para realização de testesintegrados e de aceitação;

• Usado no browser, grava todos os passos• Usado no browser, grava todos os passosexecutados na aplicação diretamente nobrowser e os executa de formaautomatizada no browser;

Page 41: Testes de Software & Ferramentas de Testes

Selenium

Page 42: Testes de Software & Ferramentas de Testes

JMeter

• Propósito principal para testes de cargae stress de aplicações;

• Pode ser usado para testes integrados e• Pode ser usado para testes integrados ede aceitação;

Page 43: Testes de Software & Ferramentas de Testes

JMeter

Page 44: Testes de Software & Ferramentas de Testes

Clover

• Ferramenta para análise de coberturados testes existem na aplicação;

• Integrado a várias IDEs - Eclipse ;-)• Integrado a várias IDEs - Eclipse ;-)

• Existem diversas opções semelhantes:JCoverage, Cobertura, etc;

Page 45: Testes de Software & Ferramentas de Testes
Page 46: Testes de Software & Ferramentas de Testes

Clover

Page 47: Testes de Software & Ferramentas de Testes

Dúvidas?

Page 48: Testes de Software & Ferramentas de Testes

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-http://blog.fragmental.com.br/2007/10/31/programadores-profissionais-escrevem-testes-ponto-final/

• [5] – Marcos Pereira –http://marcospereira.wordpress.com/2007/11/27/desenvolvedores-odeiam-testar

• [6] – Wikipedia – http://en.wikipedia.org/wiki/Test-driven_development

• [7] - TDD - http://www.testdriven.com

Page 49: Testes de Software & Ferramentas de Testes

Podem acordar, acabou!

• Obrigado a todos.

• Contatos:– www.portaljava.com | www.jeveaux.com– www.portaljava.com | www.jeveaux.com

[email protected] | [email protected]

Page 50: Testes de Software & Ferramentas de Testes

Testes de Software&

Ferramentas para Ferramentas para Testes

Esta apresentação usa a licença :

Creative Commons : de Atribuição/Uso

Não Comercial Compartilhado.