SynTESK (Syntax Testing Kit), инструмент для тестирования синтаксических анализаторов (парсеров) формальных языков. SynTESK позволяет проверять соответствие реализации парсера и спецификации данного формального языка, т.е. что парсер распознает именно данный формальный язык.
В настоящее время существует много надежных систем автоматизированной генерации парсеров. Однако сложность реальных языков такова, что даже при использовании систем автоматизированной генерации разработка парсеров требует дополнительно написания ручного кода, в основном для разрешения конфликтов при синтаксическом разборе так называемые look-ahead процедуры.
SynTESK реализует технологию UniTESK автоматизированного тестирования, основанную на использовании спецификаций и моделей целевой системы.
При использовании инструмента SynTESK тесты строятся полностью автоматически на основе описания грамматики в виде BNF (форма Бэкуса-Наура). Для данного описания грамматики формального языка SynTESK позволяет получить тесты следующих видов:
- предложения, принадлежащие целевому языку;
- предложения, не принадлежащие целевому языку.
Это позволяет проверять как то, что тестируемый парсер принимает корректные предложения целевого языка, так и то, что парсер отвергает некорректные предложения.
Инструмент SynTESK позволяет получать эффективные относительно небольшие множества тестов.
SynTESK легко использовать для тестирования как вновь разрабатываемого программного обеспечения, так и уже существующих систем. |