автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Методы автоматизации распределённого тестирования реактивных систем

кандидата технических наук
Тютин, Борис Викторович
город
Санкт-Петербург
год
2013
специальность ВАК РФ
05.13.11
Диссертация по информатике, вычислительной технике и управлению на тему «Методы автоматизации распределённого тестирования реактивных систем»

Автореферат диссертации по теме "Методы автоматизации распределённого тестирования реактивных систем"

Тютин Борис Викторович

МЕТОДЫ АВТОМАТИЗАЦИИ РАСПРЕДЕЛЁННОГО ТЕСТИРОВАНИЯ РЕАКТИВНЫХ СИСТЕМ

Специальность 05.13.11 — Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных

сетей

АВТОРЕФЕРАТ диссертации на соискание ученой степени кандидата технических наук

17 АПР 2014

Санкт-Петербург - 2013

005547092

Работа выполнена в Федеральном государственном бюджетном образовательном учреждении высшего профессионального образования «Санкт-Петербургский государственный политехнический университет».

Научный руководитель:

Котляров Всеволод Павлович,

кандидат технических наук, доцент

Официальные оппоненты:

Воробьёв Владимир Иванович,

д.т.н., профессор, заведующий Лабораторией информационно-вычислительных систем ФГБ УН «СПИИРАН»

Гаврилова Татьяна Альбертовна,

д.т.н., профессор, заведующая кафедрой информационных технологий в менеджменте Высшей школы менеджмента ФГБОУ В ПО «СПбГУ»

Ведущая организация: ОАО «НПО «Импульс»

Защита состоится «15» мая 2014 г. в 14:00 на заседании диссертационного совета Д 212.229.18 при ФГБОУ ВПО «Санкт-Петербургский государственный политехнический университет» по адресу: 195251, Санкт-Петербург, Политехническая ул., д.29, 9 уч. корп., ауд. 325.

С диссертацией можно ознакомиться в Фундаментальной библиотеке ФГБОУ ВПО «Санкт-Петербургский государственный политехнический университет».

Автореферат разослан » апреля 2014 г.

Ученый секретарь

диссертационного совета 1

Д 212.229.18, к.т.н., доцент К ' - - Васильев Алексей Евгеньевич

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

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

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

Помимо развития подходов к управлению качеством появление новых технологий в сфере создания программного обеспечения (ПО) расширяет круг возможных областей применения средств автоматизации тестирования, а также распределённых тестовых стендов. Одним из наиболее молодых и интенсивно развивающихся направлений являются кластерные и облачные вычисления. Принципы, лежащие в основе предоставления программных средств и комплексных решений как сервиса (SaaS - software as a service, и IaaS - infrastructure as a service) могут быть распространены на автоматизацию тестирования.

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

Степень разработанности темы. Проблемам формализации и автоматизации методов верификации и тестирования, а также из применения на практике посвящены работы таких авторов, как Липаев В.В., Петренко А.К., Карпов Ю.Г, Летичевский А.А.. Среди зарубежных авторов наиболее значимыми с точки зрения близости к теме работы можно назвать труды R. Alura, Н. Wenhong, В. Bollig, К. Beck, М. Fewster, R. Osherove и других.

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

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

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

Для достижения поставленной цели в работе были решены следующие задачи:

1) Разработка метода создания тестов, основанного на DDT (Data-Driven Testing) и К DT (Keyword-Driven Testing), и имеющего возможность выполнения нелинейных сценариев;

2) Определение способа взаимодействия тестирующей системы с моделью и её компонентами (интеграционное и модульное тестирование) на разных уровнях;

3) Создание метода построения параметризованных тестов с определением набора значений параметров отдельно от тестовых сценариев;

4) Формулировка методов масштабирования выполнения тестового набора;

5) Создание средств автоматизации тестирования, реализующих разработанные методы;

6) Разработка метода автоматизированного тестирования, основанного на созданных программных средствах, и интегрирующего результаты исследования.

Научные результаты и их новизна.

1) Разработан метод создания параметризованного тестового набора на основе формальных спецификаций, сочетающий принципы тестирования, управляемого данными, и тестирования на основе ключевых слов, свободный от ограничений на описание нелинейного поведения и параллельных взаимодействий в тестовых сценариях;

2) Создан метод автоматизации выполнения тестового набора на основе плана тестирования. Его научная новизна заключается в применении символьных поведенческих трасс, которые затем автоматически конкретизуются и выполняются согласно плану тестирования;

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

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

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

Теоретическая п практическая значимость работы. Созданы методы, автоматизирующие различные этапы основанного на тестировании процесса контроля качества ПО. Теоретической основой методов являются разработанные модель параллельного запуска тестирования и расширение аппарата символьной верификации, разработанного A.A. Летичевским. Предложенные методы формализованы до уровня алгоритмов, на основе которых созданы инструментальные средства поддержки. Последние базируются на технологии верификации VRS и технологии автоматизации тестирования TAT. На основании объединения разработанных методов была создана методика автоматизации тестирования. Использование плана тестирования и конкретизации параметров тестов позволило упростить автоматизацию тестирования и снизить сложность выполнения тестовых процедур. Разработанные методы и средства масштабирования тестирования решили задачу автоматизации настройки и запуска больших тестовых наборов.

Разработанные методы, алгоритмы и программные средства могут быть отчуждены для использования в сторонних методах и информационных системах. В рамках четырёх проектов по тестированию ПО применение результатов исследования позволило получить сокращение времени фазы тестирования в пределах 50-70%.

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

территории Санкт-Петербурга (2013 г.), а также стипендии Президента Российской Федерации (2012 г.).

Предметом исследовании являются методы и инструментальные средства автоматизации процесса контроля качества программного продукта (ПП).

Методология и методы исследования. Для решения поставленных в работе задач используются теория графов, теория алгоритмов в области параллельного программирования, теория конечных автоматов, теория инсерционного программирования, аппарат формальных спецификаций. Применяются стандарты языков Use Case Maps (UCM) и Message Sequence Charts (MSC), а также стандарт Message Passing Interface (MPI).

Основные результаты и положения, выносимые на защиту:

— Методы автоматизации этапов тестирования ПО:

1) автоматическое создание параметризованного тестового набора;

2) автоматическое тестирование на основе плана;

3) автоматизированный анализ результатов тестирования;

4) автоматизированное масштабирование выполнения тестирования;

— Реализация современных подходов к тестированию на базе символьной верификации;

— Адаптация технологии VRS/TAT для использования в облачных и кластерных

вычислительных системах;

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

при масштабировании запуска.

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

Апробация работы. Основные положения и результаты диссертационной работы были представлены на научных конференциях "Технологии Microsoft в теории и практике программирования" (СПб, 2012, 2011, 2010), 6th Spring/Summer Young Researchers' Colloquium on Software Engineering (Пермь, 2012), XXXIX неделя науки СПбГПУ (СПб, 2010).

Публикации. По теме диссертационной работы было опубликовано 10 печатных работ, 5 из них в изданиях из перечня ВАК.

Внедрение. Разработанные методы и инструменты поддержки внедрены в компаниях ЗАО «Моторола Солюшнз», ООО «Научно-Техническин Центр «Северо-Западная Лаборатория» и использованы при разработке учебно-методического комплекса СПбГПУ по

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

Структура и объем работы. Диссертация состоит из введения, четырех глав, заключения, списка литературы и семи приложений. Объем диссертации - 144 страницы машинописного текста, объем приложений - 41 страница, диссертация содержит 43 рисунка, 22 таблицы, список литературы состоит из 106 наименований.

КРАТКОЕ СОДЕРЖАНИЕ РАБОТЫ

Во ппедеипп обоснована актуальность темы исследования; сформулированы цели и задачи работы; описаны основные аспекты её научной и практической значимости, апробация и публикация результатов; приведена структура изложения материала диссертации.

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

Современные подходы к построению тестового набора имеют ряд ограничений и недостатков. Подход к тестированию, основанный на данных (DDT), не подразумевает возможность создания сложной структуры тестов. Реализующее его ПО не обладает возможностью редактирования тестовых сценариев в графическом виде. Подход к тестированию, основанный на ключевых словах (KDT), также имеет указанные недостатки. Общим недостатком обоих подходов является отсутствие поддержки нелинейных конструкций в коде тестовых сценариев. Однако важным преимуществом, которое предоставляют DDT и KDT, является гибкость системы тестирования и возможность её интеграции со сторонними средствами.

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

• ориентация на те или иные технологии создания ПО;

• отсутствие взаимодействия со средами разработки ПО;

• тесная связь с одной определённой технологией создания ПО.

Технология VRS/TAT выбрана из рассмотренных по критерию полноты функциональности и возможности устранения выявленных ограничений. Определен ряд недостатков данной технологии: отсутствие поддержки распределённого тестирования, недостаточно полная реализация современных подходов к тестированию, невозможность выполнения тестов в кластерной и облачной среде.

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

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

Основой для написания тестов служат требования. При автоматизации тестирования их необходимо привести к формальному представлению. Для создания формальной спецификации в работе были использованы нотации UCM, Base Protocols (BP) и MSC, а также технология VRS. Она основана на принципах инсерционного программирования, сформулированных в работах А.А. Летичевского, и позволяет автоматически создавать поведенческие трассы по модели системы в нотации BP. Трасса получается, как результат соединения нескольких базовых протоколов в последовательную цепочку и может быть записана в виде следующей формулы:

где BPi ... ВР„ - множество базовых протоколов, So - начальное состояние, S„ -конечное состояние. Подобная трасса представляет одно из возможных поведений системы, и может служить основой для тестовых сценариев. Создание модели системы в нотации ВР является достаточно трудоёмким процессом, поэтому форматом спецификации системы, создаваемой вручную, был выбран UCM. Автоматическое преобразование модели системы из UCM в ВР осуществляется с помощью инструмента UCM2FM. Алгоритмы и реализация данного инструмента, а также методы формализации, основанные на его использовании, предложены в работах И.В. Никифорова.

В третьей главе разработанные методы формализованы до уровня алгоритмов, на основании которых реализованы программные инструменты на базе технологий TAT и VRS.

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

Данный метод состоит in следующих шагов:

1) Формулирование требований к программному продукту и построение формальной модели системы путём преобразования требований в совокупность элементов UCM диаграмм:

MREQ е R,TRACE = in,},!/,eU,U = U и (У „„, ul/ ,„, где R - множество исходных требований, U - модель системы в нотации UCM, TRACE -отображение требования на набор элементов модели Uj. Данный шаг разработанного метода опирается на исследования диссертационной работы П.В. 11икифорова;

2) Анализ формальной модели и определение ключевых параметров функционирования системы;

3) Построение модели системы в нотации BP. Этот и предыдущий шаги выполняются на основе технологии UCM2FM, разработанной в рамках исследований Никифорова И.В.;

4) Построение средствами VRS символических поведенческих MSC трасс, покрывающих модель, на основании критериев, задаваемых с помощью гидов;

5) Преобразование полученных поведенческих трасс в тесты.

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

1) Интерпретация сущности в тесте как независимого процесса;

2) Выполнение блоков конструкции parallel независимо с сохранением порядка следования событий. Условие перехода может быть представлено в следующем виде:

.»-»{»,' :£,',....v;v :£,v| -».v'.VE е/VfÄ где i,..k - индексы текущих возможных событий для каждого блока, s п s' - текущее и последующее состояние поведенческой трассы, EkJ - очередное событие в блоке, St1 текущее состояние при условии выполнения очередного события в блоке;

3) Выполнение событий concurrent region в произвольном порядке:

5 -» i.V. : /Г, ,....vЛ, : Ех | -> .s', VE е COREGION Скорость разработки тестового набора была повышена путём параметризации тестов за счёт их получения из символьных поведенческих трасс. При таком подходе трассы представляются в виде двоек L = <В, Rb >, где В - базовый протокол, RB - ограничения на параметры этого протокола. С помощью аппарата предикатных трансформеров, описанного в работах A.A. Летичевского, для трасс может быть получена таблица конкретизации параметров, которая была применена для автоматизации формировании плана тестирования.

Для интеграции данного подхода в разработанный метод был реализован алгоритм преобразования параметризованных поведенческих трасс в тесты. Пусть X - множество инстанций окружения, Y - множество тестируемых компонент системы, S - множество событий в тесте, X(s) - функция получения имён сущностей, относящихся к событию s. Возможны следующие действия над набором сущностей в тесте:

1) Объединение нескольких сущностей в одну:

f(M)-.M^-{SUT\, Г=/(П, y=S-U,(VxeA(s».xeK] где f(M) - преобразование множества сущностей в один элемент,

2) Замещение тестируемых компонент автоматически создающимися заглушками с поведением, определяемым тестовым сценарием:

X = Xvjr,r={YuJm...\, Г, Swb„ Y„ -*Stubh,...

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

1) Построение таблицы параметров тестового набора. Данный этап выполняется с применением технологии VRS. Базовый протокол В(х) можно определить как выражение вида:

V.v(ür (х) ->< Pix) > ß(x)) где х - список параметров протокола, а(х) и ß(x) - логические формулы, определяющие пре- и постусловие В(х). Для получения таблицы фактических ограничений на параметры сигналов происходит последовательное применение прямого предикатного трансформера pt, позволяющего получить текущее состояние системы на основе ее первоначального состояния и поведенческой трассы, ведущей к текущей точке:

В(х) = Vx(a(x) ->< Р(х) > /?(*)),£' = />/(£ла(.*),/?(.т))

2) Уточнение пользователем способов генерации тестовых данных на основанни таблицы параметров тестового набора (Рис. 1);

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

пользователем, который определяет желаемые значения переменных в терминах команд управления: Я, М, Ь, О,С.

Var name Signal name Type User option Range Value

ч-ЮТОМ1'.!*: ^ДГНГ^пее d L • 2М745ШЗ <-2'' *"'"'

C'jp.eni.j-iip'? ci 4 =f-fj l^.ç il__''/-.l.!.!.! еЛ^-.с? F-CI HJ7V74IM»

rtrMngJ'ijJ.tfj? HÇÎJ^'tT't' с AUTO, CS, R M.PEV _AIJT0

Рис. I. Пример таблицы конкретизации Команда R управляет подстановкой значения равного правой границе интервала

допустимых значений (ИДЗ) соответствующей переменной:

VS„ : V/;, е l',i>, = RIGIIT(RANGE,) Команда L управляет подстановкой левого значения ИДЗ: V«(J: V/;, е Р,/>, = LEFT(RANGE,) Команда М предусматривает вычисление и подстановку среднего значения ИДЗ:

V«s : V/;: е Р, р, = A VG(RANGE,) Команда О предусматривает подстановку значения, находящегося за границами ИДЗ:

V«„ : V/;, е Р, р, =Х, -V € RANGEI Команда С управляет подстановкой конкретного значения, определенного пользователем;

3) Генерация наборов значений параметров тестового набора. На основании полученного плана тестирования разработанные в ходе исследования инструмент MscSubst создаёт тестовые трассы с конкретными значениями согласно строкам таблицы:

TRACE, {TEST,): р, = CMD „(RANGE „), р, е !«„, е TRACE,

4) Генерация кода тестового набора на основании наборов тестовых данных и тестовых сценариев;

5) Выполнение тестового набора;

6) Представление результатов выполнения тестового набора с разделением тестов на прошедшие и проваленные.

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

автоматизации анализа результатов тестировании и коррекции тестов частично решает данные задачи и состоит из следующих этапов:

1) Внедрение маркеров в тесты и исходные требования,

2) Выполнение тестирования,

3) Формирование вердиктов и диагностической информации на основе журналов тестирования с внедрёнными маркерами,

4) Извлечение маркеров и анализ точки завершения тестов,

5) Визуализация ошибок в тестах и требованиях,

6) Редактирование требований, тестов и наборов тестовых данных.

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

Для реализации рассматриваемого метода был разработан инструмент MscMarker, который осуществляет преобразование служебных пометок, содержащихся в поведенческих сценариях и комментариях языка MSC. Он написан на С++ и использует библиотеку ядра ТЛТ для работы с объектным представлением языка MSC.

VMARK е (B,U\3MARC(OUTCOME): MARK(L)— > TEST,

Из результатов тестирования можно автоматически извлечь имена базовых протоколов, между которыми произошла ошибка, а также тэг соответствующего элемента UCM диаграммы. Для отображения данной информации в средствах визуализации UCM был разработан инструмент MseGather. Он извлекает информацию о точке останова и формирует на её основе файл с пометками, которые могут быть использованы средствами визуализации BP и UCM.

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

В ходе данного исследования были разработаны два метода масштабирования выполнения тестового набора — метод кластеризации группы тестов и метод параллельного запуска тестовых сценариев.

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

• Критерий суммарной сложности тестов в группах. Данную величину можно выразить следующей формулой:

■V

C = Yjui*ci i-1

где С - суммарная сложность тестов, ni - множитель для конкретного события или управляющей конструкции в тестовом сценарии, ci - весовой коэффициент, соответствующий выражению, N - общее количество событий в тесте.

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

1) Определение тестов, входящих в тестовый набор;

2) Определение взаимозависимостей между тестами;

3) Кластеризация тестового набора по одному из критериев, предложенных в работе;

4) Сборка и выполнение частей тестового набора;

5) Фиксация результатов выполнения тестирования.

Для реализации данного метода был разработан модуль MscSplit. Он был выполнен в виде сценария на языке Perl. Модуль кластеризации интегрирован в инфраструктуру системы ТЛТ. Он использует служебные переменные среды, библиотеки работы с MSC и конфигурационными файлами, общие для всех инструментов.

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

Предлагаемый в данной работе метод параллельного выполнения тестового набора состоит из следующих шагов:

1 ) Определение тестов, входящих в тестовый набор;

2) Определение зависимостей между тестами двух типов: необходимость совместного выполнения и невозможность совместного выполнения;

3) Сборка тестового набора;

4) Выполнение тестового набора в многопроцессорной вычислительной среде;

5) Фиксация результатов выполнения тестирования.

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

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

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

T = {t„tM...t^N},.i=N*n где п - порядковый номер процесса, начинающийся с нуля, t -подзадача. Определённый таким образом алгоритм параллельного выполнения тестового набора был реализован в коде инструментов TAT. Была добавлена возможность осуществлять генерацию кода тестового набора как с поддержкой возможностей MPI, так и без таковой.

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

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

1) Автоматическое построение параметризованного тестового набора на основе формальной спецификации;

2) Автоматизированное формирование плана тестирования;

3) Автоматическая сборка и запуск тестового набора на основе плана тестирования с возможностью масштабирования;

4) Автоматизированная обработка результатов тестирования, коррекция требований и тестовых данных.

.-1 ручное СОЦаННС [-1

I Поведенческие трассы I_—™---l I

1---Г| Тесты Г-^,-1-.

План тестирования , j Л Тестовын наоор -^-1 | конфигурация —У1--1

--уточненне

Рис. 2. Итерашвнын процесс разработки тестового набора

Предложенный метод тестирования позволяет организовать итеративную процедуру выполнения ряда этапов (Рис. 2). Такая модель цикла тестирования позволяет уменьшить временные затраты, а также уточнять и дополнять тесты в процессе разработки программного продукта.

В чётвёртой главе представлены результаты практического использования разработанных методов в рамках решения задачи тестирования в четырёх проектах. Modeminterface - проект, реализующий часть стандарта организации спутниковой связи для систем передачи видеосигнала, основан на 121 требовании. Для организации тестирования потребовалось создание библиотек-драйверов для передачи информации через механизм сокетов и файловый вывод. GMCPanel - проект, реализующий оконный пользовательский интерфейс модуля конфигурирования телекоммуникационного ПО для агрегации и обработки данных. Тестирование было основано на 54 требованиях и реализует проверку части интерфейса, отвечающей за редактирование численных параметров. Проект тестирования сервера SMTP-протокола предполагал проверку 24 требований, описывающих правила отправки электронных сообщений с хоста на сервер. EBROKER - проект тестирования веб-сервисов биржи обмена электронных валют, в рамках которого на основании WSDL-спецификации было определено 34 требования, покрывающих базовые сценарии взаимодействия клиентских приложений с сервисом.

Первым шагом, который выполнялся для каждого из проектов, являлось получение параметризованного тестового набора. Конкретизация и адаптация полученных трасс для получения тестовых сценариев, пригодных для генерации кода тестового набора, производилась с использованием разработанных инструментов. При наличии необходимых статистических данных осуществлялась оценка трудоёмкости создания аналогичного тестового набора в рамках других технологий тестирования. Запуск тестирования осуществлялся с масштабированием и без такового. Построение и запуск тестового набора проводилось как в рамках использования технологии TAT как сервиса, так и традиционным способом. Также в ходе апробации разработанного метода тестирования была произведена оценка затрат на внесение изменений в тестовый набор.

Полученные данные позволили оценить ключевые характеристики результатов работы. Сокращение временных затрат на выполнение тестов, полученное за счёт предложенных в

работе методов масштабирования выполнения тестового набора, достигло 85%, нелинейно возрастая при увеличении количества потоков выполнения (Рис. 3). Автоматизация позволила избавиться от необходимости вручную настраивать тестовый набор и управлять запуском при его раздельного выполнения.

Реализация подходов KDT и DDT с поддержкой нелинейных сценариев в рамках предложенного метода создания тестового набора привела к сокращению количества тестовых сценариев, которое необходимо для покрытия требований.

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

fvfodemtn^rface шсралы U s.« .....................

j', z- ?.. зз т » № V:- га г;; ги ?

Рис. 3. Время выполнения тестового набора

В заключении описаны основные результаты, полученные в ходе выполнения

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

В приложении I описаны критерии тестирования, которые применяются при составлении тестового набора и определении задач тестирования в индустриальных проектах. В приложении 2 приводится классификация видов тестирования по типам объекта тестирования. Приложение 3 содержит описание актуальных на данный момент технологий параллельного программирования. Приложение 4 посвящено обзору существующих инструментов и каркасов для их создания в области автоматизации тестирования. В приложении 5 описаны формальные нотации ВР и иСМ и возможности их применения для задания спецификации программного

обеспечения. В приложении 6 представлена грамматика языка GDL. Приложение 7 посвящено описанию базовых технологий, использованных в данной работе.

ОСНОВНЫЕ РЕЗУЛЬТАТЫ РАБОТЫ

1) Разработан подход к интерпретации формальной нотации MSC, реализующий возможность использования нелинейных конструкций и описания параллельных поведений в тестовых сценариях, представленных в данной нотации;

2) Сформулирован метод автоматизации создания тестового набора, основанный на применении формальных нотаций MSC и UCM и принципах DDT и KDT;

3) Разработан метод автоматизации выполнения тестового набора на основе плана тестирования, в рамках которого реализуется создание тестовых сценариев на базе параметризованных поведенческих трасс и их автоматическая конкретизация с помощью тестовых данных;

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

5) Разработаны методы масштабирования выполнения тестового набора, применяющие критерии разделения тестового набора на независимые части для их параллельного выполнения;

6) Разработанные методы формализованы до уровня алгоритмов и реализованы в виде базирующегося на технологиях TAT и VRS программного обеспечения в объёме 275 KLOC. Объем разработанной сопроводительной документации составил 178 страниц;

7) Разработан метод автоматизированного тестирования, основанный на созданных программных средствах, и реализующего полный набор действий по контролю качества программного продукта в течение всего цикла его создания;

8) Методы и инструменты, созданные в ходе данной работы, апробированы в рамках решения задачи автоматизации тестирования в четырёх проектах. Согласно полученным результатам, методы позволяют не только сократить время выполнения тестового набора, но также его объём и количество операций, которые выполняются вручную при тестировании.

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

ПУБЛИКАЦИИ ПО ТЕМЕ ДИССЕРТАЦИИ

Основное содержание работы изложено в следующих публикациях (статьи 1-3, 6, 10 опубликованы в изданиях, включенных в перечень ВАК).

1. Средства поддержки интегрированной технологии для анализа и верификации спецификаций телекоммуникационных приложений / U.C. Ануреев, С.Н. Баранов, Д.M. Белоглазов, Е.В. Бодин, П.Д. Дробинцев, A.B. Колчин, В.П. Котляров, A.A. Летичевский, A.A. Летичевский мл., В.А. Непомнящий, И.В. Никифоров, C.B. Потиенко, Л.В. Прийма, Б.В. Тютин // Труды СПИИРАН. 2013. №3 (26). С. 349-383.

2. Тютин Б.В., Веселов А.О., Котляров В.П. Масштабирование выполнения тестового набора при автоматизированном тестировании // Научно-технические ведомости СПбГПУ. 2013. №3(174). С. 118-122.

3. Тютин Б.В, Никифоров И.В., Котляров В.П. Построение системы автоматизации статической и динамической проверки требований к программному продукту // Научно-технические ведомости СПбГПУ. 2012. № 4 (152). С. 119-123.

4. B.V. Tyutin, I.V. Nikiforov, V. P. Kotlyarov. Distributed Testing of Multicomponent Systems // Proceedings of the 6th Spring/Summer Young Researchers' Colloquium on Software Engineering. 2012. pp. 75-78.

5. Тютин Б.В., Веселов A.O., Котляров В.П. Разработка метода тестирования телекоммуникационных приложений в распределённой среде // Технологии Microsoft в теории и практике программирования: Материалы межвузовского конкурса-конференции студентов, аспирантов и молодых ученых Северо-Запада. 2012. С. 76-77.

6. Автоматическая настройка тестового окружения телекоммуникационных проектов / А.О. Веселов, A.C. Иванов, Б.В. Тютин, В.П. Котляров // Научно-технические ведомости СПбГПУ. 2011. № 4 (128). С. 149-152.

7. Тютин Б.В., Котляров В.П. Система управления распределённым тестированием // XXXIX Неделя науки СПбГПУ: Материалы международной научно-практической конференции. 2010. С. 118-119.

8. Иванов A.C., Тютин Б.В., Котляров В.П. Использование SDL Value Notation в качестве формата представления данных при организации удалённого взаимодействия с реактивными информационными системами // XXXVIII Неделя науки СПбГПУ: Материалы международной научно-практической конференции. 2009. С. 106-108.

9. Автоматизация нагрузочного тестирования сетевых служб / А.О. Веселов, A.C. Иванов, Б.В. Тютин, В.П. Котляров // Технологии Microsoft в теории и практике программирования: Материалы межвузовского конкурса-конференции студентов, аспирантов и молодых ученых Северо-Запада. 2009. С. 24-25.

10. Автоматизация тестирования телекоммуникационных приложений / А.О. Веселов, A.C. Иванов, Б.В. Тютин, В.П. Котляров // Научно-технические ведомости СПбГПУ. 2009. №3(80). С. 208-212.

Подписано в печать 08.04.2014. Формат 60x84/16. Печать цифровая. Усл. печ. л. 1,0. Тираж 100. Заказ 11768Ь.

Отпечатано с готового оригинал-макета, предоставленного автором, в типографии Издательства Политехнического университета. 195251, Санкт-Петербург, Политехническая ул., 29. Тел.:(812)550-40-14 Тел./факс: (812)297-57-76

Текст работы Тютин, Борис Викторович, диссертация по теме Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования "Санкт-Петербургский государственный политехнический университет"

и^и \ ч-ГЗ г о - (

На правах рукописи

Тютин Борис Викторович

Методы автоматизации распределённого тестирования реактивных систем

Специальность 05.13.11 -Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

Диссертация на соискание ученой степени кандидата технических наук

Научный руководитель -кандидат технических наук, доцент В.П. Котляров

Санкт - Петербург - 2013

Введение..................................................................................................................................................4

Глава 1. Современные подходы к автоматизации создания и выполнения тестового набора.....11

1.1 Критерии тестирования.............................................................................................................11

1.2 Актуальные подходы к тестированию.....................................................................................12

1.2.1 Тестирование, управляемое данными...............................................................................14

1.2.2 Тестирование на основе ключевых слов...........................................................................17

1.3 Параллельное программирование в тестировании.................................................................21

1.3.1 Разработка параллельного алгоритма...............................................................................22

1.3.2 Оценка качества параллельного алгоритма......................................................................24

1.3.3 Характеристики параллельных алгоритмов.....................................................................26

1.5 Инструментальные средства автоматизации тестирования...................................................28

1.5.1 Сравнение средств автоматизации тестирования............................................................30

Выводы..............................................................................................................................................41

Глава 2. Подходы к реализации этапов технологии распределённого тестирования...................43

2.1 Метод создания параметризованного тестового набора на основе требований к продукту ............................................................................................................................................................43

2.1.1 Анализ формальной модели и построение поведенческих трасс с символическими параметрами..................................................................................................................................44

2.1.2 Требования к языку описания тестовых сценариев.........................................................48

2.1.3 Преобразование поведенческих трасс в тесты.................................................................49

2.1.4 Формулировка метода построения параметризированных тестовых сценариев..........50

2.2 Метод автоматизации выполнения тестового набора на основе плана тестирования........51

2.2.1 Конкретизация тестового набора и составление плана тестирования...........................52

2.2.2 Сборка тестового набора....................................................................................................53

2.2.3 Выполнение тестового набора...........................................................................................56

2.2.4 Формирование результатов тестирования........................................................................57

2.2.5 Формулировка метода автоматизации тестирования......................................................58

2.3 Метод автоматизации анализа результатов тестирования и коррекции тестов...................59

2.4 Методы масштабирования выполнения тестового набора....................................................61

2.4.1 Возможные подходы к масштабированию.......................................................................62

2.4.2 Изолирование среды исполнения тестов..........................................................................64

2.4.3 Метод кластеризации тестового набора............................................................................64

2.4.4 Метод параллельного выполнения тестов........................................................................67

2.5 Метод автоматизированного тестирования с обратной связью, основанный на анализе

требований........................................................................................................................................68

Выводы..............................................................................................................................................71

Глава 3. Реализация этапов технологии распределённого тестирования.......................................73

3.1 Реализация метода автоматизации создания параметризованного тестового набора на основе требований к продукту........................................................................................................73

3.1.1 Формализация требований.................................................................................................74

3.1.2 Генерация тестовых сценариев..........................................................................................77

3.1.3 Изменение набора сущностей............................................................................................79

3.2 Реализация метода автоматизации выполнения тестового набора на основе плана тестирования.....................................................................................................................................82

3.2.1 Конфигурирование тестового набора................................................................................82

3.2.2 Конкретизация параметров тестового сценария..............................................................86

3.2.3 Интерпретация языка тестовых сценариев.......................................................................90

3.2.4 Построение тестового набора............................................................................................94

3.2.5 Запуск тестирования...........................................................................................................96

3.2.6 Завершение тестирования...................................................................................................97

3.3 Реализация метода автоматизации анализа результатов тестирования и коррекции тестового набора...............................................................................................................................98

3.4 Реализация методов масштабирования тестового набора....................................................101

3.4.1 Модуль кластеризации тестового набора.......................................................................102

3.4.2 Параллельное выполнение тестов...................................................................................104

3.4.3 Сборка и запуск тестового набора при масштабировании............................................106

3.5 Реализация метода автоматизированного тестирования с обратной связью, основанного на анализе требований........................................................................................................................107

3.5.1 Шаги метода......................................................................................................................108

3.6.2 Контуры обратной связи...................................................................................................110

Выводы............................................................................................................................................112

Глава 4. Результаты применения разработанных методов автоматизации тестирования..........113

4.1 Практическое применение результатов работы....................................................................113

4.1.1 Внедрение разработанных методов.................................................................................113

4.1.2 Анализ затрат на изменение исходных требований и их проверку.............................114

4.1.3 Описание проектов для апробации метода.....................................................................115

4.2 Оценка эффективности результатов внедрения разработанных методов применительно к реальным проектам........................................................................................................................117

4.2.1 Анализ времени построения тестового набора..............................................................119

4.2.2 Анализ объёма тестового набора при использовании параметризованных тестов.... 120

4.2.3 Анализ времени конфигурирования тестового набора при ручном и автоматическом масштабировании.......................................................................................................................122

4.2.4 Анализ ускорения выполнения тестового набора при масштабировании..................124

4.2.6 Анализ преимуществ использования системы тестирования как сервиса..................128

4.2.7 Анализ затрат на внесение изменений в требования.....................................................130

Выводы............................................................................................................................................131

Заключение.........................................................................................................................................134

Список сокращений и условных обозначений................................................................................137

Литература..........................................................................................................................................138

Приложение 1, Критерии тестирования...........................................................................................145

Критерии «чёрного ящика»...........................................................................................................145

Критерии «белого ящика».............................................................................................................147

Приложение 2. Виды объектов тестирования.................................................................................149

Приложение 3. Технологии параллельного программирования...................................................153

MPI...............................................................................................................................................153

OpenMP.......................................................................................................................................156

Приложение 4. Обзор инструментальных средств автоматизации тестирования.......................159

Fit.................................................................................................................................................159

Robot Framework.........................................................................................................................164

JUnit.............................................................................................................................................166

TAT..............................................................................................................................................169

UniTesK.......................................................................................................................................170

HP Quick Test Professional.........................................................................................................172

IBM Rational Functional Tester...................................................................................................174

Приложение 5. Формализация требований......................................................................................176

Приложение 6. Синтаксис языка гидов VRS...................................................................................181

Приложение 7. Используемые в работе технологии и инструменты............................................184

Введение

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

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

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

идеологию Agile), использование сложных, бюрократизированных процессов для них практически невозможно. По этой причине возникает потребность в адаптируемых методах управления качеством программного продукта, обеспечивающих не только автоматизацию тестирования, но и проверку соответствия готового ПО его спецификациям, а также непротиворечивость последних [65]. Основным требованием к технологиям становится возможность построения единой методологической цепочки, обеспечивающей контроль качества разрабатываемых продуктов. В отличие от ранее предлагаемых решений, в текущих условиях наибольшую эффективность обеспечивают процессы, базирующиеся на инструментах, которые могут быть легко адаптированы и расширены.

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

Развитие технологий разработки программного продукта, а также эволюция структуры рабочих коллективов приводят к появлению новых подходов в тестировании. Так в пункте 1.2 описаны современные подходы к организации автоматизированного тестирования, указаны их недостатки и ограничения. Возможности, предоставляемые ими, позволяют существенно снизить стоимость тестирования. Потому решение задачи устранения недостатков таких подходов, как тестирование, управляемое данными, и тестирования на основе ключевых слов, является востребованным при построении новых средств автоматизации тестирования. Среди рассмотренных в пункте 1.5 программных инструментов выбрана технология VRS/TAT, которая покрывает весь цикл управления качеством программного продукта, что не избавляет ее от некоторых из упоминаемых недостатков.

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

областей применения средств автоматизации тестирования, а также способов его организации. Одни из наиболее молодых и интенсивно развивающихся направлений в данный момент это кластерные и облачные вычисления. Принципы, лежащие в основе предоставления программных средств и комплексных решений как сервиса (SaaS - software as a service, и IaaS -infrastructure as a service) могут быть распространено на автоматизацию тестирования. Это открывает перспективную область для научных исследований и разработок, результаты которых могут быть применены на практике.

Степень разработанности темы. Проблемам формализации и автоматизации методов верификации и тестирования, а также из применения на практике посвящены работы таких авторов, как Липаев В.В., Петренко А.К., Карпов Ю.Г. Среди зарубежных авторов наиболее значимыми с точки зрения близости к теме работы можно назвать труды R. Alura, Н. Wenhong, В. Bollig, К. Beck, М. Fewster, R. Osherove и других.

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

Однако в данных работах недостаточно рассмотрены вопросы интеграции современных подходов к тестированию, предлагаемые авторами методы автоматизации построения тестового набора обладают известными ограничениями на способ описания тестовых сценариев.

С другой стороны, при детальной проработке аспектов верификации, не до конца раскрывается потенциал её объединения с тестированием.

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

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

Для достижения поставленной цели в работе были решены следующие задачи:

1) Разработка метода написания тестов, основанного на DDT (Data-Driven Testing) и KDT (Keyword-Driven Testing), и имеющего возможность выполнения нелинейных сценариев;

2) Определение способа взаимодействия тестирующей системы с моделью и её компонентами (интеграционное и модульное тестирование) на разном уровне;

3) Создание метода построения параметризованных тестов с определением набора значений параметров отдельно от тестовых сценариев;

4) Формулировка методов масштабирования выполнения тестового набора;

5) Создание средств автоматизации тестирования, реализующих разработанные подходы;

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

Научные результаты и их новизна.

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

• Создан метод автоматизации выполнения тестового набора на основе плана тестирования. Его научная новизн