testes de software & ferramentas de testes

Post on 25-May-2015

25.188 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Testes de Software&

Ferramentas para Ferramentas para Testes

Testes de Software&

Ferramentas para Ferramentas para Testes

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

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;

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

Introdução

Desenvolvimento de software

Introdução

Desenvolvimento de software

Falhas de Software

Falhas de Software

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

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

Introdução

Desenvolvimento de software

Falhas de Software

Falhas custam caro

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]

Introdução

Desenvolvimento de software

Falhas de Software

Falhas custam caro

Testes não evitam falhas

Introdução

Desenvolvimento de softwareFalhas de SoftwareFalhas custam caro

Testes não evitam falhasTestes identificam as falhas antes delas

acontecerem

O que são 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;

O que são testes?

• São pontuais;

• São previsíveis;

• São finitos;

• São (ou deveriam ser) simples;

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;

O que são testes?

White Box

Caixa branca

• Testes de unidade de código;

• Testam parte da solução;

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

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.

O que são testes?

White Box

Black Box

Caixa preta

• Testes funcionais e de aceitação;

• Testes de integração;

• Testam a solução completa;

Cobertura 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

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;

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;

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!

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;

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;

Você confia no que faz?

Garanta o que você faz

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

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

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]

Test-Driven Development

TDD

Escreva umEscreva código

refatore

Escreva umTeste

Escreva códigoque passeno teste

Ferramentas

Ferramentas de teste de software

JUnit

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

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);

}

}

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;

Selenium

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;

JMeter

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;

Clover

Dúvidas?

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

Podem acordar, acabou!

• Obrigado a todos.

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

– jeveaux@portaljava.com | paulo@jeveaux.com

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.

top related