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

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

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

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

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

Спасибо.

Ответы [ 2 ]

0 голосов
/ 03 февраля 2019

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...