Мутация Тестирование
Можно ли успешно использовать мутационное тестирование для улучшения TDD с точки зрения уменьшения дефектов?
5 ответов
ИМХО тестирование мутаций теоретически может уменьшить дефекты не только в контексте TDD, но и в других контекстах... Единственная проблема заключается в том, что на практике это не очень часто используется. См. Также Полезно ли тестирование на мутации на практике?
Я использую это, и считаю это успехом.
Если вы хотите использовать мутационное тестирование для Java, я настоятельно рекомендую использовать новый инструмент Javalanche от David Schuler, а не Jester и его друзей. Javalanche манипулирует байт-кодом, а не исходным кодом, и, следовательно, работает на несколько порядков быстрее.
Да, я считаю, что это хорошее дополнение к TDD.
Разработчики в Google, похоже, используют его для помощи при проверке кода или проверке по запросу:
https://people.cs.umass.edu/~rjust/publ/industrial_mutation_icst_2018.pdf
Вот цитата из газеты:
Разработчики решили перепроектировать большие куски кода, чтобы сделать их тестируемыми, чтобы мутант мог быть убит, они нашли ошибки в сложных логических выражениях, глядя на мутантов, они решили удалить код с эквивалентным мутантом, потому что посчитали его преждевременной оптимизацией. Они утверждали, что мутант сэкономил им часы отладки и даже простоев в работе, потому что ни один тестовый пример не покрывал должную логику при мутации. Мутационное тестирование было названо одним из лучших улучшений в проверке проверки кода за последние годы. Хотя эта обратная связь вряд ли поддается количественной оценке, в сочетании с огромным количеством тысяч разработчиков, желающих осматривать мутантов, обнаружившихся на поверхности, об их изменениях в коде, делается заявление.
Полезность юнит-тестов больше не обсуждается.
Они имеют важное значение в концепции качественного применения. Но как мы можем оценить их актуальность?
Индикатор покрытия кода до 100% не означает, что код проверен на 100%. Это просто представление исполняемого кода во время выполнения модульных тестов.
Эта техника позволит вам быть более уверенными в своих тестах.
Это двухэтапный процесс: сначала поколение мутантов, а затем кровопролитие. WTF?
Можно, но с небольшим усилием. Пожалуйста, проверьте это,
http://abeletsky.blogspot.com/2010/07/using-of-mutation-testing-in-real.html