![][1] Юнит тесты помогают нам удостовериться, что код работает так, как мы этого хотим. Одной из метрик тестов является _процент покрытия_ строк кода (Line Code Coverage).
Но насколько корректен данный показатель? Имеет ли он практический смысл и можем ли мы ему доверять? Ведь если мы удалим все `assert` строки из тестов, или просто заменим их на `assertSame(1, 1)`, то по-прежнему будем иметь 100% Code Coverage, при этом тесты ровным счетом не будут тестировать ничего.
Насколько вы уверены в своих тестах? Покрывают ли они все ветки выполнения ваших функций? Тестируют ли они вообще хоть что-нибудь?
Ответ на этот вопрос даёт мутационное тестирование.
[Читать дальше →][2]
[1]:
https://habrastorage.org/web/2c5/3b5/2c5/2c53b52c5d5a411bafe24eba7116b302.png
[2]:
https://habrahabr.ru/post/334394/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut