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

Труды ИСП РАН, 2017, том 29, выпуск 1, страницы 135–148 (Mi tisp105)

Прикладное применение динамического анализа программ, исполняющихся в интерпретирующих средах

С. П. Вартанов, М. К. Ермаков, А. Ю. Герасимов

Институт системного программирования РАН

Аннотация: Сложность современного программного обеспечения постоянно растет, в связи с чем возникает потребность в автоматических инструментах выявления ошибок в разработанных программах. В рамках данной статьи мы представляем решение некоторых задач, возникающих в процессе разработки программного обеспечения. Профилирование работы программ с динамической оперативной памятью, символьное исполнение программ с графическим пользовательским интерфейсом, обнаружение ошибок в параллельных программах - небольшой, но крайне важный класс задач, решение которых востребовано индустрией разработки программного обеспечения. В связи с отсутствием в виртуальной машине Dalvik операционной системы Android стандартных средств подключения агентов, на базе которых возможно проведение динамической инструментации байт-кода, в статье рассмотрен подход к профилированию использования динамической памяти Java-программами при помощи инструмента, реализованного как модифицированная виртуальная машина Dalvik операционной системы Android. Показана обоснованность примененного подхода, приведены практические результаты анализа нескольких программ из комплекта поставки операционной системы Android. Также в статье описано решение задачи динамического символьного исполнения программ с графическим пользовательским интерфейсом с целью генерации минимальных последовательностей управляющих воздействий на пользовательский интерфейс, обеспечивающих тестовое покрытие программы на базе статической инструментации байт-кода Java-программ и модификации инструмента генерации тестовых наборов для приложений с графическим пользовательским интерфейсом GUITAR. В завершении статьи рассматривается применение особенности реализации инструмента обнаружения ошибок синхронизации параллельных программ на языке Java, исполняемых виртуальной машиной Dalvik операционной системы Android на базе статической инструментации байт-кода Java-программ и применения инструмента ThreadSanitizer.

Ключевые слова: динамический анализ программ, анализ программ.

DOI: 10.15514/ISPRAS-2017-29(1)-9



Реферативные базы данных:


© МИАН, 2024