mutation-testing

7 posts

Как убить выжившего мутанта, когда вы не понимаете, что он изменил

Мутационное тестирование нашло выжившего, и вы понятия не имеете, что делает мутация. Вот пошаговый метод написания правильного теста без предварительного понимания мутанта.

Ваш отчёт о мутационном тестировании полон выживших, и хотя бы один из них для вас бессмысленен. Инструмент говорит, что он заменил на в строке 47, или…

Код аутентификации нуждается в 90% покрытии мутациями. Ваши строковые утилиты — нет.

Почему принудительное единое покрытие мутациями для всей кодовой базы — ошибка, и как установить пороговые значения для каждого модуля в соответствии с реальным риском.

Принудительное единое покрытие мутациями для всей кодовой базы — отличный способ заставить вашу команду ненавидеть тестирование. Запустите PIT или Stryker на…

Ваши тесты проходят. Mutation score — 40%. Вот что на самом деле говорят выжившие мутанты.

Code coverage говорит, что всё в порядке. Mutation testing говорит, что ваши тесты — в основном декорация. Вот как выжившие мутанты выявляют этот разрыв и как его устранить.

Ваши тесты проходят. Ваш отчёт о coverage показывает 87%. Но ваш mutation score — 40%, и половина ваших мутантов всё ещё жива. Эти 40% не означают, что ваш код…

Mutation testing в Rust работает, но ваше время компиляции этого не простит

cargo-mutants находит тесты, которые только притворяются, что проверяют ваш код. Вот как работает mutation testing в Rust, что он ловит и стоит ли затрат времени компиляции.

У вас 100% покрытие строк. Каждая ветвь задействована. Каждая функция вызвана. Затем кто-то меняет на в вашей логике ценообразования, запускает тесты, и все…

Мутационное тестирование занимает 4 часа. Как команды реально используют его в CI?

Большинство команд не запускают полные наборы мутационного тестирования на каждый коммит. Вот как инженерные команды реально интегрируют его в CI, не ломая пайплайн сборки.

Если ваш набор мутационного тестирования занимает четыре часа, поздравляем. Вы доказали то, что все и так подозревали: в вашем тестовом наборе есть пробелы. Вы…

AI Safety Stack: types, contracts, property tests и mutation gates

Если вы хотите, чтобы AI-generated code выдерживал production, одного code review недостаточно. Нужен многослойный safety stack: от type constraints до mutation testing и runtime containment.

Самое опасное в AI-generated code не в том, что он всегда неправильный. Самое опасное в том, что он слишком часто выглядит достаточно правдоподобно, чтобы его…

Почему сильные инженерные идеи оставались нишевыми, пока AI не сделал их экономически реальными

Design by contract, property-based testing, mutation testing и model checking не были плохими идеями. Их было слишком дорого поддерживать с точки зрения специализированных знаний. AI меняет это уравнение.

В software engineering полно идей, которые кажутся очевидно правильными в ту же секунду, когда ты их читаешь. Разумеется, contracts должны определять, что…