Princípio 1 – Teste demonstra a presença de defeitos
O teste pode demonstrar a presença de defeitos, mas não pode provar que eles não existem. O Teste reduz a
probabilidade que os defeitos permaneçam em um software, mas mesmo se nenhum defeito for encontrado,
não prova que ele esteja perfeito.
Princípio 2 – Teste exaustivo é impossível
Testar tudo (todas as combinações de entradas e pré-condições) não é viável, exceto para casos triviais. Em
vez do teste exaustivo, riscos e prioridades são levados em consideração para dar foco aos esforços de teste.
Princípio 3 – Teste antecipado
A atividade de teste deve começar o mais breve possível no ciclo de desenvolvimento do software ou sistema
e deve ser focado em objetivos definidos.
Princípio 4 – Agrupamento de defeitos
Um número pequeno de módulos contém a maioria dos defeitos descobertos durante o teste antes de sua
entrega ou exibe a maioria das falhas operacionais.
Princípio 5 – Paradoxo do Pesticida
Pode ocorrer de um mesmo conjunto de testes que são repetidos várias vezes não encontrarem novos defeitos
após um determinado momento. Para superar este “paradoxo do pesticida”, os casos de testes necessitam ser
frequentemente revisado e atualizado. Um conjunto de testes novo e diferente precisa ser escrito para exercitar
diferentes partes do software ou sistema com objetivo de aumentar a possibilidade de encontrar mais erros.
Princípio 6 – Teste depende do contexto
Testes são realizados de forma diferente conforme o contexto. Por exemplo, softwares de segurança crítica são
testados diferentemente de um software de comércio eletrônico.
Princípio 7 – A ilusão da ausência de erros
Encontrar e consertar defeitos não ajuda se o sistema construído não atende às expectativas e necessidades dos
usuários.
Fonte: http://www.bstqb.org.br/uploads/docs/syllabus_ctfl_2011br.pdf
Replicando resposta em formato mais agradável e visual!
O teste é parte fundamental no ciclo de vida de um software. Abaixo estão listados 7 princípios fundamentais que envolvem o processo de teste e devem servir como um guia geral, tanto para testadores quanto para desenvolvedores. Afinal, ambos participam efetivamente do processo de amadurecimento do sistema.
1º Príncipio: Testes apontam a presença de falhas
Testes conseguem identificar a existência de falhas, mas não pode garantir a ausência delas. Mesmo se nenhum erro for identificado em uma bateria de testes, não é possível afirmar que o software está livre de falhas.
2º Princípio: Teste exaustivo é impossívelA menos que a aplicação sendo testada tenha uma estrutura lógica muito simples e valores de entrada limitados, teste exaustivo é inviável pois seria extremamente custoso cobrir todos os cenários possíveis. Deve-se calcular o esforço dos testes baseando-se nos riscos e prioridades.
3º Princípio: Teste antecipadoAo desenvolver um software, as atividades de teste devem começar o quanto antes. Assim que os requisitos ou modelagem do sistema estiverem prontos, é possível começar o trabalho de modelagem do plano de testes. O quanto antes uma falha for identificada no ciclo de vida de um sistema, mais barata e mais simples será a correção.
4º Princípio: Agrupamento de falhasA maioria das falhas encontradas durante a execução dos testes está concentrada em um número pequeno de módulos. Sempre existe uma área do software que é responsável pelo maior número de erros.
5º Princípio: Paradoxo do pesticidaUm conjunto de testes, se executado várias vezes, pode não mais detectar novas falhas. Para contornar esse problema, os casos de teste devem ser frequentemente revisados e atualizados. Eles devem ser reformulados para abordar novas áreas do sistema e assim aumentar a chance de detectar novas falhas.
6º Princípio: Teste depende de contextoOs testes devem ser elaborados de acordo com o tipo do software. Por exemplo, um sistema bancário deve ser testado de maneira diferente de uma rede social. Há questões de segurança que devem ser mais precisamente abordadas no primeiro caso. Da mesma forma que testes web são elaborados com foco diferente dos testes de aplicações desktop.
7º Princípio: Ausência de erros é uma ilusãoIdentificar e corrigir os problemas de um software não garantem que ele está pronto. Os testes foram elaborados para identificar todas as possíveis falhas? O sistema atende às necessidades e expectativas dos usuários? Ou seja, existem outros fatores que devem ser considerados para garantir a qualidade do sistema.
Fonte:http://crowdtest.me/7-principios-fundamentais-teste-software/