Формирование структуры байесовской сети процесса тестирования надежности информационных систем

УДК 519.86

ФОРМИРОВАНИЕ СТРУКТУРЫ БАЙЕСОВСКОЙ СЕТИ ПРОЦЕССА ТЕСТИРОВАНИЯ НАДЕЖНОСТИ ИНФОРМАЦИОННЫХ СИСТЕМ

© 2017 Т.В. Азарнова, Н.Г. Аснина, Д.К. Проскурин, П.В. Полухин

В статье изложены результаты исследования, направленного на разработку адаптивной модели управления процессом тестирования надежности и отказоустойчивости информационных систем, основными компонентами которых являются веб-приложения. Модель управления процессом тестирования строится на основе применения инструментов фаззинга и аппарата динамических байесовских сетей. Все этапы процесса тестирования веб-приложений методом фаззинга формализуются в виде задач обучения структуры, параметров и реализации вероятностного вывода для динамических байесовских сетей. В данной статье основное внимание сосредоточено на вопросах обучения структуры динамических байесовских сетей. Структура байсовской сети может определяться на основе причинной модели исследуемой проблемной области, которая строится в соответствии с представлением экспертов, имеющих большой опыт в области тестирования рассматриваемых уязвимостей приложений. Но более эффективные результаты могут быть достигнуты за счет использования специальных алгоритмов обучения структуры сети на основании статистических данных, этот метод способен гибко настраиваться на структурные изменения во внешней среде моделируемого процесса. Применяемый в работе алгоритм обучения базируется на предположении о Марковском покрытии и методологии поиска на основе принципа восхождения

Ключевые слова: байесовская сеть, тестирование, надежность информационной системы, обучение структуры, Марковское покрытие, метод восхождения

Введение

Процесс тестирования отказоустойчивости и надежности программных компонент информационных систем представляет собой сложный недетерминированный процесс [1, 4]. Этапы тестирования включают анализ приложений от момента генерации данных до определения модуля, фрагмента кода или параметров, не прошедших верификацию. На каждом этапе присутствует неопределенность и дальнейшая стратегия и тактика тестирования зависит от результатов текущего этапа. Сложность декомпозиции подпроцессов тестирования приводит к повышению вероятности ложных срабатываний. Не имеющая механизмов ситуационной адаптации тестовая система становится статичной и не может точно диагностировать первопричину сбоя или ошибки внутри приложения, а реализованные в ней функциональные алгоритмы не могут подстроиться к условиям и особенностям возникновения новых ошибок. С позиции системного подхода для достижения требуемых результатов тестирования и определенной степени их достоверности необходима некоторая двунаправленная связь между элементами

Азарнова Татьяна Васильевна - ВГУ, д-р техн. наук, профессор, e-mail: ivdas92@mail.ru Аснина Наталия Георгиевна - ВГТУ, канд. техн. наук, доцент, e-mail: andrey050569@yandex.ru Проскурин Дмитрий Константинович - ВГТУ, канд. физ.-мат. наук, доцент, e-mail: pdk@vgasu.vrn.ru Полухин Павел Валерьевич - ВГУ, канд. техн. наук, докторант, e-mail: alfa_force@mail.ru

процесса тестирования с целью управления тестовой последовательностью.

Эффективным методом организации двунаправленной связи является функциональное моделирование процессов тестирования, на вход каждого подпроцесса тестирования, и механизмы самого тестирования, и механизмы управления и взаимодействия между подпроцессами и управляющей системой. Для организации процесса тестирования веб-приложений необходимы инструменты функционального моделирования, способные отражать стохастический характер подпроцесоов. Анализ различных методов моделирования, удовлетворяющих данным требованиям, показывает, что одним из эффективных апробированных комплексных методов моделирования сложных стохастических процессов и реализации нестандартных эмпирических направлений анализа являются динамические байесовские сети. В качестве узлов байесовской сети могут выступать два типа модулей. Первый тип предназначен для случайной генерации тестов, второй для анализа результатов данных тестов [4]. Сочетание данных модулей позволяет дать оценку, насколько эффективен тот или иной набор тестовых данных для оценки надежности определенного приложения. Применительно к процессам тестирования использование математического аппарата байесовских сетей позволяет определить связи между структурными компонентами тестирования с помощью механизмов обучения, а применение байесовских оценок на основе вероятностного вывода реализует эффективные численные методы, позволяющие

оценить динамику трансформации ошибок в течение некоторого временного интервала. Это позволяет отслеживать состояние жизнеспособности информационной системы, в состав которой входит тестируемое приложение.

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

Построение Байесовской сети процесса тестирования веб-приложений

Построение сложных инструментов тестирования, адаптированных к постоянным изменениям как самой среды тестирования, так и условий возникновения программных ошибок, является достаточно сложной процедурой. Это требует детального описания алгоритмов выполнения каждого шага тестирования определенной группы программных ошибок и выявления связей между взаимодействующими структурными подпроцессами. Процесс тестирования принято декомпозировать на три основных подпроцесса: порождение тестовых сценариев, выполнение набора тестов, мониторинг событий (исключения и ошибки). Однако, ограничиваясь только этими компонентами, сложно эффективно управлять процессом тестирования. Процесс имеет многомодульную архитектуру, а детектирование программных ошибок требует определения связей на основе экспериментальных данных. Для понимания генезиса возникновения программных ошибок и определения того, какие модули должны осуществлять взаимодействие, необходимо системное моделирование данных процессов. Моделирование процессов тестирования является перспективным направлением развития механизмов анализа программных продуктов, способных устанавливать взаимосвязи между отдельными структурными компонентами процесса тестирования, определять дальнейшее развитие программно-инструментальной среды тестирования. От эффективности применяемых методов моделирования и соответствующих им численных методов обработки данных напрямую зависит достоверность результатов тестирования и возможность прогнозирования тенденций изменения надежности и отказоустойчивости информационной системы в соответствии с изменениями во внешней инфраструктуре. Байесовские сети предоставляют достаточно мощные функциональные возмож-

ности по моделированию структуры стохастических процессов и алгоритмы численных методов анализа ретроспективного, текущего периода и прогнозирования вероятностей обнаружения новых уязвимостей на основании свидетельств в данном и ретроспективном периодах [2].

Байесовская сеть представляет собой направленный граф без циклов [6], узлы (вершины) которой моделируются как случайные переменные X, I = 1,..,п с доменами значений Вп, I 6 Ип. Дуги, ведущие от вершины X к вершине У, означают что X 6 РагепЬз(У), т.е. X является родительской вершиной для У. Вершинам X ^ ставится в соответствие условное распределение вероятностей Р (Х^РагеШз^Х^)). Полное совместное распределение вероятностей для байесовской сети имеет следующий вид

п

Р(Х1,Х2, ... ,Хп) = ПР^РагепгзОХд).

1=1

При проведении исследований узлы сети, как правило, представляются в виде совокупности трех множеств X = {Х1 ,Х2,. -,Хт} - множество скрытых переменных, У = { У1 ,У 2,.  -,Ур] - множество переменных наблюдения, {Е 1,Е 2, . -,Ек} - множество переменных свидетельства.

Для построения структуры байесовской сети на практике применяется два подхода [5]. Первый подход (причинная модель) подразумевает определение структуры сети на основе экспертных знаний. Применительно к моделированию с помощью динамических байесовских сетей процесса тестирования такой подход означает, что и узлы процесса тестирования и порядок их взаимодействия определяются экспертами, исходя из их опыта в области проведения тестирования приложений. Данный подход обладает рядом преимуществ и недостатков. К преимуществам можно отнести прозрачность топологии сети, отсутствие переобучения сети, взаимодействие модулей имеет четкую иерархическую структуру, исключающую коллизии и нарушение порядка выполнения модулей. К недостаткам относится отсутствие возможности динамического изменения структуры сети. Второй подход основывается на использовании алгоритмов обучения структуры сети на базе алгоритмов «жадного поиска». Данный подход хорошо адаптируется к изменению среды тестирования и динамике появления программных ошибок на протяжении некоторого временного отрезка жизненного цикла приложений.

В рамках построения структуры байесовской сети процесса тестирования в работе рассматривается применение гибридного алгоритма

обучения на основе метода восхождения [2, 3]. Алгоритм восхождения создает модель, делая на каждом шаге максимально возможное усовершенствование целевой функции оценки качества. Структура байесовской сети инициализируется случайным образом, последовательно анализируются оценки соответствия структуры связей при различных изменениях состава дуг сети и выбирается вариант, дающий максимальное значение функции, оценивающей соответствие. Данный процесс продолжается до тех пор, пока изменение дуг сети, больше не приводит к увеличению оценки. Алгоритм может привести к задержке в зоне локального максимума, для преодоления данного ограничения, при определении структуры байесовской сети управления процессом тестирования информационных систем в работе предлагается использовать гибридный алгоритм минимаксного восхождения (max-min hill climbing). Стратегия данного алгоритма основывается на синтезе двух алгоритмов. Первый - минимаксный предок-потомок (MMPC), производит обучение сети на основе метода локального обнаружения. Второй, алгоритм восхождения использует «жадную» байесовскую оценку для определения ориентации дуг байесовской сети. Поиск начинается с пустого графа, добавление, удаление или изменения направления дуг (ребер) выбирается так, чтобы это приводило к увеличению оценки, после чего поиск повторяется рекурсивным образом. При этом алгоритм инициализирует множество узлов-кандидатов в родители как для множества родительских, так и для множества дочерних узлов, так как не всегда четко можно определить родительские и дочерние узлы. В основе поиска методом восхождения лежит процесс вычисления метрики Байеса-Дирихле [5]. Данная метрика позволяет получить апостериорное распределение структуры сети в неявном виде. Предполагается, что вектор параметров каждой переменной байесовской сети при фиксированном значении родителей имеет функцию Дирихле

Р( <2у) =

{<2&,1.....<2&,Г(-^о^иЧ?-,^!

L.jjc

к = 1

где а^/ >0 - параметр распределения Дирихле, (^ = ( ((^ 1 ,. . _- вектор параметров, который соответствует одной переменной и одному значению ее родителя,

/с > 0.

Исходя из условия глобальной независимости переменных байесовской сети, справед-

ливо следующее равенство

п

р((с I с) = ПР((с|С).

¿=1

Свойство локальной независимости определяет, что вектора значений переменных байесовской сети, связанные с каждым значением родителей одной из переменных, не зависимы друг от друга, и выполняется следующее соотношение

41

р№с|с) = ПК<?и|с).

7 = 1

В соответствии с изложенными выше соотношениями, распределение Дирихле можно переписать в следующем виде

П ^ г</ \ " / \

7= г 7= ГП/С=1Г( " 7,7 - сН=1 1,7 ' Из определения плотности распределения, получаем выражение, характеризующие апостериорное распределение вероятности для байесовской сети

" 4 1^,7 , + « 7,7 ,)

P(D | Ю = ПП

¿=1 j=l .

t П

5=г Г

Из формулы Байеса получаем, Р

—^^—, от структуры сети зависит лишь

числитель и, следовательно: Р( С| £> ) осР(£> | С)Р(С), априорная вероятность ( ) будет идентична для всех структур байесовских сетей.

Учитывая выражение, описывающее апостериорную вероятность сети, можно записать выражение для метрики Байеса-Дирихле в логарифмической форме:

Г

lnP

п 4i

=w

In-

Ып г(£=,* + «

^ г

+

Г

5=г Г

Для получения эквивалентной метрики Байеса-Дирихле необходимо определить положительную меру на

_ 1 "(х1- .   -хп) = "¡ЧП

п 7 = 1 ' 7

Исходя из данного выражения, мера эквивалентная метрике Байеса-Дирихле может быть описана следующим выражением:

п ч i y

ЫРф | G) = yjln—-

s=1 r

Минимаксный алгоритм предок-потомок служит для построения структуры байесовской сети. Сущность данного алгоритма заключается в нахождении множества CPC (родителей и потомков), содержащего всех предков и потомков для некоторого узла X. Данный алгоритм обладает характерными признаками эвристического анализа и позволяет определить все входящие и исходящие узлы для переменной X, без определения направленности данных связей. Применяя на практике данный алгоритм для каждого из узлов, можно определить все узлы сети без учета их ориентации, тем самым определить базовую структуру байесовской сети. Алгоритм представлен в табл.1.

Таблица 1 Структура минимаксного алгоритма предок-потомок

Продолжение табл. 1

Р =X2

если р > а , то

assoc = 0

если — 1 о g(p ) < a ss о с , то

as s о с = — 1 о g

3. Возврат as s о с

Остановимся на основных аспектах приведенного в табл. 1 алгоритма ММРС. Изначально множество кандидатов родителей и потомков для вершины 1 представляет собой пустое множество, после чего на каждом шаге создается пара, сформированная на основе Г и значения связи с переменной 1 при заданном СРС. Затем все переменные из СРС проверяются относительно каждого подмножества 5 с СРС. Если существует подмножество 5 с СР С, такое что выполняется критерий условной независимости IпсС(х,г \ 5), переменная удаляется из СРС. При наличии переменной 1 и множества переменных СРС, алгоритм ММРС создает выборку по х, которая максимизирует зависимость с 1 для всех переменных, которые не содержатся в данный момент в СРС. Зависимость, вычисленная для каждой из переменных, представляет собой минимально допустимое значение для всех подмножеств я с СР С. Процедура МтЛ880с (1, х, СРС) осуществляет проверку статистических критериев независимости (критерий Пирсона). Если вероятность р (вероятность ложного утверждения об условной независимости) ( ), меньше некоторого порогового значения , то переменные х и 1 читаются независимыми относительно множества с , а значения связи между х и 1 равно нулю, в противном случае значение связи вычисляется как — 1 оg(p). Алгоритм ММРС на каждом шаге первого этапа добавляет в СРС переменную, которая максимизирует минимальную связь с 1 (находится путем вычисления тестов для каждого возможного подмножества я с СР С). Первая фаза завершается, когда все оставшиеся переменные независимы от 1, в частности, такая ситуация достигается в том случае, когда минимаксная ассоциация достигает нулевого значения. Вторая фаза необходима, так как переменные в СРС могут быть вставлены не в хронологическом порядке, в частности, если переменная х, будет считаться независимой на основе алгоритма при наличии переменной у, однако будет добавлена в СРС раньше чем у, то необходимо, чтобы ( ) было вычислено позже.

Для проверки гипотез о независимости для каждой из переменных в работе используется

Алгоритм Этапы

Минимаксный предок-потомок ММРС 1. Входные данные: Б, СРС, 1 - переменная для которой производиться вычисление 2. Инициализация СРС = 0 3. Итерация Пока можно добавить в СРС ,ассо су) = М ахМ тН е иг (5 £ 1 с( г, С Р С) если то срс=срси г 4. Проверка условной независимости переменной t и узлом из СРС Пока х есть в множестве СРС Г 38 сСРС и Ш(х, ф) Шеи СРС = СРС\{х} 5. Возврат множества СРС

Эвристический поиск минимально-го и максимально-го узла МахМтИеип^Ис 1. Входные данные: 1 - анализируемая переменная, СРС - Подмножество множества СРС 2. Поиск максимального значение аяяо су = таххМ тАяяо с(х,Ь \ СР С) / = агдтаххМ тАяяо с(х,Ь \ СР С) 3. Возврат и МтА^ч'вс 1. Входные данные 1, х - анализируемые переменные СРС - Подмножество множества СРС 2. Итерация пока 5 с СР С

критерий Пирсона ( критерий):

2 _ у

а,о,с

где Еа ь,с - ожидаемое число выборок, где х=а, у=Ь, 2=с, оно определяется следующим образом:

Таблица 2

Еа,Ь,с ~ '

Я

где - частота появления данных, где х=а, У=Ь, 7=С.

Для построения связей между узлами сети и определения их направлений в рамках алгоритма ММНС используется алгоритм «жадного» поиска на основе алгоритма восхождения [5]. Данный алгоритм в целом представляет собой цикл, в котором постоянно происходит перемещение в направлении возрастания. Критерием остановки является достижение некоторого пика, ни одно из соседних состояний не имеет более высокого значения. Этапы данного алгоритма представлены ниже.

1. Применение алгоритма ММРС для построения структуры сети

- Итерация

Цикл для каждой переменной ^

р сг = ммр с

- Вычисление

Применение алгоритма восхождения с использованием операций добавления, удаления и изменения направленности связей между узлами сети

2. Вычисление графа с максимальным значением оценки на основе подхода Байеса-Дирихле

Подход к определению направленности байесовской сети базируется на алгоритме восхождения с использование эквивалентной метрики Байеса-Дирихле, данная метрика реализует концепцию применения оценочной функции. Для определения сети с максимальным значением оценочной функции используются операторы добавления, удаления и изменения направленности связей, которые непосредственно влияют на значение данной функции, а критерием остановки алгоритма восхождения является достижения пика оценочной функции. Этапы алгоритма минимаксный предок потомок представлены на рис. 1-3. Обозначения к рисункам приведены в табл. 2.

Обозначения к рис. 1-3

Название узла Характеристика

А Механизм генерации наборов тестовых данных

В Дополнительные методы преобразования тестовых данных

С Механизмы выполнения и анализа результатов тестирования

Б, Е, Б Оценка последствий нарушения устойчивости приложений применительно к тому или иному набору тестов, определение степени критичности ошибки

Рис. 1. Исходная сеть

а) б)

Рис. 2. Шаг 1 алгоритма. а) Выбран узел В, А и Б удалены - 1М(С;А| {}), !М(С;Б| {}). б) СРС= {В}

б)

Рис. 3. Шаг 2 алгоритма. а) выбран узел БД б) СРС={В,Е,Б}

Для реализации предложенной схемы обучения структур байесовских сетей управления процессом тестирования конкретных уязвимо-стей веб-приложений в рамках исследования разработано соответствующее алгоритмическое и программное обеспечение.

Выводы

1. Повышение сложности внутренней структуры информационных систем и внешней инфраструктуры их функционирования требует применения новых подходов к тестированию и моделированию процессов управления тестированием.

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

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

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

5. Применение гибридных алгоритмов обучения структуры байесовских сетей процесса тестирования, позволяет повысить статисти-

Воронежский государственный университет Воронежский государственный технический уни

ческую обоснованность причинных связей между подпроцессами.

6. Вычисление оценок на основе метрики Байеса-Дирихле позволяет значительно снизить время обработки оценочных значений для каждого графа-кандидата, а также своевременно определить пороговое значение, служащее критерием завершения процедуры обучения структуры.

Литература

1. Азарнова Т.В. Расширение функциональных возможностей фаззинга веб-приложений на основе динамических сетей Байеса / Т.В. Азарнова, П.В. Полухин // Научно-техническая информация. Серия 2. Информ. процессы и системы. - 2014. - № 9. - С. 12-19.

2. Азарнова Т.В. Управление процессом тестирования веб-приложений методом фаззинга на основе динамических баесовских сетей / Т.В. Азарнова, С.А. Баркалов, П.В. Полухин //Вестник Южно-Уральского государственного университета. Серия: Компьютерные технологии, управление, радиоэлектроника. - 2017. - Т. 17. - № 2. - С. 51-64.

3. Масленников Е.Д. Предсказания на основе байесовских сетей доверия: алгоритм и программная реализация / Е.Д. Масленников, В.Б. Сулимов // Вычислительные методы и программирование. - 2010. - № 11. - С. 94-107.

4. Микаэльян С.В. Методы фильтрации на основе многоточечной аппроксимации плотности вероятности оценки в задаче определения параметров движения цели при помощи измерителя с нелинейной характеристикой / С.В. Микаэльян // Наука и Образование. - 2011. - № 10. -С. 2-14.

5. Полухин П.В. Интеграция динамических байесовских сетей в процесс тестирования веб-приложений для выявления уязвимостей межсайтингового скриптинга / П.В. Полухин // Научное обозрение. - 2014. - № 9. - С. 414-422.

6. Торопова А.В. Подходы к диагностике согласованности данных в байесовских сетях доверия / А.В. То-ропова // Труды СПИИРАН, 2015. - № 43. - С. 156-178.

7. Тулупьев А.Л. Байесовские сети доверия: логико-вероятностный вывод в ациклических направленных графах / А.Л. Тулупьев, А.В. Сироткин, С.И. Николенко. -СПб.: Изд-во С.-Петерб. ун-та, 2009. - 400 с.

BAYESIAN NETWORK STRUCTURE FORMATION OF INFORMATION SYSTEMS

RELIABILITY TESTING PROCESS

T.V. Azarnova1, N.G. Asnina2, D.K. Proskurin3, P.V. Polukhin4

'Full Doctor, Professor, Voronezh State University, Voronezh, Russian Federation, e-mail: ivdas92@mail.ru 2PhD, Associate Professor, Voronezh State Technical University, Voronezh, Russian Federation,

e-mail: andrey050569@yandex.ru 3PhD, Associate Professor, Voronezh State Technical University, Voronezh, Russian Federation,

e-mail: pdk@vgasu.vrn.ru 4Doctoral candidate, Voronezh State University, Voronezh, Russian Federation, e-mail: alfa_force@mail.ru

The article describes the results of a study aimed to develop an adaptive model for managing the process of testing the reliability and fault tolerance of information systems, the main components of which are web applications. The testing process control model is built on the basis of the application of fuzzing methods and the apparatus of dynamic Bayesian networks. All stages of the web applications testing process by fuzzing are made in the form of learning tasks for the structure, parameters, and implementation of the probability output for dynamic Bayesian networks. This article focuses on the training the structure of dynamic Bayesian networks. The structure of the Bayesian network can be determined on the basis of the causal model of the investigated problem area, which is constructed in accordance with the conception of experts with extensive experience in testing the application vulnerabilities in question. But more effective results can be achieved through the use of special algorithms for learning the structure of the network based on statistical data. This method is able to flexibly adjust to structural changes in the external environment of the simulated process. The learning algorithm used in the work is based on the assumption of the Markov cover and the search methodology based on the principle of ascent

Key words: Bayesian network, testing, information system reliability, structure training, Markov cover, ascent method

References

1. Azamova T.V., Polukhin P.V. "Expanding the functional capabilities of fuzzing of web applications based on dynamic Bayes networks", Scientific and Technical Information Processing. Series 2. Information processes and systems, 2014, no. 9, pp. 1219.

2. 2. Azarnova T.V., Barkalov S.A., Polukhin P.V. "Managing the process of testing web applications by fuzzing based on dynamic Bayesian networks", Bulletin of South Ural State University. Series: Computer Technologies, Automatic Control and Ra-dioelectronics, 2017, vol. 17, no. 2, pp. 51-64.

3. Maslennikov E.D., Sulimov V.B. "Predictions based on Bayesian networks of confidence: algorithm and software implementation", Numerical methods and programming, 2010, no. 11, pp. 94-107.

4. Mikael'yan S.V. "Filtering methods based on multipoint approximation of the probability density of estimation in the pro b-lem of determining the parameters of target motion using a gauge with a nonlinear characteristic", Nauka i Obrazovanie, 2011, no. 10, pp. 2-14.

5. Polukhin P.V." Integration of dynamic Bayesian networks into the process of testing web applications for detection of vu l-nerabilities of cross-site scripting", Scientific Review, 2014, no. 9, pp. 414-422.

6. Toropova A.V. "Approaches to the diagnosis of data consistency in Bayesian networks of trust", Proceedings of SPIIRAS, 2015, no. 43, pp. 156-178.

7. Tulup'ev A.L., Sirotkin A.V., Nikolenko S.I. "Bayesian networks of confidence: logical-probabilistic inference in acyclic directed graphs" ("Bayyesovskiye seti doveriya: logiko-veroyatnostnyy vyvod v atsiklicheskikh napravlennykh grafakh"), St. Petersburg, Publishing house of S.-Petersburg University, 2009, 400 p.