МЕТОД СЕМАНТИКО-ОРИЕНТИРОВАННОГО ФОРМИРОВАНИЯ ТЕСТОВЫХ ДАННЫХ ДЛЯ МУТАЦИОННОГО ТЕСТИРОВАНИЯ СИНТАКСИЧЕСКИХ АНАЛИЗАТОРОВ СТРУКТУРИРОВАННЫХ ФОРМАТОВ
Скачать PDF
Аннотация: В статье рассматривается семантико-ориентированный метод формирования целевого набора тестовых данных для мутационного тестирования (фаззинг-тестирования) синтаксических анализаторов (парсеров) структурированных форматов. Под мутационным тестированием понимается автоматизированная генерация и систематическая модификация входных данных с целью провоцирования сбоев (отказов) и выявления дефектов в тестируемой программе. Синтаксический анализатор (парсер) рассматривается как компонент, выполняющий разбор входной последовательности по правилам формальной грамматики и построение структурированного представления входа. Подход основан на формальном представлении анализируемой программы в виде аннотированного графа потока управления, где каждому условному оператору сопоставляется логический предикат. Эти предикаты решаются средствами SAT/SMT-решателей, что позволяет формировать входные данные, направленные на редко достигаемые ветвления программы. Такой механизм повышает вероятность выявления ошибок, связанных с граничными условиями, глубокой вложенностью и сложными логическими зависимостями. В систему метода включена количественная оценка покрытия ветвлений и остаточного риска по методу Гуда–Тьюринга, обеспечивающая формализованный критерий завершённости тестовой кампании. Практическая применимость подхода продемонстрирована на ряде парсеров (cJSON, RapidJSON, tinyxml2, yaml-cpp) при использовании инструментального средства American Fuzzy Lop++ (AFL++). При идентичных условиях компиляции и параметрах инструментирования зафиксировано устойчивое увеличение доли покрытых ветвлений и числа уникальных переходов на 8–10 % по сравнению с базовой конфигурацией, а также ускорение достижения редких ветвлений. Для дополнительных программ, обрабатывающих структурированные данные, прирост составил около 11–13 %, что подтверждает переносимость метода. Учитывались вариации запусков, влияние сложности входов и ограничения решателей, что повышает достоверность выводов. Показано, что оценка остаточного риска количественно описывает вероятность выявления новых ветвлений на поздних этапах тестирования. В заключение обосновано, что включение семантической информации о структуре программы при формировании набора тестов повышает эффективность фаззинг-тестирования и рекомендуется для парсеров глубоко вложенных и грамматически насыщенных форматов.
Ключевые слова: фаззинг-тестирование, граф потока управления (CFG), SAT/SMT-решатель, покрытие кода, остаточный риск, семантический стартовый корпус, парсеры структурированных форматов.
Номера страниц: 58-69.
Для цитирования: Семенов С.А. Метод семантико-ориентированного формирования тестовых данных для мутационного тестирования синтаксических анализаторов структурированных форматов // Электронный научный журнал «ИТ-Стандарт». – 2025. – № 4. – С. 58-69.