(download)
Maldonado, J. C., Barbosa, E. F., Vincenzi, A. M. R; Delamaro, M. E., Souza, S. R. S. and Jino, M. Introdução ao Teste de Software. São Carlos: ICMC-USP, 2004 (Notas Didáticas do ICMC).
ABSTRACT
As exigências por softwares com maior qualidade têm motivado a definição de métodos e técnicas para o desenvolvimento de softwares que atinjam os padrões de qualidade impostos. Com isso, o interesse pela atividade de teste de software vem aumentando nos últimos anos. Vários pesquisadores têm investigado os diferentes critérios de teste, buscando obter uma estratégia de teste com baixo custo de aplicação, mas ao mesmo tempo, com grande capacidade em revelar erros. O objetivo deste minicurso é apresentar os aspectos teóricos e práticos relacionados à atividade de teste de software. Uma síntese das técnicas de teste funcional, estrutural e baseada em erros, bem como de critérios de teste pertencentes a cada uma delas, será apresentada. Fatores utilizados na comparação e avaliação de critérios de teste de software (custo, eficácia e strength) também serão abordados, tanto do ponto de vista teórico como empírico. A importância da automatização da atividade de teste será destacada, caracterizando-se os esforços da comunidade científica nessa direção. Dar-se-á ênfase ao critério de teste Análise de Mutantes apresentando uma revisão histórica do seu surgimento e desenvolvimento. Aspectos teóricos e práticos de sua utilização serão abordados e as estratégias que procuram minimizar o custo de aplicação desse critério serão discutidas. Será apresentado o critério Mutação de Interface que estende o critério Análise de Mutantes visando à atividade de teste no nível de integração. A atividade de teste e os problemas pertinentes à ela serão ilustrados utilizando-se as ferramentas PokeTool, Proteum e PROTEUM/IM, que apóiam, respectivamente, critérios estruturais, o 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. Serão apresentadas também as extensões do critério Análise de Mutantes para aplicação no contexto de especificações, discutindo sua definição para validação de especificações baseadas em Statecharts, Máquinas de Estados Finitos, Redes de Petri, Estelle e SDL, além de extensões destinadas ao teste de programas Orientado a Objetos. Perspectivas e trabalhos de pesquisa sendo realizados nessas áreas também serão discutidos.