Мутационные тесты
Что такое мутационные тесты? По факту это тесты для тестов. Все прекрасно понимают, что наличие тестов в проекте само по себе еще ничего не гарантирует: ни покрытие, ни отсутствие ошибок в коде и самих тестах. Важно качество этих тестов, что они действительно проверяют то, что должны и все дополнительные сценарии.
Работает это так: мутационный фреймворк изменяет исходный код проекта согласно определенному набору правил, например, меняет
=== на
!== (на самом деле там большой список мутаций) и для каждого такого изменения (мутанта) прогоняет тесты. Если тесты упали, значит мутант считается убитым, если тесты не заметили изменений - мутант выжил и на него стоит посмотреть, скорее всего тест нужно доработать.
Кроме того, сразу будет видно, какие мутанты вовсе не покрыты тестами, они будут пропущены фреймворком.
https://habr.com/ru/articles/737278/
Хабр
Лови мутанта! Мутационные тесты: зачем и как
Я очень люблю тесты и считаю, что любой код должен быть покрыт ими, желательно качественными :) Поэтому хочу поделиться с вами опытом внедрения мутационных тестов в проект, рассказать зачем оно...