Formulados ao longo de 40 anos, os sete princípios do teste de software representam as regras básicas para o processo e são:

Testes mostram a presença de erros. Testes objetivam a detecção de defeitos dentro de um pedaço do software. Mas não importa quanto um produto é exaustivamente testado, nunca é possível afirmar 100% que um produto não tem falhas. Apenas Podemos usar os testes para reduzir o número de defeitos não encontrados.

Testes Exaustivos são impossíveis. Não é possível testar todas as combinações de inputs de dados, cenários e pré-condições dentro de uma aplicação. Por exemplo, se uma única tela de aplicação contém 10 campos para acrescentar dados com 3 possíveis opções de valores cada, isto significa que para cobrir todas possíveis combinações, engenheiros de teste deveriam criar 59,049 (310) cenários de teste. E se a Aplicação contiver 50 ou mais de tais telas? Ao invés de gastar semanas criando milhões de tais cenários, é melhor focar naqueles potencialmente mais significativos.

Teste Cedo/Antes. Como mencionado acima, o custo de um erro cresce exponencialmente ao longo do processo de Desenvolvimento, portanto é importante começar a testar o quanto antes, para que o defeito seja resolvido e não se torne lima “bola de neve”. 

Aglutinação de Defeitos. Este princípio é frequentemente referido como uma aplicação do princípio de Pareto no Teste de Software. Isto significa que aproximadamente 80% dos erros são usualmente encontrados em 20% dos módulos do sistema. Assim, se um defeito é encontrado em um modulo particular do programa de software, as chances de haver outros defeitos são grandes. E por isso é que faz sentido testar esta área do produto exaustivamente.

Paradoxo Pesticida.  Rodar o mesmo conjunto de testes de novo e de novo não te achará a encontrar mais falhas. Assim que os defeitos detectados são corrigidos, estes cenários de teste se tornam inúteis.   Assim, é importante revisar e atualizar regularmente os testes para adaptá-los e potencialmente encontrar mais falhas.

Teste depende do contexto. Dependendo do proposito ou da indústria, diferentes aplicações devem ser testadas diferentemente. Enquanto a segurança pode ser de importância primária para um produto de tecnologia financeira, é menos importante para um website corporativo. Este ultimo põe ênfase em usabilidade e velocidade.

Falácia da Ausência de erros.  A completa ausência de defeitos no seu produto não significa necessariamente que ele será um sucesso. Não importa o tempo que você dedique polindo seu Código ou melhorando as funcionalidades se seu produto não é útil ou atende as expectativas dos usuários, ele não será adotado pela audiência alvo. 

Enquanto a lista de princípios acima é um guia indiscutível para qualquer profissional de testes, existem mais aspectos à serem considerados. Algumas fontes adicionam outros princípios à estes princípios básicos:

  • Teste deve ser processo independente gerido por profissionais imparciais.  
  • Teste para valores inválidos e inesperados tanto quanto para valores esperados e válidos.  
  • Testes devem ser feitos apenas em partes estáticas do software (mudanças não devem ser feitas durante o processo de testes).
  • Use documentação exaustiva e compreensiva para definir os resultados esperados.