Para mostrar que os sistemas subjacentes são impecáveis, você também
a) Necessidade de provar que são impecáveis
- Prova matemática
- Realisticamente possível apenas para programas triviais
b) Faça um teste exaustivo
- Só é possível para programas triviais e alguns programas simples
- Assim que um elemento de temporização entra no teste, não é possível fazer um teste exaustivo, pois o tempo pode ser dividido indefinidamente.
- Além dos programas triviais, as possíveis opções de execução explodem exponencialmente.
No teste de software, o teste exaustivo é usado apenas no teste de unidade de algumas funções simples.
Exemplo: você deseja testar uma entrada utf-8 de 8 caracteres em algum campo, escolhe cortar a entrada 8 vezes o comprimento máximo 6 de utf-8 em bytes, o que fornece 8 * 6 = 48 bytes para realmente ter um quantidades finitas de possibilidades.
Agora você pode pensar que só precisa testar os 1.112.064 pontos de código válidos de cada um dos 8 caracteres, ou seja. 1.112.064 ^ 8 (digamos 10 ^ 48) testa (o que já é improvável), mas você realmente precisa testar cada valor de cada um dos 48 bytes ou 256 ^ 48, que é cerca de 10 ^ 120, que é a mesma complexidade do xadrez comparado ao número total de átomos no universo de aproximadamente 10 ^ 80.
Em vez disso, você pode usar, em ordem crescente de esforço, e cada teste deve cobrir todo o anterior:
a) teste uma amostra boa e uma ruim.
b) cobertura de código, ie. tente testar todas as linhas de código, o que é relativamente simples para a maioria dos códigos. Agora você pode se perguntar qual é o último 1% do código que não pode testar ... bugs, código morto, exceções de hardware etc.
c) cobertura do caminho, todos os resultados de todos os ramos em todas as combinações são testados. Agora você sabe por que o departamento de teste o odeia quando suas funções contêm mais de 10 condições. Você também se pergunta por que o último 1% não pode ser testado ... alguns ramos dependem dos ramos anteriores.
d) teste de dados, teste várias amostras com valor de borda, valores problemáticos comuns e números mágicos, zero, -1, 1, min +/- 1, max +/- 1, 42, rnd valores. Se isso não lhe fornecer cobertura de caminho, você sabe que não capturou todos os valores em sua análise.
Se você já faz isso, deve estar pronto para o exame básico do ISTQB.