WedX - журнал о программировании и компьютерных науках

Какие существуют рамки тестирования мутаций для C / C ++?

Тестирование мутаций существует уже некоторое время, и кажется, что по крайней мере, одна или две коммерческие среды тестирования мутаций для C / C ++. Вы ими пользовались? Какой у вас опыт? Есть ли альтернативы с открытым исходным кодом?


  • Хороший вопрос, так как я не знал о мутационном тестировании. Отличная идея ^^ 17.01.2011
  • См. stackoverflow.com/questions/246495/ 17.01.2011

Ответы:


1

Краткий поиск привел к:

С учетом сказанного, вы должны понимать, что тестирование мутаций не особенно полезно (по крайней мере, из некоторых материалов, которые я ранее читал). Это интересный инструмент, когда вы сталкиваетесь с жесткими (образно говоря) утверждениями и для того, чтобы убедиться, что требования к данным соблюдены (при работе с if and only if ситуациями).

На мой взгляд, существует гораздо более устоявшиеся способы анализа устойчивости кода.

19.01.2011
  • То, что Parasoft (Insure ++) называет мутационным тестированием, не очень похоже на то, что все остальные называют мутационным тестированием. Они революционизировали это до неузнаваемости. parasoft.com/jsp/products/article.jsp?articleId=291 < / а> 20.01.2011
  • @Jason: это кажется интересным, но идея все та же ... возьмите код, измените некоторые операторы (сделав их ошибочными или эквивалентными) и посмотрите, работает ли что-то. Обнаружение двусмысленности в коде иногда полезно, но, честно говоря, вы можете написать свой собственный инструмент для тестирования мутаций (это несложно) и сэкономить немного денег. 20.01.2011
  • Это первый результат, который появляется в Google, поэтому я подумал, что все еще может быть уместным указать, что ссылка MILU ведет к 404. 16.01.2018
  • Я действительно думаю, что тестирование мутации операторов не особенно полезно, его следует либо квалифицировать, либо полностью исключить из ответа. 19.12.2020
  • Популярные инструменты для Java найти несложно. Почему сложно найти популярные инструменты для C ++? На самом деле я люблю C ++ (я тоже люблю Java) и хочу серьезно заняться разработкой на C ++, и я ищу инструменты, которые могут помочь мне написать код хорошего качества. У нас есть такие инструменты, как Eclemma, Pitest, SonarLint, JProfiler, VisualVM и т. Д. Для Java. Может ли кто-нибудь дать такие популярные и проверенные инструменты для C ++, пожалуйста? Мне нужен совет специалиста. 25.03.2021

  • 2

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

    Я попробовал еще один интересный инструмент, который может автоматически обнаруживать инварианты в инструментированном коде C и C ++ - он называется «Daikon». По сути, он делает то же самое, что и инструмент, который генерирует эквивалентные мутации, но вместо выявления проблемного кода он дает вам набор инвариантов, таких как «A == B + 1». Я думаю, что инварианты более полезны, потому что, когда вы смотрите на обнаруженный инвариант, он дает вам уверенность в том, что ваш код правильный, если инвариант имеет смысл, а затем вы можете преобразовывать инварианты в утверждения, и это дает вам больше уверенности при изменении кода.

    23.01.2011

    3

    Прямой сценарий python для изменения программ c доступен по адресу:

    https://github.com/parunbabu/mutate.py

    автор говорит, что лучше работает, если тестируемый код декомментирован и имеет отступ.

    и это также бесплатно и с открытым исходным кодом ... я думаю, это то, что вы ищете.

    01.07.2012

    4
    • Mull основан на LLVM и, кажется, активно развивается и прост в использовании.
    • dextool mutate также активно и на основе LLVM разработан, более сложен в использовании, но имеет больше функций, таких как повторный запуск живых мутантов и только изменение внесенных изменений на основе git diff
    15.03.2020

    5

    У меня нет опыта с этим, но Mutate ++ кажется вариантом, которого нет в уже упомянутых.

    Mutate ++ - среда тестирования мутаций C ++

    07.05.2020

    6

    Существующие фреймворки требовали слишком много времени для настройки и использования, поэтому я сделал свою собственную реализацию - быстрое и простое решение, которое должно работать на любой машине. Доступны бинарные файлы для MacOSX, Windows и RaspberryPi (Linux):

    https://github.com/RagnarDa/dumbmutate

    Надеюсь, это поможет кому-нибудь!

    05.03.2019
    Новые материалы

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

    ИИ в аэрокосмической отрасли
    Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


    Для любых предложений по сайту: [email protected]