Os mais importantes Princípios do Teste de Software

Os mais importantes Princípios do Teste de Software

23 de Outubro de 2019 Não Por tmi

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.