Описание тега mutation-testing

Метод тестирования программного обеспечения, который включает изменение исходного кода или скомпилированного промежуточного кода (Java: байтовый код, .NET: IL). Наборы тестов, которые не терпят неудачу при каждой из этих "мутаций", считаются неадекватными.

Мутационное тестирование - это метод проверки адекватности наборов тестов. Применяя мутации к тестируемому коду, можно судить об эффективности набора тестов. Если набор тестов терпит неудачу при этой мутации, он эффективен против нее.

Используются различные типы мутаций: Ма, Оффутт и Квон описывают мутации внутри метода, между методами, внутри класса и между классами. Самым простым в реализации является мутация внутри метода, для которой можно использовать следующие мутации:

  • Удаление выписки.
  • Замените каждое логическое подвыражение на истину и ложь.
  • Замените каждую арифметическую операцию другой, например, + на *, - и /.
  • Замените каждое логическое отношение другим, например> на>=, == и <=.
  • Замените каждую переменную другой переменной, объявленной в той же области (типы переменных должны быть одинаковыми). (источник: Википедия)