Добавить в корзинуПозвонить
Найти в Дзене

РБПО-016. Термин: динамический анализ кода программы (часть 1/3)

Вид работ по инструментальному исследованию программы, основанный на анализе кода программы в режиме непосредственного исполнения (функционирования) кода. (ГОСТ Р 56939-2024, п. 3.2) Про использование динамического анализа мы ещё будем говорить подробнее, когда дойдём до соответствующего процесса. Пока общая информация и ссылки на дополнительные ресурсы. Динамический анализ кода — это способ анализа программы непосредственно при её выполнении. Процесс динамического анализа можно разбить на несколько этапов: подготовка исходных данных, проведение тестового запуска программы и сбор необходимых параметров, анализ полученных данных. При тестовом запуске исполнение программы может выполняться как на реальном, так и на виртуальном процессоре. Для этого из исходного кода в обязательном порядке должен быть получен исполняемый файл. Нельзя таким способом проанализировать код, содержащий ошибки компиляции или сборки. Программы для динамического анализа различаются по способу взаимодействия с про
Вид работ по инструментальному исследованию программы, основанный на анализе кода программы в режиме непосредственного исполнения (функционирования) кода. (ГОСТ Р 56939-2024, п. 3.2)

Про использование динамического анализа мы ещё будем говорить подробнее, когда дойдём до соответствующего процесса. Пока общая информация и ссылки на дополнительные ресурсы.

Динамический анализ кода — это способ анализа программы непосредственно при её выполнении. Процесс динамического анализа можно разбить на несколько этапов: подготовка исходных данных, проведение тестового запуска программы и сбор необходимых параметров, анализ полученных данных. При тестовом запуске исполнение программы может выполняться как на реальном, так и на виртуальном процессоре. Для этого из исходного кода в обязательном порядке должен быть получен исполняемый файл. Нельзя таким способом проанализировать код, содержащий ошибки компиляции или сборки.

Программы для динамического анализа различаются по способу взаимодействия с проверяемой программой:

  • инструментирование исходного кода. В исходный текст приложения до начала компиляции добавляется специальный код для обнаружения ошибок;
  • инструментирование объектного кода. Код добавляется непосредственно в исполняемый файл;
  • инструментирование кода на этапе компиляции. Проверочный код добавляется с использованием специальных ключей компилятора;
  • не изменяет исходную программу, используются специализированные библиотеки этапа исполнения. Для обнаружения ошибок используются специальные отладочные версии системных библиотек.

Динамический анализ выполняется с помощью набора данных, которые подаются на вход исследуемой программе. Поэтому эффективность анализа напрямую зависит от качества и количества входных данных для тестирования. Именно от них зависит полнота покрытия кода, которая будет получена по результатам тестирования.