Генерация тестовых примеров для автоматического злоупотребления грамматикой BNF

Мне интересно, есть ли инструмент или методика, которые, учитывая грамматику BNF, регулируют ее случайным образом (но разумно) и генерируют поток вывода для использования при обнаружении случаев, которые проскальзывают мимо BNF (но не следует т).

изменить: другими словами, Fuzz-тестирование парсера.

Спасибо


person Paul Nathan    schedule 23.04.2010    source источник


Ответы (2)


Поработав некоторое время с Google, я обнаружил, что автоматическое тестирование на основе грамматики нечеткое замыкание сложно и является предметом текущих исследований. В частности, П. Годфроид из Microsoft Research работает над программным обеспечением под названием SAGE.

Я откопал его исследовательскую работу.

Автоматизированное тестирование нечеткости белого ящика ( совместная работа с Майклом Левиным и Дэвидом Мольнаром) Proceedings of NDSS'2008 (Network and Distributed Systems Security), страницы 151–166, Сан-Диего, февраль 2008 г.

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

Итак, я пришел к следующему выводу: «Это предмет текущего (апрель 2010 г.) исследования, и на данный момент нет инструмента для быстрого использования».

person Paul Nathan    schedule 24.04.2010

Не совсем инструмент фаззинга BNF, но американский fuzzy lop использует методы искусственного интеллекта и может обойти отсутствие BNF знания неплохие. Он уже обнаружил ошибки во многих синтаксических анализаторах с открытым исходным кодом, так что он может быть подходящим инструментом и для вас.

person d33tah    schedule 13.10.2015