RUS  ENG
Полная версия
ЖУРНАЛЫ // Труды института системного программирования РАН // Архив

Труды ИСП РАН, 2020, том 32, выпуск 2, страницы 161–173 (Mi tisp506)

Платформа автоматического фаззинга программного интерфейса приложений

С. С. Саргсянa, В. Г. Варданянa, Д. А. Акопянa, А. М. Агабалянa, М. С. Меграбянa, Ш. Ф. Курмангалеевb, А. Ю. Герасимовb, М. К. Ермаковb, С. П. Вартановb

a Российско-Армянский университет
b Институт системного программирования им. В.П. Иванникова РАН

Аннотация: Рандомизированное тестирование приложений (фаззинг, фаззинг-тестирование) является одним из широко используемых методов поиска ошибок. Цель фаззинг-тестирования – определить стабильность приложений при обработке псевдослучайно сгенерированных входных данных. В ходе тестирования приложение запускается на множестве произвольных входных данных, которые могут быть недействительными/неожиданными. Современное программное обеспечение часто предоставляет программный интерфейс (Application programming interface) для расширения возможностей программы. Это еще больше усложняет тестирование программного обеспечения, поскольку становится необходимым учитывать все возможные сценарии использования предоставленных интерфейсных функций. Применение фаззинга для генерации разных сценариев использования программного интерфейса приложения и соответствующих входных данных позволяет эффективным образом выявить ошибки в реализации функций программного интерфейса. В данной статье описывается новый метод фаззинг-тестирования для Android приложений и библиотек, написанных на языке Java. Разработанный инструмент фаззинг-тестирования выявил 15 уникальных дефектов, приводящих к аварийному завершению приложения SmartThings, разработанного компанией Samsung.

Ключевые слова: интернет вещей, фаззинг, генерация вызовов API.

DOI: 10.15514/ISPRAS-2020-32(2)-13



© МИАН, 2024