Teste de software
Ellen Francine Barbosa José Carlos Maldonado Auri Marcelo Rizzo Vincenzi Universidade de São Paulo — ICMC/USP {francine, jcmaldon, auri}@icmc.sc.usp.br Márcio Eduardo Delamaro Universidade Estadual de Maringá — DIN/UEM delamaro@din.uem.br Simone do Rocio Senger de Souza Universidade Estadual de Ponta Grossa — UEPG rocio@icmc.sc.usp.br Mario Jino Universidade Estadual de Campinas — DCA/FEEC/UNICAMP jino@dca.fee.unicamp.br
Resumo Neste texto são apresentados alguns critérios de teste de software, conceitos pertinentes e ferramentas de apoio. São abordados critérios de teste funcional, estrutural – baseados em fluxo de controle e em fluxo de dados – e baseados em mutação. Ênfase é dada no teste de mutação. Apesar de sua eficácia em revelar a presença de erros, o teste de mutação apresenta problemas de custo relacionados ao grande número de mutantes gerados e à determinação de mutantes equivalentes, mesmo para pequenos programas. Visando a reduzir os custos de aplicação do teste de mutação diversos estudos teóricos e empíricos vêm sendo realizados. Uma síntese dos principais estudos empíricos relacionados ao teste de mutação é apresentada. Esses estudos procuram estabelecer uma estratégia de teste que viabilize a utilização do teste de mutação no teste de produtos comerciais de software. Ilustram-se a atividade de teste e os problemas pertinentes utilizando-se as ferramentas ÊÇÌ Í Á , que apóiam, respectivamente, critérios estruturais, o Å Å PokeTool, Proteum e È critério Análise de Mutantes e o critério Mutação de Interface. Identificam-se ainda outras iniciativas e esforços da comunidade para a automatização desses critérios.
£ Partes deste
trabalho foram extraídas de [1] e [2].
1
1 Introdução
A Engenharia de Software evoluiu significativamente nas últimas décadas procurando estabelecer técnicas, critérios, métodos e ferramentas para a produção de software, em conseqüência da crescente utilização de sistemas baseados em