Conceito e mecanismo
Ferramentas diferentes respondem a perguntas diferentes. Um teste de contrato observa compatibilidade entre expectativas de consumidor e comportamento do fornecedor; não demonstra sozinho capacidade sob carga. Uma ferramenta de mutação introduz pequenas alterações no programa para verificar se os testes as detetam. Em PIT, killed significa que um teste detetou a alteração, survived indica que não foi detetada por testes que cobrem o código, e no coverage identifica ausência de execução relevante. Um mutante pode ser equivalente ao programa original no âmbito considerado; sobreviver não prova sempre que falta uma assertiva. Investiga o comportamento alterado e o oráculo antes de aumentar testes apenas para melhorar uma percentagem.
Aplicação guiada
Injeção de falhas pode simular indisponibilidade de uma dependência num ambiente delimitado para estudar recuperação. Distingue isso de alterar código para avaliar capacidade de deteção da suite. Geração baseada em modelos depende das transições e regras representadas; um modelo incompleto pode produzir muitos testes e conservar a mesma lacuna. Ferramentas de componentes apoiam feedback rápido e a integração contínua deve preservar resultados e identidade dos artefactos. Para aplicações móveis, emulação de parâmetros de browser pode investigar viewport, toque, idioma e fuso, mas não reproduz automaticamente bateria, sensores, sistema operativo e rede de um dispositivo físico. Define o que a ferramenta simula e acrescenta outras observações quando o risco depende de características ausentes dessa simulação.
Um mutante sobrevivente exige análise de comportamento, cobertura e oráculo.
Armadilhas comuns
Contrato como carga; mutante equivalente como falha da suite; emulação como dispositivo completo.
Tópicos relacionados: Risco técnico e evidência operacional · Cobertura lógica white-box · Análise estática e dinâmica
Relaciona a ferramenta com uma pergunta e declara o que fica fora.
Referência: PIT mutation testing concepts · CTAL-TTA v4.0 (2021)