Você está na página 1de 1

Apontamento - Teste baseado em defeitos

● Teste baseado em defeitos


○ Utiliza conhecimento sobre defeitos típicos cometidos durante o processo de
desenvolvimento de software para derivar os requisitos de teste
○ Hipótese:
■ Programador Competente
● Programadores criam programas corretos ou que diferem de um
programa correto por uma combinação de defeitos simples
■ Efeito de Acoplamento
● Casos de testes capazes de detectar erros simples também são
capazes de revelar erros mais complexos
○ Critérios
■ Semeadura de Defeitos
■ Teste de mutação
● É o teste dos testes, ou seja, verifica quais casos de testes são mais
eficazes
● Inserir defeitos artificiais (mutantes) no código para avaliar a
qualidade do código de teste
● Conjunto de casos de teste eficazes
○ Ao menos um dos casos de teste falha ao executar o
conjunto de teste contra os mutantes
● O objetivo é matar todos os mutantes possíveis e deixar o escore de
mutação igual a 1.
𝑚𝑢𝑡𝑎𝑛𝑡𝑒𝑠 𝑚𝑜𝑟𝑡𝑜𝑠
● escore de mutação = 𝑚𝑢𝑡𝑎𝑛𝑡𝑒𝑠 𝑣𝑖𝑣𝑜𝑠 − 𝑚𝑢𝑡𝑎𝑛𝑡𝑒𝑠 𝑒𝑞𝑢𝑖𝑣𝑎𝑙𝑒𝑛𝑡𝑒𝑠
● Para realizar o teste de mutação é preciso seguir os seguintes
passos:
○ Execução do programa com os casos de teste
○ Geração dos mutantes
■ Operadores de mutação
● São regras que definem o tipo de alteração
sintática que deve ser feita para a criação
dos mutantes
● Mudanças são bastante similares a defeitos
típicos cometidos
● Operadores dependem da linguagem alvo
○ Execução dos mutantes com os casos de teste
■ A partir da execução dos mutantes se tenta
distinguir eles do programa original.
■ Quando um mutante é detectado ele vira um
mutante morto
○ Análise dos mutantes
■ Em alguns casos não é possível distinguir mutantes,
estes casos são registrados como mutantes
equivalentes.
● Limitações:
○ Determinar se um programa é equivalente ao outro é um
problema indecidível
○ O número de mutantes a serem executados pode ser muito
alto

Você também pode gostar