100% покрытия. Все тесты зелёные. Значит, код надёжен?
Не совсем.
Можно выполнить каждую строку программы и всё равно пропустить важный сценарий. Например, проверить a > b и a < b, но забыть про a == b.
Мутационное тестирование предлагает дерзкий способ оценить качество тестов: намеренно ломает код. Меняет > на >=, true на false, возвращаемое значение на null. Если тесты не замечают подмены, значит, «мутант» выжил, а в тестовом наборе есть слепая зона.
Звучит как идеальный инструмент. Но на реальном проекте быстро появляются нюансы. Например, ложные срабатывания, долгие запуски и отчёты, которые всё равно приходится разбирать человеку.
В новой статье на простом Java-примере показываем:
– как работает мутационное тестирование с Pitest;
– почему 100% покрытия недостаточно;
– откуда берутся выжившие мутанты;
– почему не стоит прогонять MT по всему проекту;
– и в каких случаях этот подход действительно окупается.
А ещё как поручить настройку и запуск Pitest AI-агенту с помощью готового skill.
Мутационное тестирование само по себе не является серебряной пулей. Но иногда именно оно задаёт вашим тестам самый неприятный и самый полезный вопрос: «А вы точно хоть что-нибудь проверяете?»
🔗 Читать статью: https://habr.com/ru/companies/spring_aio/articles/1078564/
Не совсем.
Можно выполнить каждую строку программы и всё равно пропустить важный сценарий. Например, проверить a > b и a < b, но забыть про a == b.
Мутационное тестирование предлагает дерзкий способ оценить качество тестов: намеренно ломает код. Меняет > на >=, true на false, возвращаемое значение на null. Если тесты не замечают подмены, значит, «мутант» выжил, а в тестовом наборе есть слепая зона.
Звучит как идеальный инструмент. Но на реальном проекте быстро появляются нюансы. Например, ложные срабатывания, долгие запуски и отчёты, которые всё равно приходится разбирать человеку.
В новой статье на простом Java-примере показываем:
– как работает мутационное тестирование с Pitest;
– почему 100% покрытия недостаточно;
– откуда берутся выжившие мутанты;
– почему не стоит прогонять MT по всему проекту;
– и в каких случаях этот подход действительно окупается.
А ещё как поручить настройку и запуск Pitest AI-агенту с помощью готового skill.
Мутационное тестирование само по себе не является серебряной пулей. Но иногда именно оно задаёт вашим тестам самый неприятный и самый полезный вопрос: «А вы точно хоть что-нибудь проверяете?»
🔗 Читать статью: https://habr.com/ru/companies/spring_aio/articles/1078564/