Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

Ответ 3

Прямой прямой python script для мутирующих программ c доступен по адресу:

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

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

и он также бесплатный и openource... Я думаю, что это то, что вы ищете.