Какие существуют системы тестирования мутаций?

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

  • Я программирую на Java, поэтому предпочитаю Java-инструменты, но рискну взглянуть на интересные фреймворки для разных языков.
  • Я хочу интегрироваться в процесс автоматической сборки, поэтому предпочитаю инструменты, которые можно запускать из командной строки.

Разъяснение преимуществ МП: pedrorijo.com/blog/intro-mutation

pedrorijo91 15.02.2019 12:28
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
32
1
7 218
11

Ответы 11

Я знаю только два фреймворка, но оба они для Java :)

Боюсь, я не использовал ни один из них.

Ссылка на Jester имеет дополнительный p://.

Andrew Grimm 07.06.2010 17:49

Вы можете попробовать µJava. Я не использовал его, но похоже, что тестирование на мутации может быть интересным способом оценки наборов тестов.

Для Ruby есть Heckle, а для новичка - Boo_hiss.

<Spam> Отъезд чейзер. Это новая прелесть Ruby. </Spam>

Andrew Grimm 14.11.2009 06:52

<Спам> И зомби-охотник. Мутационное тестирование ... с зомби! </Spam>

Andrew Grimm 06.05.2010 08:03

Для сообщества .Net существует NesTer, но он имеет некоторые серьезные ограничения. Например. поддерживает только C# и NUnit.

Похоже, что он тоже не поддерживается активно, но может быть отправной точкой.

Работает только для решений, разработанных в Visual Studio 2005

Razvan Dumitru 13.05.2016 13:19

Я взглянул на Jester (фактический исходный код), и мне кажется, что он не поддерживает слишком много мутаций. Там есть файл, в котором указаны эти мутации. Возможно, я ошибаюсь насчет вышеизложенного, но что мне определенно не понравилось, так это сочетание запуска инструмента из командной строки и небольшого интерфейса обратной связи с графическим интерфейсом пользователя. Почему бы не дать обратную связь в командной строке, как это делает JUnit при запуске вне среды IDE?

Ерунда - другое дело :). Он имеет простой интерфейс командной строки и поставляется с плагином Eclipse. Отзывы - это весь текст в консоли. Я доволен этим инструментом, и я планирую написать некоторую цель ANT, чтобы добавить ее в непрерывную интеграцию моего проекта.

Я тоже смотрю на Javalanche, но еще не пробовал.

У меня будут новости через несколько недель.

Jester предоставляет файл для мутаций, и они ограничены. В некоторой степени вы можете добавлять в файл свои собственные мутации.

Я экспериментировал с Jumble и Jester и обнаружил, что Jumble предоставляет больше мутаций и лучшую документацию. Кроме того, я получил быстрые ответы от владельцев проектов, когда отправил им электронное письмо. Одним из недостатков Jumble является то, что он работает с байт-кодом, используя BCEL. Это представляет собой некоторую кривую обучения для многих разработчиков.

Моя компания, State Farm, написала задачу Ant, которую мы можем внести в проект Jumble. Судя по тому, что я прочитал в их списках рассылки, другие тоже работают над задачей Ant для Jumble.

Я тоже смотрю на Javalanche. Я буду рад поделиться своими знаниями, когда закончу.

Существует также ЯМА, который можно подключить к вашей сборке через плагин maven или интерфейс командной строки.

Он предоставляет гораздо более качественные отчеты, чем другие доступные инструменты, с комбинированным охватом мутации и линии. Кроме того, он работает значительно быстрее, чем инструменты Java на основе исходного кода, такие как Jester, и примерно в два раза быстрее, чем Jumble.

В отличие от Jumble и Javalanche, он также работает со всеми основными фреймворками для фиксации (Mockito, JMock, EasyMock, PowerMock и JMockit).

(раскрытие я автор).

Могу ли я сохранить мутанты, созданные PIT, в желаемую папку? так что можно использовать другими программами?

Milson 16.01.2015 01:15

@Milson ничего не встроено, но если вы проверите историю группы Google, вы найдете сообщения, описывающие, как подключиться к фреймворку и записать их на диск

henry 16.01.2015 12:48

CREAM - это инструмент для C# /. Net http://galera.ii.pw.edu.pl/~adr/CREAM/index.php

Этот инструмент выглядит очень хорошо и поддерживает .NET 4.0 и т. д. Спасибо +1

GurdeepS 07.09.2011 03:28

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

Я знаю, что это старая ветка, но это все еще ответ на вопрос. Я работаю с некоторыми друзьями над фреймворком для тестирования мутаций .NET с открытым исходным кодом под названием NinjaTurtles, который вы можете найти на CodePlex и на Nuget. Главный сайт проекта - здесь.

Я пробовал NinjaTurtles, но он плохо документирован, и я не могу понять, что не так или что именно я делаю не так ... Так что я скорее попробовал CREAM, и он отлично работает.

DaMachk 14.01.2014 16:07

Он все еще в разработке, готов помочь.

Yu Zhang 15.02.2018 05:16

Может быть интересно. Исследования Microsoft: https://pex4fun.com/

@urig спасибо за выделение, URL обновлен.

bytedev 25.01.2018 15:13

Спасибо за новый URL @nashwan. Я удалил свой комментарий, чтобы не вводить в заблуждение будущих читателей.

urig 25.01.2018 17:29

Другие вопросы по теме