Инструмент / Техника для автоматического создания модульных испытаний на основе метода до / после условия

Интересно, есть ли какой-либо инструмент, который автоматически генерирует модульные тесты на основе предварительных и постусловий метода (и инварианта класса).

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

Я знаю Корат и TestWizard. Не могли бы вы назвать еще несколько методов / инструментов?

PS: Язык программирования или язык, на котором мы указываем методы контрактов, не так важен. Я просто хочу знать о методах.

Спасибо.

2 ответа

Рэндоп делает это. В его руководстве рассказывается, как указать предварительные и последующие условия.

В комментарии вы сделали различие между "генерацией" и "направлением"; Я не уверен, что именно вы подразумеваете под этим, но вы можете считать, что Randoop использует спецификации для руководства.

Одна из исследовательских работ в этой области была проведена в ETH в 2005-2011 гг. С целью создания "Контрактного инструмента случайного тестирования", известного как AutoTest. Он был разработан для Eiffel, где предусловия, постусловия и классовые инварианты являются частью языка. Инструмент использует их в качестве спецификации для автоматической генерации тестов. Инструмент был интегрирован со средой разработки EiffelStudio, где он использует контракты на 3 вида тестов:

  • руководство - хороший "олдскульный" подход путем написания тестов разработчиками;
  • извлечено - как только происходит нарушение договора, инструмент может генерировать соответствующий контрольный пример;
  • сгенерированный - инструмент автоматически синтезирует новые тесты, проверяя, выполняются ли предварительные условия и инварианты классов при входе в подпрограмму, и проверяя, нет ли ошибок при возврате, в частности, что нет постусловий или нарушений инвариантов классов.
Другие вопросы по тегам