Сопоставьте изменённый оператор с конкретным нарушением контракта.
Зачем
Зачем это нужно
Проверьте, выполнялся ли участок тестами и наблюдался ли его результат.
Оценивайте качество значимых проверок, а не максимальный процент любой ценой.
Вопросы
Частые вопросы
Как превратить мутанта в полезный тест?
«Учебное правило допускает age=18. Замена >= на > выжила при тестах 17 и 25». Попросите одно проверяемое утверждение для 18 и объяснение, почему оно различает реализации. Затем запустите набор с правильным и изменённым условием. Новый тест должен пройти на контрактном поведении и упасть на мутации; простое выполнение функции без проверки результата этого не доказывает.
Чем отсутствие покрытия отличается от слабой проверки?
В первом случае тесты не дошли до изменённого участка, во втором могли выполнить его, но не заметить неправильный результат. Попросите прочитать статус инструмента вместе с картой покрытия. Решения различаются: нужен либо вход, достигающий ветки, либо содержательный assert. Не добавляйте новый тест по одному проценту отчёта без понимания, какая операция и какое ожидаемое поведение остались без защиты.
Всех выживших мутантов нужно уничтожить?
Нет, некоторые изменения эквивалентны на допустимом домене входов или не влияют на проверяемое поведение. Такое заключение требует объяснения, а не удобной пометки для улучшения метрики. Попросите показать контрпример или доказать его отсутствие в заданных условиях. Если контракт сам неясен, сначала уточните правило; тест, закрепляющий случайную реализацию, может мешать будущему рефакторингу без реальной пользы.
Как ограничить стоимость прогона?
Начните с критичного небольшого модуля и затрагиваемых тестов, исключив только обоснованные области вроде сгенерированного кода. Изучите таймауты и ошибки самого инструмента отдельно от выживших изменений. Енотик поможет расставить приоритеты по отчёту, но не запускает мутации вашего репозитория. Итоговая оценка должна опираться на фактический прогон и обнаруживаемые дефекты, а не обещание стопроцентной надёжности после достижения красивого показателя.
Рядом
Соседние страницы каталога
Дальше — весь каталог задач: поиск по названию, темы и фильтры.