Home > Engenharia de Software > Sumário > Qualidade de Software > Teste Caixa-Branca
Teste de Unidade
Antes de qualquer outro teste seja iniciado, os testes de fluxos de dados, ou seja, a entrada e saída de dados, devem ser realizados. Além disso, as estruturas de dados locais devem ser exercitados e o impacto local nos dados globais deve ser verificado (se possível) durante o teste de unidade.
A figura 1 ilustra os testes que ocorrem como parte do teste de unidade, verificando se:
- a interface do módulo é testada para garantir que a informação flui adequadamente para dentro e para fora da unidade de programa que está sendo testada;
- a estrutura de dados local é examinada para garantir que os dados armazenados temporariamente mantenham sua integridade durante todos os passos de execução de um algoritmo;
- todos os caminhos independentes ao longo da estrutura de controle são exercitados para garantir que os comandos de um módulo tenham sido executados pelo menos uma vez;
- as condições-limite são testadas para garantir que o módulo opere adequadamente nos limiares estabelecidos;
- todos os caminhos de manipulação de erros são testados.
Figura 1: Teste de Unidade.
Fonte: PRESSMAN (2010).
Casos de teste devem descobrir erros tais como:
- comparação de tipos de dados diferentes;
- operadores ou precedências lógicas incorretas;
- expectativa de igualdade quando o erro de precisão torna a igualdade improvável;
- comparação incorreta de variáveis;
- terminação de ciclo inadequada ou inexistente;
- falha na saída quando iteração divergente é encontrada;
- variáveis de ciclo inadequadamente modificadas.
O bom projeto determina que condições de erros sejam antecipadas e caminhos de manipulação de erros estabelecidos para direcionar ou claramente terminar o processamento quando um erro efetivamente ocorre. Yordon (1975) chama essa abordagem de antidefeitos.
Entre os erros potenciais que devem ser testados quando a manipulação de erros é avaliada estão:
- a descrição do erro não é legível;
- o erro mencionado não corresponde ao erro encontrado;
- a condição de erro provoca a intervenção do sistema antes da manipulação do erro;
- o processamento da condição de exceção está incorreto;
- a descrição de erro não fornece informação suficiente para ajudar na localização da causa do erro.
Referência Bibliográfica
PRESSMAN, Roger S. Engenharia de Software, Sexta Edição. Editora MCGrawHill: Porto Alegre, 2010.