Resumo: Cobertura e Adequação do Teste de Unidade


Software Unit Test Coverage and Adequacy
Hong Zhu, Patrick A. V. Hall, John H. R. May

Christian Reis
<kiko@async.com.br>

Resumo:

Este artigo (Zhu et al., 1997) faz um levantamento dos critérios existentes para medir a qualidade do teste de unidade. Além disso, oferece uma classificação destes critérios, fazendo um resumo dos métodos existentes para esta classificação.

Introdução

Das diversas fases associadas à Engenharia de Software, o Teste é a fase indispensável para validar e verificar sistemas em desenvolvimento. Desde o estabelecimento desta noção, tem-se feito grande volume de pesquisa em torno deste assunto. Uma das questões mais importantes na execução de um teste é caracterizar quais (e quantos) testes são suficientes para garantir qualidade do produto. Este artigo faz um levantamento e discussão dos diversos critérios apresentados acadêmicamente.

Noções Básicas

Critérios para teste se apóiam em alguns conceitos básicos:

Um critério de teste é o que define quais propriedades precisam ser testadas para garantir inexistência de erros. Como é impossível garantir inexistência, o conceito é utilizado, na prática, para definir uma qualidade mínima que será validada pelo teste.

Categorias de Critérios

Podemos dividir os critérios de diversas formas: pela fonte da informação usada para especificar o teste, pelo uso exclusivo da interface para gerar os testes, e pela forma com que o teste é realmente conduzido. Utilizando esta última forma para classificar os critérios, o artigo faz uma análise de cada uma.

Critérios Baseados em Estrutura

Critérios baseados na estrutura do software especificam o teste em termos da cobertura de um conjunto de elementos do software ou especificação. Estes critérios podem ser, por sua vez, divididos em dois grupos:

Critérios Baseados em Falhas

Testes baseados em falhas focam em detectar falhas no software: critérios de teste baseados em falhas utilizam uma medida da capacidade destes testes efetivamente encontrarem uma falha. Há uma série de formas diferentes de se aplicar estes testes e estabelecer critérios:

Critérios Baseados em Erros

Estes critérios se focam em analisar o teste do programa em certos pontos propensos a erros de acordo com nossa experiência. Se apóia na idéia de particionar o domínio de entrada e saída e obter regiões equivalentes para o teste.

Uma Comparação entre Critérios de Adequação

Verificação Axiomática de Critérios

Além das formas apresentadas para avaliar o uso dos critérios descritos no artigo, existe uma terceira forma de estudar as propriedades do critério. Esta forma se concentra em estabelecer as propriedades fundamentais da adequação de teste, e verificar se estas propriedades são verificáveis para cada critério. Os autores acreditam que o estudo axiomático pode melhorar bastante a compreensão da adequação do teste; existe uma série de estudos desenvolvidos no sentido.

Conclusão

O artigo fez uma revisão ampla de critérios para avaliar a qualidade de um teste e formas de compará-los. Embora o assunto ainda seja bastante controverso, é provável que, com a adoção de um framework de Garantia de Qualidade baseado em ISO9001, a aceitação de formas mais formais de medidas do processo de teste seja maior.

Bibliografia

Zhu, H., Hall, P. A. V. and May, J. H. R.: 1997, Software unit test coverage and adequacy, ACM Computing Surveys 29(4), 367-427.



Christian Reis 2000-09-14