test-quality

5 posts

Код аутентификации нуждается в 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, не ломая пайплайн сборки.

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

Ваши unit tests проходят. Ваш production-код всё равно сломан.

Метрики coverage создают ложное чувство безопасности. Вот почему unit tests пропускают баги, которые реально лишают вас сна, и что тестировать вместо этого.

У вас 90% coverage, и вас всё равно разбудили в два часа ночи. Unit tests прошли. CI был зелёным. Баг всё равно попал в production. Coverage не соврал, но и…