Teste de mutação

Definição - o que significa teste de mutação?

O teste de mutação é um método de teste de software no qual o programa ou código-fonte é deliberadamente manipulado, seguido por um conjunto de testes contra o código mutado. As mutações introduzidas no código-fonte são projetadas para imitar erros de programação comuns. Um bom conjunto de testes de unidade normalmente detecta as mutações do programa e falha automaticamente.

O teste de mutação é usado em muitas plataformas diferentes, incluindo Java, C ++, C # e Ruby.

Definirtec explica o teste de mutação

O teste de mutação é um método simples, mas engenhoso, usado para validar a exatidão do código-fonte e o processo de teste. O conceito foi cunhado pela primeira vez por Richard Lipton em 1971, e tem havido um surto de interesse desde aquela época.

O mecanismo de trabalho do teste de mutação é simples e direto. Uma parte do código-fonte abrangendo todos os testes de unidade é selecionada. Depois de verificar todos os testes positivos para um determinado código-fonte, uma mutação é introduzida no programa.

O grau de mutação aplicado a um determinado bloco de código pode variar. Uma implementação de teste de mutação comum envolve a substituição de um operador lógico por seu inverso. Por exemplo, o operador "! =" É usado no lugar de "= =." Em alguns casos, a mutação envolve reorganizar as linhas para alterar a ordem de execução ou até mesmo excluir algumas linhas de código. Níveis de teste de mutação complexos podem resultar em erros de compilação.

Depois que um programa é modificado, um conjunto de testes de unidade é executado em relação ao código mutado. O código com mutação passa ou falha no teste de unidade, dependendo da qualidade do teste. Um teste de unidade bem escrito deve detectar erros de código mutantes, resultando em falha. Um teste de unidade que não consegue detectar erros de código pode exigir uma reescrita.

O teste de mutação facilita as seguintes vantagens:

  • Identificação de falha de código de programa
  • Desenvolvimento de caso de teste eficaz
  • Detecção de lacunas nos dados de teste
  • Melhor qualidade do programa de software
  • Eliminação da ambiguidade do código

As desvantagens do teste de mutação incluem:

  • Implementação difícil de mutações complexas
  • Caro e demorado
  • Requer testadores qualificados com conhecimento de programação