Я поиграл с питстом для небольшого, надуманного приложения:
http://pitest.org/
Это инструмент Java, который автоматизирует генерацию мутантов. Вы можете запустить его в своем тестовом наборе, и он сгенерирует для вас отчеты HTML с указанием количества убитых мутантов. Выглядело довольно эффективно и не требовало особых усилий для настройки. На самом деле в мире Java довольно много хороших инструментов для такого рода вещей. Смотри также:
http://www.eclemma.org/
Для покрытия.
Я думаю, что концепции, лежащие в основе тестирования мутаций, являются обоснованными. Это просто вопрос поддержки инструмента и осведомленности. Вы боретесь с компромиссом между простотой традиционных метрик покрытия кода и дополнительной сложностью этого метода - на самом деле все сводится к инструментам. Если вы можете генерировать мутантов, то поможет выявить слабые стороны в ваших тестовых случаях. Стоит ли незначительное увеличение усилий по сравнению с тестированием, которое вы уже проводите? В случае с pitest я обнаружил, что тестовые наборы оказались неочевидными.
Мутационное тестирование - это угол атаки, который сильно отличается от методологий модульного / функционального / интеграционного тестирования.
- Вы тестируете свой набор тестов - это мета-тест всей вашей программы тестирования.
- Это вдохновляет на дополнительные тестовые случаи, которые вы не могли бы рассмотреть иначе.