Diretriz: Teste Unitário
O teste de unidade é um teste apurado da estrutura técnica de um módulo de software. Essa diretriz discute a abordagens de White-Box e Black-Box para o teste de unidade.
Relacionamentos
Descrição Principal

Introdução

O teste unitário é implementado com base no menor elemento testável (unidades) do software e implica em testar a estrutura interna, como fluxo lógico e de dados, a função da unidade e os comportamentos observáveis. O design e a implementação de testes com foco na estrutura interna de uma unidade baseiam-se no conhecimento da implementação da unidade (abordagem de caixa branca). O design e a implementação de testes com a finalidade de verificar os comportamentos observáveis e as funções da unidade não se baseiam no conhecimento da implementação e, portanto, são conhecidos como abordagem de caixa preta. 

Ambas as abordagens são utilizadas para projetar e implementar os diferentes tipos de testes (consulte Técnica: Tipos de Testes) necessários para testar as unidades de modo completo e bem-sucedido. 

Consulte também Técnica: Caso de Teste para obter informações adicionais sobre como derivar casos de teste para teste unitário.

Abordagem de Teste White-Box

Uma abordagem de teste caixa branca deve ser realizada para verificar a estrutura interna de uma unidade. Teoricamente, cada caminho possível ao longo do código deve ser testado, mas isso só pode ser feito em unidades muito simples. Na pior das hipóteses, você deve testar todos os caminhos decisão-a-decisão (caminho DD) pelo menos uma vez, porque você executará todas as instruções pelo menos uma vez. Em geral, uma decisão é uma instrução if, e um caminho DD é aquele que une duas decisões.

Para atingir esse nível de cobertura de teste, recomenda-se escolher dados de teste que permitam avaliar cada decisão de todas as maneiras possíveis.  

Use as ferramentas de cobertura de código para identificar o código não experimentado pelo teste caixa branca. O teste de confiabilidade deve ser realizado simultaneamente com o teste caixa branca.

Consulte Técnica: Caso de Teste para obter informações adicionais 

Abordagem de Teste Black-Box

A finalidade de um teste de caixa preta é verificar a função especificada e o comportamento observável da unidade sem que seja necessário saber como a unidade os implementa. Os testes caixa preta se concentram e se baseiam na entrada e saída da unidade.

A geração de testes unitários com base na abordagem da caixa preta utiliza os argumentos de entrada e saída das operações da unidade e/ou o estado de saída para avaliação. Por exemplo, a operação pode incluir um algoritmo (requerendo dois valores como entrada e retornando um terceiro como saída) ou iniciar a alteração no estado de um objeto ou componente, como a inclusão ou exclusão de um registro de banco de dados.  Ambos devem ser testados por completo. Para testar uma operação, você deve obter casos de teste suficientes para verificar se:

  • para cada valor válido utilizado como entrada, um valor apropriado foi retornado pela operação
  • para cada valor inválido utilizado como entrada, um valor apropriado foi retornado pela operação
  • para cada estado de entrada válido, um estado de saída apropriado ocorreu
  • para cada estado de entrada inválido, um estado de saída apropriado ocorreu

Use as ferramentas de cobertura de código para identificar o código não experimentado pelo teste caixa branca. O teste de confiabilidade deve ser realizado simultaneamente com o teste caixa preta.

Consulte Técnica: Caso de Teste para obter informações adicionais