Описание тега mutation-testing
Метод тестирования программного обеспечения, который включает изменение исходного кода или скомпилированного промежуточного кода (Java: байтовый код, .NET: IL). Наборы тестов, которые не терпят неудачу при каждой из этих "мутаций", считаются неадекватными.
Мутационное тестирование - это метод проверки адекватности наборов тестов. Применяя мутации к тестируемому коду, можно судить об эффективности набора тестов. Если набор тестов терпит неудачу при этой мутации, он эффективен против нее.
Используются различные типы мутаций: Ма, Оффутт и Квон описывают мутации внутри метода, между методами, внутри класса и между классами. Самым простым в реализации является мутация внутри метода, для которой можно использовать следующие мутации:
- Удаление выписки.
- Замените каждое логическое подвыражение на истину и ложь.
- Замените каждую арифметическую операцию другой, например, + на *, - и /.
- Замените каждое логическое отношение другим, например> на>=, == и <=.
- Замените каждую переменную другой переменной, объявленной в той же области (типы переменных должны быть одинаковыми). (источник: Википедия)