Мутационное тестирование. Если в коде появится ошибка, заметят ли ее наши тесты?
Доклад принят в программу конференции
Целевая аудитория
Тезисы
Высокий code coverage создаёт ощущение надёжности. Но факт исполнения строки не означает, что тест способен обнаружить дефект в ней. Код может быть покрыт, при этом тесты остаются нечувствительными к типичным ошибкам: инверсии условий, граничным случаям, подмене операторов сравнения или изменению возвращаемых значений.
В докладе разберём мутационное тестирование в Golang с практической точки зрения: как его внедрять в существующий проект, как интерпретировать mutation score и как использовать его в повседневной разработке. Обсудим влияние на CI, стоимость запуска, ограничения подхода и место mutation testing рядом с coverage - как метрики, отвечающей на другой вопрос о качестве тестов.
Разработчик с более чем 10-летним опытом и разнообразной экспертизой. Последние 5 лет специализируется на Golang.