tgoop.com/testerlib/3975
Create:
Last Update:
Last Update:
🧬 Что такое Mutation testing
Обычные метрики покрытия (coverage 90%) ничего не говорят о качестве тестов. Код можно покрыть, но не проверить. Mutation testing проверяет не код, а тесты.
Инструмент специально вносит мелкие изменения (мутации) в код:
🟣 > заменяет на <
🟣 == на !=
🟣 убирает строки, инвертирует условия
Если после этого тесты всё равно проходят — значит, они не ловят ошибку
def is_adult(age):
return age >= 18
Тест проверяет
age = 18
.
Мутация меняет код на
>
— тест всё ещё проходит.
Вывод: тест слабый, не покрывает граничные случаи.
—
mutmut
(Python)—
PITest
(Java)—
stryker
(JS/TS)#теория_на_пальцах