Как я могу выполнить мутационное тестирование моей Java-программы? - PullRequest
6 голосов
/ 27 июня 2011

Может ли кто-нибудь дать рекомендации по инструментам, которые можно использовать для создания мутаций в Java-программе на уровне исходного кода (не байт-кода)? Мне нужно заполнить мой исходный код ошибками. Я бы предпочел приложение с графическим интерфейсом, если оно существует.

Ответы [ 7 ]

4 голосов
/ 27 июня 2011

Я нашел инструмент PIT Mutation Testing, который мне очень нравится. С MuJava у меня есть исключения, вызванные аннотациями @Override. Похоже, он не поддерживает Java 5 / 6.

3 голосов
/ 28 июня 2011

Если ваше требование действительно для мутации исходного кода, тогда я знаю следующие варианты:

Jester - Предоставляет ограниченное количество мутационных операторов, которые достаточно нестабильны. Джефф Оффатт описал это как очень дорогой способ применения отраслевого тестирования. Однако я считаю, что можно определить свои собственные операторы, так что это, вероятно, не совсем справедливо.

Mu Java - не поддерживает Java 5

Джуди - Не знаю много об этом, кроме того, что он существует

Lava - Звучит довольно просто, и я не думаю, что он поддерживает Java 5

Из ответа ниже я вижу, что вы сейчас используете PIT. Я думаю, что это действительно отличный выбор (я написал его, поэтому, возможно, с некоторым смещением), но это система мутаций байт-кода.

3 голосов
/ 27 июня 2011

Это метод, используемый инструментом покрытия с открытым исходным кодом Jester . Изучение его источника может быть полезным, если вы не можете найти подходящий инструмент и хотите создать его самостоятельно.

3 голосов
/ 27 июня 2011

Когда я проходил урок по разработке программного обеспечения на тестировании в GMU, мы использовали Mu Java для одной из глав. НТН

2 голосов
/ 12 декабря 2013

"Это имеет небольшое применение в реальном мире". Сильно не согласен, я заключаю контракт с очень крупной медийной компанией в Великобритании, и PIT (http://pitest.org/) чрезвычайно полезен для тестирования на мутации. Большинство сборок CI настроены на неудачу без 85% -ного охвата тестированием на мутацию PIT. Re: «замена некоторых случайных символов ...» Мутация не должна означать это. Мутации PIT ограничены компилируемыми изменениями.

1 голос
/ 18 июня 2014

Структура основных мутаций ( веб-сайт Major * ) предоставляет интегрированный компилятором мутатор и анализатор мутаций для тестов JUnit.

Мутатор Major'а интегрирован в компилятор Java 7.Он предоставляет несколько операторов мутации и поддерживает две опции для изменения исходного кода:

  1. Создание и вставка всех мутантов во время компиляции
  2. Создание мутантов и экспорт мутированных исходных файлов
1 голос
/ 10 марта 2012

Вот эталонный тест:

MμClipse поддерживает только JUnit 3 и больше не поддерживается.Шут, что касается этого, трудоемок и требует сложной конфигурации;плюс больше не поддерживается.Лучший инструмент, который я смог найти, это Javalanche Я написал целую статью об этом!

...