Новости
Статический анализатор для распознавания массивов в С-программах для задач фаззинга
Аннотация
В экосистеме тестирования ПО сетевых устройств крупной телекоммуникационной компании активно применяется фаззинг – подход к тестированию, где на вход тестируемой программе подаются случайные, неожиданные или некорректные входные данные. В связи с отсутствием в языке C динамических массивов как таковых для задач фаззинга C-функций оказывается полезной информация о массивах, которые принимаются на вход функциями. В данной работе предлагается специальный вид статического анализа для автоматического распознавания массивов, с которыми работают C-функции, а также определения их длины (аппроксимации). На основе предложенного метода был реализован предметно-ориентированный инструмент, нацеленный на конкретную кодовую базу компании, который при приемлемой производительности смог достичь значений метрик точности 79% и полноты 98% в распознавании массивов, при этом длина массива была правильно определена в 69% случаях. Интеграция нашего инструмента в экосистему тестирования компании позволила значительно улучшить качество фаззинга, увеличив метрику покрытия кодовой базы на 10%, а количество найденных ошибок – на 40%.
Ключевые слова
Издание
Труды Института системного программирования РАН, том 38, вып. 3, часть 2, 2026, стр. 33-48.
ISSN 2220-6426 (Online), ISSN 2079-8156 (Print).
DOI: 10.15514/ISPRAS-2026-38(3)-20
Для цитирования
Полный текст статьи в формате pdf
Вернуться к содержанию тома