автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Анализ взаимовлияний при интеграции новой функциональности в существующую систему средствами верификации и тестирования
Автореферат диссертации по теме "Анализ взаимовлияний при интеграции новой функциональности в существующую систему средствами верификации и тестирования"
На правах рукописи
Тихомиров Владимир Александрович
Анализ взаимовлияний при интеграции новой функциональности в существующую систему средствами верификации и тестирования
Специальность 05.13.11 — Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
Автореферат
диссертации на соискание ученой степени кандидата технических наук
Санкт - Петербург - 2009
003474464
003474464
Работа выполнена в Государственном образовательном учреждении высшего профессионального образования «Санкт-Петербургский государственный политехнический университет».
Научный руководитель - кандидат технических наук, профессор Котляров Всеволод Павлович
Официальные оппоненты - доктор технических наук, профессор
Сафонов Владимир Олегович - кандидат технических наук, Голубев Алексей Андреевич
Ведущая организация - Санкт-Петербургский институт информатики и автоматизации РАН
Защита состоится « /? » сге&тжГр-* 2009 г. в ¡6> часов на заседании диссертационного совета Д 212.229.18 при ГОУ ВПО "Санкт-Петербургский государственный политехнический университет" по адресу: 195251, Санкт-Петербург, Политехническая ул., д.29, 9 уч. корп., ауд. 325.
С диссертацией можно ознакомиться в Фундаментальной библиотеке ГОУ ВПО "Санкт-Петербургский государственный политехнический университет".
Автореферат разослан « »_2009 г.
Ученый секретарь
диссертационного совета Васильев А.Е
1. ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ
1. Актуальность работы. На сегодняшний день, в связи с постоянным увеличением объема разрабатываемых программных систем, процесс интеграции новых компонентов в уже существующую версию программного продукта становится ключевым. Это связано с тем, что процесс разработки программного компонента часто проводится независимо от других компонентов, поэтому работоспособность всей системы зависит от того, как будет проводиться интеграция компонентов. Например, при интеграции нового программного компонента в платформу мобильного устройства зачастую требуется более пятидесяти циклов интеграции и тестирования системы.
Возрастающая сложность программного обеспечения (ПО) в промышленных технологиях производства требует применения интеграционного тестирования, для реализации которого необходимы:
- поддержка интеграционного тестирования, начиная с ранних этапов разработки;
- организация распределенного интеграционного тестирования для поддержки распределенной разработки ПО;
- использование методов, предоставляющих детализированные результаты тестирования;
- локализация области, содержащей найденную ошибку;
- поддержка автоматической генерации и выполнения тестов;
- организация тестирования на разных этапах разработки с обеспечением преемственности (переиспользования) уже полученных результатов и наработок.
Таким образом, при постоянном сокращении сроков разработки ПО и увеличении его сложности, необходимо создание методик и инструментальных средств, которые позволили бы проводить интеграционное тестирование в заданные сроки и с определенным качеством.
Проведенный анализ предметной области показал, что текущее применение формальных подходов к интеграционному тестированию затруднено по причине отсутствия методов и средств настройки на тестирование интерфейса взаимодействия, в отрыве от тестирования всей системы. В существующих подходах интеграционного тестирования требуется создание полной модели всех компонентов, что для промышленных систем является очень трудоемким процессом и сложно применимым в процессе разработки ПО. Среди проанализированного инструментария для интеграционного тестирования существует очень ограниченный набор средств, позволяющий проводить тестирование на уровне интеграции компонентов и обнаруживать ошибки на ранних стадиях разработки ПО. Стоит отметить, что такие
инструменты обладают тем же недостатком, что и формальные подходы, на которых они основаны - для их применения необходимо создание полных формальных моделей всех компонентов.
Тема диссертационной работы посвящена актуальной проблеме интеграционного тестирования на уровне интеграции компонентов. В диссертации автором разработана технология создания систем интеграционного тестирования на основе применения теоретических основ инсерционного программирования и метода проверки на моделях.
2. Цель диссертационной работы заключается в разработке комплекса технологических процедур и инструментальных средств интеграционного тестирования ПО, разрабатываемого на языках формальных спецификаций, процедурных или объектно-ориентированных языках программирования. Разработанный комплекс процедур должен обеспечивать сокращение трудозатрат и времени на фазе интеграционного тестирования при отсутствии регрессии качества создаваемого ПО.
Для достижения цели в работе решены задачи:
- анализа существующих методов и инструментария интеграционного тестирования, определение их недостатков и преимуществ;
- построения модели взаимодействия системы и интегрируемого компонента с возможностью обеспечения контроля построенной модели для ее последующей верификации;
- разработки технологической цепочки интеграционного тестирования программного обеспечения, включающей в себя комплекс взаимосвязанных технологических процедур;
- проверки работоспособности предложенных методик и инструментальных средств на четырех проектах.
Разработка и результаты решения этих задач выносятся на защиту.
3. Предметом исследования являются методы и инструментарий интеграционного тестирования программного обеспечения, для которого задана спецификация на формальном языке, либо реализация на процедурном или объектно-ориентированном языке.
4. Методы исследования. В диссертации используется теория атрибутных традиционных систем и принципы инсерционного программирования, теория агентов и сред.
5. Обоснованность и достоверность полученных результатов обусловлена корректным использованием теории инсерционного программирования; совпадением результатов по достижению качества программного обеспечения, полученных
различными методами; положительными результатами использования предложенных методов и средств в реальных проектах; и положительным опытом эксплуатации программного обеспечения, интеграционное тестирование которого осуществлялось с использованием предложенных технологических процедур.
6. Научные результаты и их новизна. В диссертации разработаны методологические основы технологии создания систем интеграционного тестирования. Суть этих результатов сводится к следующему.
1. Предложен механизм верификации взаимодействия формализованного компонента и системы на основе теории агентов и сред. Механизм позволяет проводить интеграционные проверки на стадии контроля и интерпретации спецификаций.
2. Впервые разработана модель интерфейса взаимодействия системы и компонента в терминах базовых протоколов, для чего построены интеграционное множество базовых протоколов, среда для погружения и функция погружения. Для данной модели разработан механизм верификации с использованием теории инсерционного программирования.
3. Формализован процесс определения интерфейсов взаимодействия для формальных, процедурных и объектно-ориентированных языков. Разработан соответствующий инструментарий, автоматизирующий построение взаимодействующих сущностей для процедурных и объектно-ориентированных языков программирования.
4. Разработан процесс выделения взаимодействующих регионов кода для процедурных и объектно-ориентированных языков программирования, позволяющий идентифицировать области кода, отвечающие за взаимодействие.
5. На базе взаимодействующих регионов кода разработан метод построения модели взаимодействия в терминах базовых протоколов и метод создания модели для случая формализованных компонентов. Предложенные методы обеспечивают построение модели взаимодействия в соответствии с созданной теоретической моделью (п.2).
6. Предложена методика верификации модели взаимодействия с использованием разработанного механизма и существующего инструментария. Предложена методика автоматической генерации и выполнения тестов на целевую платформу с учетом особенностей построенной модели.
7. Практическая значимость работы. На базе полученных научных результатов разработан комплекс технологических процедур и программных средств, предназначенных для интеграционного тестирования программного обеспечения. Комплекс технологических процедур и поддерживающие программные средства используются для интеграционного тестирования программных компонентов, разрабатываемых на формальных, процедурных и объектно-ориентированных языках
(Basic Protocols (MSC), C, С++, Java).
Применение созданной технологии интеграционного тестирования позволило в среднем сократить время интеграционного тестирования на 30%.
8. Апробация работы. Основные результаты и выводы диссертации докладывались на конференции "Технологии Microsoft в теории и практике программирования" в 2007 г, на международной научной конференции "121h International Olympiad on Automatic Control" (СПб, 2008 г.), конференции "Motorola Technology Day" (СПб, 2007 г.). По материалам диссертации опубликовано 5 печатных работ, в том числе статья в издании из перечня ВАК, где изложены основные результаты работы.
9. Внедрение. Разработанная технология интеграционного тестирования внедрена в ЗАО "Моторола ЗАО", ФГУП НПП «Сигнал» и использована при разработке учебно-методического материала СПбГПУ по курсу «Теоретические основы технологии программирования» на кафедре "Информационных и управляющих систем". Практическое использование представляемых на защиту результатов подтверждено соответствующими актами о внедрении.
10. Структура и объем работы. Работа содержит введение, 4 главы и заключение. Объем работы 165 страниц, количество иллюстраций 58, список использованной литературы содержит 94 наименования.
2. СОДЕРЖАНИЕ РАБОТЫ
В первой главе диссертации на основе анализа литературных источников исследованы основные методы интеграционного тестирования и верификации. Составлена классификация подходов к проведению интеграционного тестирования по различным критериям и проведён сравнительный анализ промышленных инструментальных средств интеграционного тестирования. Проанализированы существующие формальные подходы к задаче интеграционной верификации и математический аппарат моделей программ.
Анализ показал, что традиционные подходы к интеграционному тестированию классифицируются по временным затратам и по порядку интеграции компонентов. Выбор подхода интеграционного тестирования, как правило, осуществляется на этапе планирования проекта и основывается на размере и типе проекта, а также на требованиях к качеству тестируемого продукта.
Формальные методы верификации для задач интеграционного тестирования характеризуются моделью описания функциональности ПО и методами интерпретации модели. Большинство из рассмотренных методов верификации используется, как правило,
для верификации полной модели программного продукта, содержащего все требуемые компоненты, что серьезно затрудняет применение рассмотренных формальных методов.
Существующий инструментарий интеграционного тестирования, в подавляющем большинстве случаев, имеет широкую область применения и позволяет проводить другие виды тестирования - например, модульное и/или системное, что позволяет использовать один инструмент на всех фазах тестирования в рамках одного проекта. Выбор инструмента интеграционного тестирования, как правило, определяется типом проекта и целевым языком программирования.
Итак, на основе проведенного анализа сделаны следующие выводы:
• Интеграционное тестирование является ключевым процессом разработки программного обеспечения. Поиск и устранение интеграционных ошибок требуют значительных трудозатрат.
• Ручные подходы к интеграционному тестированию сложно автоматизировать с использованием существующих методов и средств, ввиду необходимости разработки вспомогательных функций и заглушек.
• Инструментарий для интеграционного тестирования многообразен, но большинство инструментов применимы только после интеграции всех компонентов. Некоторые инструменты предоставляют возможность проведения интеграционных проверок до интеграции компонентов, в свою очередь, требуя создания полной спецификации компонента и системы, что характеризуется высокой трудоемкостью в промышленных проектах.
Полученные результаты анализа позволили установить отсутствие и необходимость создания эффективных технологий для построения систем интеграционного тестирования промышленных программных продуктов.
Во второй главе сформулирована и разработана модель интеграционного тестирования, базирующаяся на принципах инсерционного программирования и описывающая среду для интеграционного контроля спецификаций; разработано интеграционное множество базовых протоколов с соответствующей функцией погружения.
В рамках теории атрибутных традиционных систем алгебра размеченных поведений представляет собой тройку - <17,Ь,А>. Основным множеством является множество поведений ~и,Ь- множество атрибутных разметок и А - множество действий. Определены следующие операции: префиксинг а.и, недетерминированный выбор и+у, операция разметки (а: у) е £/ : поведения V е V атрибутной разметкой аеЬ, и другие операции, необходимые для определения отношений между поведениями.
Основная идея инсерционного программирования заключается в следующем - на основании поведений строятся агенты, которые затем погружаются в среду, являющуюся некоторым агентом. Среда осуществляет контроль и позволяет анализировать свойства прогруженных в нее агентов. Агент - это элемент алгебры размеченных поведений и при некоторых допущениях может быть представлен в следующем виде: и = ^ at ,ul + е„, где
je/
at- размеченное или простое действие, и, - поведение, е,— константное поведение
(например, а. ± или А - состояние успешного завершения). Таким образом, агент представляется в виде суммы поведений, которые, в свою очередь, могут быть также представлены в виде суммы других поведений (до тех пор, пока поведение не окажется
Другое важное понятие инсерционного программирования - определение среды. Средой Е является агент над множеством действий среды вместе с функцией погружения. Функцией погружения Ins среды, является функция двух аргументов: Ins(e,u) = е[и]. Первый аргумент е является поведением среды, второй аргумент является поведением агента над множеством действий А в заданном состоянии и. Результатом погружения является новое поведение данной среды.
В данной работе разработана среда интеграционного контроля и верификации погружаемых агентов на основе среды, предложенной А.А.Летичевским. Разработанная среда е представляет собой четверку е = (O,S,Y,0), в случае отсутствия добавленных агентов или выражение вида ф<,,и2,...,«„], где е-пустая среда, а и1,и1,...,и„ -погруженные процессы. Функция О осуществляет контроль над сигналами или событиями, например, она контролирует, что все посланные сигналы были приняты. Функция S контролирует выполнение условий объектами, участвующими в процессе. Множество Y содержит объекты процессы, которые инициализированы и могут использоваться в процессах. Функция в осуществляет интеграционный контроль в соответствии со словарем внешних функций. Создание функции в, и ее использование совместно с О, Л', К является отличительной особенностью разработанной в диссертации среды.
Описанные в работе правила переходов среды являются механизмом верификационного и интеграционного контроля погружаемых агентов. Правила работают следующим образом: если при разборе поведения агента встречается действие, то оно в зависимости от состояний среды (0,S, Y,0) и типа действия либо переведет среду в новое состояние(то есть продолжится ее разбор), либо разбор остановится ввиду
интеграционного несоответствия сигнала или ошибочности логики (например, прием сообщения, которое еще не было отправлено). В общем случае, изменение состояния
разработанной среды можно представить в виде следующей формулы: б ——^—"> б', где с - действие погружаемого процесса, на основании которого возможно осуществить переход среды интеграционного контроля. Применение различных модификаций функции погружения позволяет конфигурировать процесс контроля агента, например, функция может лишь нотифицировать об интеграционной ошибке без прекращения разбора агента.
Таким образом, контроль формальной спецификации, описывающей новую функциональность, позволяет убедиться в их согласованности с системой, в которую планируется интеграция. За счет введенных настроек среды достигнута возможность проведения проверки совместимости новой функциональности с системой уже на стадии контроля спецификаций.
Также во второй главе разработано представление и методы анализа интеграционного множества базовых протоколов.
Базовый протокол представляет собой выражение вида \/х(а —>< и > /?), где х -список (типизированных) параметров, а и Р - формулы базового языка, и - процесс протокола (вполне определенное поведение). Базовый протокол может рассматриваться как формула темпоральной логики, выражающая тот факт, что если (для подходящих значений параметров) состояние системы имеет разметку, удовлетворяющую условию а, то процесс и может быть инициирован, и после его завершения разметка будет удовлетворять условию р. Система, удовлетворяющая этому условию, называется реализацией системы базовых протоколов.
Для создания реализации системы базовых протоколов, описывающей взаимодействие компонента и системы, в работе введены понятия компонентных и системных базовых протоколов. Компонентные базовые протоколы описывают поведение компонента, в том числе при его взаимодействии с системой. Системные базовые протоколы описывают поведение системы, в том числе при ее взаимодействии с компонентой. Для определения компонентных и системных базовых протоколов, описывающих / - интерфейс взаимодействия или его часть, был разработан формат формул для предусловия рге(1), процесса ргос(1) и постусловия ро$((1) интеграционного базового протокола.
В данном случае наиболее важно предусловие, так как именно оно определяет возможность применения базового протокола в описании поведения системы и компонента:
ргес(1)~ разметка состояния системы, в которой участвуют сущность «система» и компонентные сущности, которая определяется:
1. Значениями переменных SYS_STATE и COMP STATE. Искусственно введенные переменные для отслеживания состояния системы и компонента, в большинстве случаев принимают два значения - ACTIVE и NONE.
2. Глобальными переменными, используемыми как системой, так и компонентными сущностями.
3. Разметкой компонентных сущностей.
Аналогично определяется pres(I) - разметка состояния системы, в которой участвуют сущность «компонент» и системные сущности.
В работе показано, что разметка системных и компонентных сущностей не влияет на применение интеграционных компонентных и системных базовых протоколов соответственно (при использовании описанной разметки). Если разметка описывает только глобальные переменные (включая SYS_STATE и COMP_STATE), то применение системного протокола обеспечит возможность применения соответствующего компонентного базового протокола. Верно и обратное: если применим компонентный протокол, то применим системный протокол. Тогда Sa - поведение системы в состоянии а, реализующее систему интеграционных базовых протоколов, представимо в виде следующей суммы:
где ргосс(/) и procs(/) - процессы компонентного и системного базового протокола соответственно; postc(/) и posts(/) - постусловия компонентного и системного базового протокола соответственно; Tr(a,postc(/)) и Tr(a,posts(/))-предикатные трансформеры, позволяющие учитывать изменение разметки после применения протокола. На основании полученных результатов показано, что при добавлении интеграционных базовых протоколов к компонентным базовым протоколам, описывающих поведение всего компонента, множество поведенческих трасс расширяется,
А
+
\
Tr(«,postc(/))
Tr(a,posts(/)) )'
что позволяет использовать интеграционные базовые протоколы при верификации компонента отдельно от системы.
На основе определения интеграционных базовых протоколов и 5"0 в работе определена среда и соответствующая функция погружения, позволяющая проводить верификацию базовых протоколов в рамках теории инсерционного программирования (контролируя погруженные базовые протоколы).
Таким образом, во второй главе разработаны теоретические методы интеграционной верификации. Данные методы позволили определить методологические и программные задачи, реализованные в третьей главе. Конструктивность и эффективность предложенных теоретических подходов показана впоследствии при их реализации и пилотировании на реальных программных проектах.
В третьей главе разработана концепция технологии интеграционного тестирования при интеграции нового компонента в существующую программную
систему, основанная на разработанных теоретических методах верификации с использованием инструментов автоматизации тестирования и верификации (рис. 1) для языков спецификаций
гО;
Методика идентификации и описания интерфейса взаимодействия
таблицы взаимодейств.
гО-
~Г РЦМС ТЯАСЕ/ОВЗЕСТ ТЯАСЕ
г©
Методика идентификации и описания регионов интерфейса взаимодействия
] Гк1.ос\мо1ж J
внеш/внутр регионы
[О
Методика построения модели интерфейса взаимодействия
Гвр"мор1Р1еп |Гк1.ос\«стк j
Методика автоматизированной генерации интеграционных тестов
-Гтдт
поведенческие трассы
гО-
I
Методика верификации
модели интерфейса взаимодействия
базовые протоколы
I VI« |
Рис. 1. Технология интеграционного тестирования, включающая фазу верификации интерфейса взаимодействия.
Сплошными рамками (рис.1) отмечены самостоятельно разработанные инструменты. Пунктирными рамками отмечены существующие инструменты, использованные для реализации соответствующих методик. Общая схема разработанной технологии и область взаимодействия изображены на рис. 2.
Зона тестирования
КОМПОНЕНТ
Область Системы, отвечающая за взаимодействие (Внутренние регионы)
Область Компонента, отвечающая за взаимодействие (Внешние регионы)
Рис. 2. Схема метода. Область взаимодействия.
В качестве основных этапов создания систем интеграционного тестирования определены:
1. Идентификация и описание интерфейса взаимодействия системы и компонента - определения взаимодействующих сущностей и их свойств. Идентификация производится на основании исходного кода компонента и системы (процедурные или объектно-ориентированные языки программирования) или на основании формальных спецификаций компонента и системы. В результате данного этапа создаются таблицы взаимодействия. Разработанные инструменты позволяют автоматизировать построение таблиц для языков С, С++ и Java.
2. Идентификация и описание регионов взаимодействующего кода -выявление и формализация контекста, используемого интерфейсом. Для определения формата контекста введены понятия внутреннего и внешнего региона. Пусть некоторый системный артефакт вызывается компонентом. Внутренним регионом INTS(ARTIFACT _NAME) артефакта интерфейса взаимодействия, называется область системы, в которой данный артефакт реализован. Внешним регионом ЕХТС (ARTIFAСТ _ NAME) называется область компонента, которая определяет параметры вызова внешней функции (переменной, класса) и параметры, которые изменяются после вызова. Набор INTS и ЕХТС всех взаимодействующих артефактов представляет собой интерфейс взаимодействия I. Формат INTS(ARTIFACT_NAME) и EXTc(ARTIFACT _NAME) описан в работе, для идентификации регионов в исходном коде используется кодоанализатор Klocwork.
3. Построение модели интерфейса взаимодействия на основе описания регионов взаимодействующего кода (или спецификаций, если система и компоненты
формализованы) для последующего использования в процессе верификации и тестирования. Разработан метод ручного построения спецификаций на основе исходного кода. Разработан инструмент автоматизации преобразования построенных спецификаций в соответствии с требуемым форматом (разметка pres(l) и ргес(1)).
4. Верификация модели взаимодействия. Для верификации построенной модели используется инструмент VRS. Для настройки окружения и начальных условий используется разметка компонентных базовых протоколов - ргес(1) и Tr(a,postc(/)). В результате верификации генерируются трассы, и составляется отчет о верификации. На основании результатов отчета разработчиком ПО производится исправление ошибок.
5. Генерация интеграционных тестов. На основании сгенерированных трасс инструментом TAT с расширениями генерируются тесты на целевом языке с использованием созданного кодогенерирующего шаблона, учитывающего особенности построенной модели.
Совокупность комплекса разработанных технологических процедур и инструментария поддержки, составляющая технологию интеграционного тестирования, показала свою практическую применимость в ходе пилотирования при разработке промышленных программных продуктов.
В четвертой главе представлены результаты проверки работоспособности разработанного комплекса методик в реальных проектах. При этом для каждого проекта применялись методики, соответствующие постановке проектной задачи.
Разработанная детальная схема применения созданной технологии при наличии исходного кода и отсутствии полной спецификации компонента и системы приведена на рис. 3.
Рис. 3. Схема применения технологии интеграционного тестирования.
На основе кода системы и интегрируемого компонента (1) и (2), с использованием предложенных методик, определяются взаимодействующие регионы кода (3), которые формализуются пользователем вручную или с использованием инструментария (4), и попадают на верификационный инструментарий (5). По результатам верификации происходит корректировка модели и если необходимо кода (6). Результат верификации в виде трасс (7), обеспечивающих полное покрытие исследуемой функциональности системы или в виде контр-примеров (трасс демонстрирующих расхождение со спецификациями), поступает на вход инструмента тестирования (8), который порождает множество интеграционных тестов (9). На последнем этапе код системы тестируется на основе порождённого множества тестов (10).
В процессе применения технологии были собраны экспериментальные данные (табл.1) для следующих проектов:
1. DPortal - проект по разработке и интеграции компонента, реализующего встроенную ленту новостей для мобильного телефона.
2. SMS Service - проект интеграции модуля SMS (Short Message Service) в ПО мобильного устройства.
3. VMS_6 - проект по разработке и интеграции новой функциональности в существующую социальную сеть.
4. SiemS - проект по созданию формальных спецификаций новой функциональности специальной аппаратуры связи.
Экспериментальные данные, характеризующие трудоемкость разработанной технологии и ручного подхода, представлены в табл. 2.
Табл. 1. Характеристики применения технологии в промышленных и учебных проектах.
Критерий
Проект
Число внешних вызовов
DPortal
"54"
SMS Service
TÔT
VMS_6
IT
Число внешних базовых протоколов
72
147
16
Число внутренних базовых протоколов
162
291
20
Количество найденных недетерминизмов
15
57
Количество исправленных ошибок
12
49
Количество верификационных циклов для полного устранения ошибок
Экспериментальные данные, характеризующие трудоемкость технологии и ручного подхода, представлены в табл. 2.
Табл. 2. Трудоемкость разработанной методики и ручного интеграционного тестирования для различных проектов.
—- ____ Проект Критерий ----- DPortal SMS Service VMS_6 SiemS
Число внешних вызовов 54 103 15 10
Трудоемкость создания модели 50 ч/д 40 ч/д 4 ч/д Зч/д
Трудоемкость верификации (выполнение циклов верификации и другие активности) 7 ч/д 17 ч/д 2 ч/д 2 ч/д
Суммарно для разработанной методики 57 ч/д 47 ч/д 6 ч/д 5 ч/д
Время на ручную разработку тестов 54 ч/д 22 ч/д 5 ч/д 5 ч/д
Трудоемкость ручного тестирования (выполнение циклов тестирования и другие активности) 27 ч/д 52 ч/д Зч/д 2 ч/д
Суммарно для ручного подхода 82 ч/д 74 ч/д 8 ч/д 7 ч/д
Приведенные данные показывают, что для проектов из различных областей наблюдаются общие тенденции. Так, например, очевидно, что с ростом количества внешних вызовов, растёт количество базовых протоколов представляющих формальную модель взаимодействия. На рис. 4 приведён график зависимости количества созданных базовых протоколов от количества внешних вызовов.
о а. с ф 3 со о
п
га ш
500 ■
400
300 -
200 "
100
• Внешние базовые протоколы Внутренние базовые протоколы -Все базовые протоголы -Линейная зависимость
20 40 60 (
Внешние вызовы
100
120
Рис. 4. График зависимости числа базовых протоколов от числа внешних вызовов.
Из графика видно, что при небольшом объеме интерфейса взаимодействия количество протоколов взаимодействия прямо пропорционально числу внешних вызовов. Однако при росте числа внешних вызовов, число базовых протоколов начинает расти медленнее. Таким образом, рост количества протоколов в больших проектах уменьшается, что позволяет говорить о сокращении объёма данных поступающих на вход верификатора и увеличении эффективности использования технологии с ростом объема интерфейса взаимодействия.
Кумулятивный график трудоемкости разработанной методики и ручного подхода представлен на рис. 5.
80
- 60 л
Б
§ 40
1 20
Внешние вызовы
120
-Разработанная методика - - - -Ручной подход
Рис. 5. Кумулятивная трудоемкость разработанной методики и ручного интеграционного тестирования.
В работе показано применение технологии в проекте ОРоПа1, где основной особенностью применения является проведение процесса тестирования с использованием полученных на стадии верификации поведенческих сценариев (для других проектов
генерация и выполнение тестов не проводились). Это позволило увеличить количество найденных дефектов до 22 (на стадии верификации было найдено 12 дефектов в коде). Таким образом, с учетом трудозатрат, подтверждается вывод о большем выигрыше при применении технологии на всех стадиях разработки, начиная со стадии дизайна кода и заканчивая регрессионным тестированием. Параллельно с применением описанных методик, проводилось ручное интеграционное тестирование. Полученные результаты применения традиционного подхода позволили утверждать об эффективности разработанной методики (подавляющее большинство дефектов, найденных при ручном подходе, были найдены с использованием разработанной технологии).
По результатам проведения апробации и анализа применения технологии в промышленных и учебных проектах сделаны следующие выводы:
1. Технология может быть эффективно использована в проектах различной сложности от небольших проектов с объемом требований в несколько десятков, до больших промышленных проектов с объемом требований в несколько тысяч.
2. Наибольшая эффективность использования технологии достигается в случае её использования на протяжении всего цикла производства ПО, начиная со стадии дизайна кода и заканчивая стадиен тестирования продукта.
3. Эффективность использования технологии возрастает с ростом сложности проекта за счёт более медленного роста объема используемого формального описания и появления большего количества, потенциально опасных, с точки зрения возникновения дефектов, мест в формальных спецификациях интерфейса взаимодействия.
4. Сокращение времени интеграционного тестирования за счёт применения технологии по сравнению с ручным подходом колеблется от 27% до 35% в зависимости от сложности построения модели взаимодействия.
3. ОСНОВНЫЕ РЕЗУЛЬТАТЫ И ВЫВОДЫ
В диссертационной работе решена научная задача создания систем интеграционной верификации и тестирования для производства промышленного ПО, позволяющая существенно сократить трудозатраты и время на процесс интеграционного тестирования, при отсутствии регрессии качества разрабатываемого ПО.
Основными результатами диссертационной работы являются:
1. Формальная модель описания интерфейса взаимодействия системы и компонента, положенная в основу функционирования систем интеграционной верификации промышленных программных продуктов, разрабатываемых на формальных языках
спецификаций, объектно-ориентированных или процедурных языках программирования. Механизм верификации, использующий среду и функцию погружения для контроля модели взаимодействия в соответствии с принципами инсерционного программирования, позволил определить основу предлагаемого комплекса технологических процедур.
2. Методологические основы создания систем интеграционной верификации и тестирования в виде комплекса взаимосвязанных технологических процедур, ориентированных на поддержку следующих этапов технологии интеграционной верификации и тестирования:
- идентификация интерфейса взаимодействия для определения взаимодействующих сущностей системы и компонента, разрабатываемых на языках формальных спецификаций, объектно-ориентированных или процедурных языках программирования;
- определение взаимодействующих регионов кода компоненты и системы на основании сущностей, составляющих интерфейс взаимодействия;
- создание модели взаимодействия в терминах базовых протоколов (интеграционного множества базовых протоколов) на основании взаимодействующих регионов кода;
- верификация модели взаимодействия, в соответствии с разработанным механизмом интеграционной верификации; автоматическая генерация и выполнение тестов на целевой платформе на основании полученных поведенческих трасс взаимодействия.
3. Программный комплекс поддержки технологии интеграционной верификации и тестирования, обеспечивающий этапы создания систем интеграционной верификации и тестирования.
4. Оценка эффективности разработанных технологических процедур, на базе использования в программных проектах различной сложности в ЗАО "Моторола ЗАО", ФГУП НПП "Сигнал" и ряде учебных проектов, позволила установить снижение трудозатрат на интеграционное тестирование на 27% - 35% по сравнению с традиционным ручным интеграционным тестированием. Результаты, полученные в процессе выполнения проектов с использованием
разработанной технологии, позволили сделать выводы о работоспособности и эффективности методов и средств технологии интеграционной верификации и тестирования программного обеспечения.
4. СПИСОК ПУБЛИКАЦИЙ ПО ТЕМЕ ДИССЕРТАЦИИ
1. Тихомиров В.А., Котляров В.П. Верификация программного обеспечения при интеграции новой функциональности в существующую систему // Научно-технические ведомости СПбГПУ .— СПб: Изд-во Политехи. Ун-та, 2008 .— №5(65): Информатика. Телекоммуникации. Управление.— С. 20-26. (издание из перечня ВАК)
2. Тихомиров В.А., Котляров В.П. Подход к тестированию наведенных
дефектов // Системное программирование. Вып. 3: Сб. Статей / Под ред. А.Н.Терехова, Д.Ю.Булычева. — СПб: Изд-во СПбГУ, 2008. — С. 109-120.
3. V.Tikhomirov Software Components interaction: Analysis and Defect Management// 12th International Student Olympiad on Automatic Control. — СПб: Изд-во Политехи. Ун-та, 2008. — С.112-117.
4. В.А.Тихомиров, В.П.Котляров Подход к тестированию программной системы расширенной новой функциональностью // Вычислительные, измерительные и управляющие системы. Сборник научных трудов. — СПб: Изд-во Политехи. Ун-та, 2008 — С. 82-91.
5. В.А.Тихомиров, В.П.Котляров Метод тестирования взаимодействий в программной среде // Технологии MICROSOFT в теории и практике программирования. Материалы межвузового конкурса-конференции студентов, аспирантов и молодых ученых Северо-запада. — СПб: Изд-во Политехи. Ун-та, 2008.— С. 77-79.
Лицензия ЛР № 020593 от 07.08.97
Подписано в печать 02.06.2009. Формат 60x84/16. Усл. печ. л. 1,25. Уч.-изд. л. 1,25. Тираж 100. Заказ 4518Ь.
Отпечатано с готового оригинал-макета, предоставленного автором, в типографии Издательства Политехнического университета. 195251, Санкт-Петербург, Политехническая ул., 29.
Оглавление автор диссертации — кандидата технических наук Тихомиров, Владимир Александрович
ВВЕДЕНИЕ.
1 ОБЗОР ЛИТЕРАТУРЫ: ТЕХНОЛОГИИ И ИНСТРУМЕНТЫ РЕШЕНИЯ ПОСТАВЛЕННОЙ ЗАДА ЧИ.
1.1 Виды тестирования.
1.2 Интеграционное тестирование.
1.2.1 Задачи и г\ели интеграционного тестирования.
1.2.2 Методы интеграционного тестирования.
1.2.2.1 Классификация существующих методов интеграционного тестирования по структурному принципу.
1.2.2.2 Классификация существующих методов интеграционного тестирования по временному критерию.
1.2.2.3 Сравнительный анализ методов интеграционного тестирования.
1.2.3 Сравнение программных инструментов интеграционного тестирования.
1.3 Формальные методы интеграционного тестирования.
1.3.1 Нотации описания систем.
1.3.2 Дедуктивные методы верификации.
1.3.3 Методы проверки на модели (model checking).
1.3.3.1 Метод State-based тестирования.
1.3.3.2 Метод Event-based тестирования.
1.3.3.3 Метод, основанный на теории частичных спецификаций.
1.3.4 Сравнение формальных методов интеграционного тестированияЪЪ
1.4 ВЫВОДЫ.
2 МОДЕЛЬ ВЗАИМОДЕЙСТВИЯ НОВОГО КОМПОНЕНТА И СУЩЕСТВУЮЩЕЙ СИСТЕМЫ В РАМКАХ ТЕОРИИ АТРИБУТНЫХ ТРАНЗИЦИОННЫХ СИСТЕМ И БАЗОВЫХ ПРОТОКОЛОВ.
2.1 Атрибутные транзиционные системы.
2.1.1 Абстракции атрибутных транзиционных систем.
2.2 Агенты и среды.
2.2.1 Среда для интеграгрюнного контроля спецификаций.
2.3 Базовые протоколы.
2.4 Реализация системы базовых протоколов.
2.5 Язык базовых протоколов.
2.6 Конкретные реализации системы базовых протоколов для интеграционного анализа.
2.7 Интеграционное множество базовых протоколов.
2.8 Функция погружения интеграционного множества базовых протоколов.
2.9 ВЫВОДЫ. л.
3 РЕАЛИЗАЦИЯ КОМПЛЕКСА МЕТОДИК ИНТЕГРАЦИОННОГО: ТЕСТИРОВАНИЯ.
3.1 Методика идентификации интерфейса взаимодействия и его описания
3.1.1 Методика идентификации и описания интерфейса взаимодействия для процедурных языков программирования.
3.1.2 Методика идентификации и описания интерфейса взаимодействия для объектно-ориентированных языков программирования.
3.1.3 Инструменты автоматизации идентификации и описания, интерфейса взаимодействия для процедурных и объектно-ориентированных языков.
3.1.4 Методика идентификации и описания интерфейса взаимодействия для языков спецификаций.
3.2 Методика идентификации и описания регионов взаимодействующего кода.
3.3 Методика построения модели для интерфейса взаимодействия на основе описания регионов взаимодействующего кода.
3.3.1 Методика построения модели интерфейса взаимодействия для процедурных и объектно-ориентированных языков.
3.4 Методика построения модели для интерфейса.взаимодействия;.на основе спецификаций Системы и Компонента.
3.5 Методика верификации построенной модели.
3. б Методика автоматической генерации тестов для построенной модели
3.7 ВЫВОДЫ.
4 РЕЗУЛЬ ТА ТЫ ПРИМЕНЕНИЯ РАЗРАБОТАННЫХ МЕТОДОВ И СРЕДСТВ ИНТЕГРАЦИОННОГО ТЕСТИРОВАНИЯ И ВЕРИФИКАЦИИ
4.1 Состав экспериментального комплекса.
4.2 Применение технологии на примере разработки мобильного телефона (объектно-ориентированный язык).
4.3 Применение технологии при разработке мобильного устройства (процедурный язык).
4.4 Применение технологии для учебных проектов.
4.5 Общая статистика и анализ результатов применения технологии.
4.6 ВЫВОДЫ.
Введение 2009 год, диссертация по информатике, вычислительной технике и управлению, Тихомиров, Владимир Александрович
1. Актуальность работы. На сегодняшний день, в связи с постоянным увеличением объема разрабатываемых программных систем, процесс интеграции новых компонентов в уже существующую версию программного продукта становится ключевым. Это связано с тем, что процесс разработки программного компонента часто проводится независимо от других компонентов, поэтому работоспособность всей системы зависит от того, как будет проводиться интеграция компонентов. Например, при интеграции нового программного компонента в платформу мобильного устройства зачастую требуется более пятидесяти циклов интеграции и тестирования системы.
Возрастающая сложность программного обеспечения (ПО) в промышленных технологиях производства требует применения интеграционного тестирования, для реализации которого необходимы:
- поддержка интеграционного тестирования, начиная с ранних этапов разработки;
- организация распределенного интеграционного тестирования для поддержки распределенной разработки ПО;
- использование методов, предоставляющих детализированные результаты тестирования;
- локализация области, содержащей найденную ошибку;
- поддержка автоматической генерации и выполнения тестов;
- организация тестирования на разных этапах разработки с обеспечением преемственности (переиспользования) уже полученных результатов и наработок.
Таким образом, при постоянном сокращении сроков разработки ПО и увеличении его сложности, необходимо создание методик и инструментальных средств, которые позволили бы проводить интеграционное тестирование в заданные сроки и с определенным качеством.
Проведенный анализ предметной области показал, что текущее применение формальных подходов к интеграционному тестированию затруднено по причине отсутствия методов и средств настройки на тестирование интерфейса взаимодействия, в отрыве от тестирования всей системы. В существующих подходах интеграционного тестирования требуется создание полной модели всех компонентов, что для промышленных систем является очень трудоемким процессом и сложно применимым в процессе разработки ПО. Среди проанализированного инструментария для интеграционного тестирования существует очень ограниченный набор средств, позволяющий проводить тестирование на уровне интеграции компонентов и обнаруживать ошибки на ранних стадиях разработки ПО. Стоит отметить, что такие инструменты обладают тем же недостатком, что и формальные подходы, на которых они основаны - для их применения необходимо создание полных формальных моделей всех компонентов.
Тема диссертационной работы посвящена актуальной проблеме интеграционного тестирования на уровне интеграции* компонентов. В диссертации автором разработана технология создания систем интеграционного тестирования на основе применения теоретических основ инсерционного программирования и метода проверки на моделях.
2. Цель диссертационной работы заключается в разработке комплекса технологических процедур и инструментальных средств интеграционного тестирования ПО, разрабатываемого на языках формальных спецификаций, процедурных или объектно-ориентированных языках программирования. Разработанный комплекс процедур должен обеспечивать сокращение трудозатрат и времени на фазе интеграционного тестирования при отсутствии регрессии качества создаваемого ПО .
Для достижения цели в работе решены задачи:
- анализа существующих методов и инструментария интеграционного тестирования, определение их недостатков и преимуществ; построения модели взаимодействия системы и интегрируемого компонента с возможностью обеспечения контроля построенной модели для ее последующей верификации; разработки технологической цепочки интеграционного тестирования программного обеспечения, включающей в себя комплекс взаимосвязанных технологических процедур; проверки работоспособности предложенных методик и инструментальных средств на четырех проектах.
Разработка и результаты решения этих задач выносятся на защиту.
3. Предметом исследования,являются методы и инструментарий интеграционного тестирования программного обеспечения, для которого задана спецификация на формальном языке, либо реализация на процедурном или объектно-ориентированном языке.
4. Методы исследования. В диссертации используется теория атрибутных транзиционных систем и принципы инсерционного программирования, теория агентов и сред.
5. Обоснованность и достоверность полученных результатов обусловлена корректным использованием теории. инсерционного программирования; совпадением результатов по достижению качества программного обеспечения, полученных различными методами; положительными результатами использования предложенных методов и средств в реальных проектах, и положительным опытом эксплуатации программного обеспечения, интеграционное тестирование которого осуществлялось с использованием предложенных технологических процедур.
6. Научные результаты и их новизна. В диссертации разработаны методологические основы технологии создания систем интеграционного тестирования. Суть этих результатов сводится к следующему.
1. Предложен механизм верификации взаимодействия формализованного компонента и системы на основе теории'агентов и сред. Механизм позволяет проводить интеграционные проверки на стадии контроля и интерпретации спецификаций.
2. Впервые разработана модель интерфейса взаимодействия системы и компонента в терминах базовых протоколов, для чего построены интеграционное множество базовых протоколов, среда для погружения и функция погружения. Для данной модели разработан механизм верификации с использованием теории инсерционного программирования.
3. Формализован процесс определения интерфейсов взаимодействия для формальных, процедурных и объектно-ориентированных языков. Разработан соответствующий инструментарий, автоматизирующий построение взаимодействующих сущностей для процедурных. и объектно-ориентированных языков программирования.
4. Разработан процесс выделения взаимодействующих регионов кода для процедурных и объектно-ориентированных языков программирования, позволяющей идентифицировать области кода, отвечающие за взаимодействие.
5. На базе взаимодействующих регионов кода разработан метод построения, модели взаимодействия в терминах базовых протоколов и метод создания модели для случая формализованных компонентов. Предложенные методы обеспечивают построение модели взаимодействия в соответствии с созданной теоретической моделью (п.2).
6. Предложена методика верификации модели взаимодействия с использованием разработанного механизма и существующего инструментария. Предложена методика автоматической генерации и выполнения тестов на целевую платформу с учетом особенностей построенной модели.
7. Практическая значимость работы. На базе полученных научных результатов разработан комплекс технологических процедур и программных средств, предназначенных для интеграционного тестирования программного обеспечения. Комплекс технологических процедур и поддерживающие программные средства используются для интеграционного тестирования программных компонентов, разрабатываемых на формальных, процедурных и объектно-ориентированных языках (Basic Protocols (MSC), С, С++, Java).
Применение созданной технологии интеграционного тестирования позволило в среднем сократить время интеграционного тестирования на 30%.
8. Апробация работы. Основные результаты и выводы диссертации докладывались на конференции "Технологии Microsoft в теории и практике программирования" в 2007 г, на международной научной конференции "12th International Olympiad on Automatic Control" (СПб, 2008 г.), конференции "Motorola Technology Day" (СПб, 2007 г.). По материалам диссертации опубликовано 5 печатных работ, в том числе статья в издании из перечня ВАК, где изложены основные результаты работы.
9. Внедрение. Разработанная технология интеграционного тестирования внедрена в ЗАО "Моторола ЗАО", ФГУП НПП «Сигнал» и использована при разработке учебно-методического материала СПбГПУ по курсу «Теоретические основы технологии программирования» на кафедре "Информационных и управляющих систем". Практическое использование представляемых на защиту результатов подтверждено соответствующими актами о внедрении.
10. Структура и объем работы. Работа содержит введение, 4 главы и заключение. Объем работы 165 страниц, количество иллюстраций 58, список использованной литературы содержит 94 наименования.
Заключение диссертация на тему "Анализ взаимовлияний при интеграции новой функциональности в существующую систему средствами верификации и тестирования"
4.6 ВЫВОДЫ
По результатам проведения апробации и анализа применения технологии в промышленных и учебных проектах можно сделать следующие выводы:
1. Технология может быть эффективно использована в проектах различной сложности от небольших проектов с объёмом требований в несколько десятков, до больших промышленных проектов с объёмом требований в несколько тысяч.
2. Наибольшая эффективность использования технологии возникает в случае её использования на протяжении всего цикла производства ПО, начиная со стадии дизайна кода и заканчивая стадией тестирования продукта.
3. Эффективность использования технологии возрастает с ростом сложности проекта за счёт эффективности формального описания и появления большего количества, потенциально опасных с точки зрения возникновения дефектов, мест в спецификациях интерфейса взаимодействия
4. Сокращение времени разработки за счёт применения технологии колеблется от 27% до 35% в зависимости от сложности построения модели взаимодействия.
5 Заключение
Целью работы являлось создание технологии интеграционной верификации и тестирования для производства промышленного- ПО, позволяющей существенно сократить трудозатраты и время на процесс интеграционного тестирования. Результатом исследований, проведенных в работе, является технология интеграционной верификации, включающая комплекс взаимосвязанных методик и средства инструментальной поддержки. Технология, основана на принципах инсерционного программирования и алгебры поведений, что обеспечивает широкую область применения разработанных методик.
Для достижения цели в работе решены следующие задачи: анализа существующих методов и инструментария интеграционного тестирования, определение их недостатков и преимуществ; построения модели взаимодействия системы и интегрируемого компонента с возможностью обеспечения контроля построенной модели для ее последующей верификации; разработки технологической цепочки интеграционного тестирования программного обеспечения, включающей в себя комплекс взаимосвязанных технологических процедур; проверки работоспособности предложенных методик и инструментальных средств на четырех проектах.
Результат решения поставленных задач следующий.
1. Предложен механизм верификации взаимодействия формализованного компонента и системы на основе теории агентов и сред. Механизм позволяет проводить интеграционные проверки на стадии контроля и интерпретации спецификаций.
2. Впервые разработана модель интерфейса взаимодействия, системы и, компонента в терминах базовых протоколов, для чего построены интеграционное множество базовых протоколов, среда для погружения и функция погружения. Для данной модели разработан механизм верификации с использованием теории инсерционного программирования.
3. Формализован процесс определения интерфейсов взаимодействия для формальных, процедурных и объектно-ориентированных языков. Разработан соответствующий инструментарий, автоматизирующий построение взаимодействующих сущностей для процедурных и объектно-ориентированных языков программирования.
4. Разработан процесс выделения взаимодействующих регионов кода для процедурных и объектно-ориентированных языков программирования, позволяющей идентифицировать области кода, отвечающие за взаимодействие.
5. На базе взаимодействующих регионов кода разработан метод построения модели взаимодействия в терминах базовых протоколов и метод создания модели для случая формализованных компонентов. Предложенные методы обеспечивают построение модели взаимодействия в соответствии с созданной теоретической моделью (п.2).
6. Предложена методика верификации модели взаимодействия с использованием разработанного механизма и существующего инструментария. Предложена методика автоматической генерации и выполнения тестов на целевую платформу с учетом особенностей построенной модели.
Эффективность разработанных методик была подтверждена экспериментально, путем сравнения с результатами ручного тестирования проектов. Эксперименты показали, что разработанная технология позволяет обнаружить большинство ошибок, которые были найдены при ручном тестировании.
На базе полученных научных результатов был разработан комплекс программных средств, предназначенных для интеграционного тестирования. Программный комплекс был использован в компании Motorola и в научно-производственном предприятии «Сигнал» в 4 программных проектах по разработке мобильных устройств и телекоммуникационных станций. Созданные методики и программные средства могут быть использованы для обеспечения качества реактивных систем в широком спектре встроенных применений.
Общий объем разработанного программного обеспечения, вошедшего в программный комплекс поддержки технологии интеграционной верификации и тестирования, составил около 250 килобайт исходного кода на языках С, Perl и Java.
По материалам диссертационной работы опубликовано 5 печатных работ, из них одна работа опубликована в издании, входящем в перечень ВАК. Разработанная технология автоматизации тестирования внедрена в ЗАО "Моторола ЗАО", ФГУП НПП «Сигнал» и использована при разработке учебно-методического материала СПбГПУ по курсу " Теоретические основы технологий программирования" на кафедре "Информационных и управляющих систем".
Практические результаты, полученные в ходе работы, позволяют сделать вывод, что поставленные задачи решены, и констатировать достижение цели всей работы. По своей значимости работа относится к новым технологическим средствам поддержки процесса разработки промышленного программного обеспечения, позволяющим повысить качество разрабатываемого ПО.
Библиография Тихомиров, Владимир Александрович, диссертация по теме Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
1.Е.Н.Бритвина,С.Г.Грошев, А.Монахов, А.К.Петренко, О.Л.Петренко Тестирование на основе моделей, ж. «Открытые системы» №9/03
2. Коул Д., Томас Г., МакДональд М., Спарджеон Р., Принципы тестирования ПО, ж. Открытые Системы #02/98
3. Брукс Ф. Как проектируются и создаются программные комплексы. М.: Наука, 1979
4. IEEE standard glossary of Software Engineering Terminology, IEEE Std 610.12-1990
5. Котляров В.П., Пинаев Д.В. Методы и средства автоматизации тестирования программного проекта. Санкт-Петербург, 1998.6. http://matlab.exponenta.ni/stateflow/bookl/l .php
6. А.В. Хорошилов Спецификация и тестирование систем с асинхронным интерфейсом, ИСП РАН,http://www.citforum.ru/SE/testing/asynchronousinterface/)
7. Beizer В. Software Testing Techniques. ITP, 1990. 550 pp.
8. Синицын C.B., Налютин Н.Ю Верификация программного обеспечения, БИНОМ. Лаборатория знаний, Интернет-университет информационных технологий, 2008
9. Hong Zhu, Xudong Не An Observational Theory of Integration Testing for Component-Based Software Development, compsac,pp.363, 25th Annual International Computer Software and Applications Conference (COMPSAC'Ol), 2001
10. Hashim, N.L.; Ramakrishnan, S.; Schmidt, H.W. Architectural Test Coverage for Component-Based Integration Testing, Quality Software, 2007. QSIC apos;07. Seventh International Conference on Volume , Issue, 11-12 Oct. 2007 Page(s):262 -26
11. Marinissen, E.J.; Zorian, Y.; Kapur, R.; Taylor, Т.; Whetsel, L Towards a standard for embedded core test: an example IEEE International Test Conference, 1999.
12. Burnstein I, Practical Software Testing. A process-oriented approach, Springer-Verlag, New York, 2003, 732 p
13. Э. Йордан, С. Аргила Структурные модели в объектно-ориентированном анализе и проектировании, М.:Лори, 1999
14. Майерс Г. Искусство тестирования программ, М.: Финансы и статистика, 1982
15. Murphy G., Townsend P., Wong P Experiences with cluster and class testing, Communications of the ACM, Vol. 37, No. 9, 1994', pp. 39-47
16. Г.М.Лодыженский Технология "клиент-сервер" и мониторы транзакций Открытые системы, N 3, 1994
17. The Standish Group. "Client-Server Goes Business Critical. Transaction Processing Monitors, Key to Next Generation of Applications".
18. Tasktop Tech] http://tasktop.com/blog/eclipse/the-tasktop-and-interface21 -partnership-people-technologies-and-eclipse
19. ITKO] http ://www. itko. com/site/products/soatesting.j sp
20. Netvantage] http://www.netvantagetech.com/FunctionalTester/
21. Ranorex] http://www.ranorex.com/products/ranorex-studio-test-automation-environment.html
22. STOpen Source] http://staf.sourceforge.net/docs.php
23. Atomic Object] http://www.atomicobject.com/pages/Svstem+Testing+in+Ruby
24. Eclipse] http://www.eclipse.org/tptp/home/documents/index.php
25. SPIRAN] http://www.unitesk.com/
26. Sun Microsystems] http://faban.sunsource.net/28. Rational]http://www.ibm.com/software/awdtools/developer/rose/enterprise/index.html29. vrs] VRS User's Manual © 2001-2005 MOTOROLA
27. Boehm B. Software Engineering Economic Prentice-Hall,Inc, N.J. 1981. -767 pp.
28. Брукс Ф. Мифический человеко-месяц или как создаются программные системы
29. СПб.: Символ-Плюс, 1999. 304с.
30. Непомнящщий В.А., Рякин О.М. Прикладные методы верификации программ //М.:Радио и связь, 1988.
31. M.Y. Vardi and P. Wolper, An Automata-Theoretic Approach to Automatic Program Verification, Proc. First IEEE Symp. Logic in Computer Science, pp. 322-331, 1986
32. IEEE standard glossary of Software Engineering Terminology, IEEE Std 610.12-1990
33. E. N. Yourdon Classics in software engineering. Yourdon Press, 1979.
34. E.N. Yourdon Writings of the Revolution, Yourdon Press, 1982.
35. С. A. R. Hoare. An axiomatic basis for computer programming. Communications of the ACM, 12(10):576-585, October 1969.
36. R. W. Floyd. Assigning meaning to programs. Proc. of Symposium in Applied Mathematics. J. T. Schwartz, ed. Mathematical Aspects of Computer Science, 19:19-32, 1967.
37. E. A. Dijkstra. Discipline of programming. Prentice Hall, 1976.
38. Русский перевод: Э. Дейкстра. Дисциплина программирования. М.: Мир, 1978.
39. S. Owicki, D. Gries. Verifying properties of parallel programs: an axiomatic approach. Communications of the ACM, 19(5), 1976.42. http://www.cs.utexas.edu/~moore/acl2/.
40. M. Kaufmann, J. S. Moore. Design Goals for ACL2. Proc. of 3-rd International School and Symposium on Formal Techniques in Real Time and Fault Tolerant Systems, pp. 92-117, 1994.44. http://www.eprover.org/.
41. B. Beckert, R. Hahnle, P. H. Schmitt, eds. Verification of Object-Oriented Software: The KeY Approach. Springer, 2007.
42. A. Riazanov, A. Voronkov. The Design and Implementation of Vampire. AI Communications, 15(2):91-110, September 2002.50. http://www.mpi-inf.mpg.de/~hillen/waldmeister/.51. http://combination.cs.uiowa.edu/Darwin/.52. http://www.cs.miami.edu/~tptp/CASC/.
43. E. Denney, B. Fischer, J. Schumann. An Empirical Evaluation of Automated Theorem Provers in Software Certification. International Journal on Artificial Intelligence Tools, 15(1):81-107, 2006.
44. Э. Кларк, О. Грамберг, Д. Пелед. Верификация моделей программ: Model Checking. М.: МЦНМО, 2002.
45. И. Б. Бурдонов, А. В. Демаков, А. С. Косачев, А. В. Максимов, А. К. Петренко. Формальные спецификации в технологиях обратной инженерии и верификации программ. Труды Института системного программирования, 1999 г., том 1, стр. 35-47
46. Е.Ю.Парийская. Сравнительный анализ математических моделей и подходов к моделированию и анализу непрерывно-дискретных систем. // Дифференциальные уравнения и процессы управления, 1997, №1, с. 91120.
47. Manna. Z., Pnueli A.: The Temporal Logic of Reactive and Concurrent Systems. Springer-Verlag, 1992.
48. W. K. Chan, T. Y. Chen, Т. H. Tse An Overview of Integration Testing Techniques for Object-Oriented Programs Proceedings of the 2nd ACIS
49. Annual International Conference on Computer and Information Science (ICIS 2002)
50. S. Lyer and S. Ramesh. Apportioning: a technique for efficient reachability analysis of oncurrent object-oriented programs. IEEE Transactions on Software Engineering, 27(1): 1037-1056,2001.
51. S. C. Cheung and J. Kramer. Context constraints for compositional reachability analysis. ACM Transactions on Software Engineering and Methodology, 5(4):334-377, 1996.
52. P.V. Koppol, R. H. Carver, and K.-C. Tai. Incremental integration testing of concurrent programs. IEEE Transactions on Software Engineering, 28(6):607— 623, 2002.
53. R. H. Carver and K.-C. Tai. Use of sequencing constraints for specification-based testing of concurrent programs. IEEE Transactions on Software Engineering, 24(6):471-490, 1998.
54. Easterbrook S., Callahan J. Formal Methods for Verification and Validation of partial specifications: A Case Study. // Virginia University symposium,- vol. 1, 1997
55. Johnsen E.B., Owe O. Composition and Refinement for Partial Object Specifications. Parallel and Distributed Processing Symposium, 2002, P.210-217.
56. Hendrix J., Clavel M., Meseguer J. A Sufficient Completeness Reasoning Tool for Partial Specifications. // Proceedings of the 16h International Conference on Rewriting. LNCS, vol.3467, 2005
57. Тихомиров B.A., Котляров В.П. Подход к тестированию наведенных дефектов. Системное программирование. Вып. 3: Сб. Статей, Изд-во СПбГУ, 2008
58. J.A.Bergstra, A.Ponse, S.A.Smolka, (Eds) Handbook of Process Algebra, North-Holland, 2001
59. R.Milner, A Calculus of Communicating Systems, LNCS 92, 1980.
60. D.Park, Concurrency and automata on infinite sequences, LNCS 104, 1981.
61. A.Letichevsky, D.Gilbert, A Model for Interaction of Agents and Environments, In D.Bert, C.Choppy, P.Moses (Eds), Resent Trends in Algebraic Development Techniques, LNCS 1827, 311-328, 1999.
62. A.Letichevsky, D.R.Gilbert, Agents and environments, 1st International scientific and practical conference on programming, Glushkov Institute of Cybernetics, National Academy of Sciences of Ukraine, Proceedings 2-4 September, 1998.
63. Ю.Г. Карпов Верификация распределенных алгоритмов и протоколов, курс лекций.
64. A.A.Letichevsky, D.R.Gilbert, A general theory of action languages, Cybernetics and System Analysis, 1, 1998, p. 16-36.
65. Distilled Second Edition A Brief Guide to the Standard Object Modeling Language Martin Fowler, Kendall Scott Publisher: Addison Wesley Second Edition August 18, 1999 ISBN: 0-201-65783-X, 224 pages
66. ITU Recommendation Z.120. Message Sequence Charts (MSC), 11/99
67. ITU-T z.100 (08/2002)// Telecommunication standardization sector of UTI, 202c.http://www.itu.int/rec/recommendation.asp?type=items&lang=e&parent=T-REC-Z. 100-200208-1
68. А.А.Летичевский, Ю.В.Капитонова, В.А.Волков, А.А.Летичевский (мл.), С.Н.Баранов, В.П.Котляров. Спецификация систем с помощью базовых протоколов, 2005
69. A.Letichevsky, D.Gilbert, A Model for Interaction of Agents and Environments, In D.Bert, C.Choppy, P.Moses (Eds), Resent Trends in Algebraic Development Techniques, LNCS 1827, 311-328, 1999
70. Mauw S., Reniers M.A., Operational Semantics for MSC'96. Computer Networks and ISDN systems, 1998
71. Code Analyzer http://sourceforge.net/proiects/codeanalyze-gpl/
72. IntelliJ IDEA http://www.ietbrains.com/idea/features/codeanalysis.html82. http://www.appperfect.com/products/codeanalvzer.html
73. TAT+Beta User's Manual © 2001-2005 MOTOROLA
74. Test Central 4.0 User's Manual © 2001-2007 MOTOROLA
75. В. W. Boehm. Software Engineering; R&D Trends and Defense Needs. In R. Wegner, ed. Research. Directions in Software Technology. Cambridge, MA-MIT Press, 1979.
76. Кружков O.A., Ильин, B.B., Карпов A.H., Зыбин К.Г., Салиева М.Н., Paper for. the International! Conference on Circuits and Systems for Communications (IEEE sponsored), MESSAGE SEQUENCE BASED TEST
77. GENERATION VS. MANUAL TEST CONSTRUCTION: PROS AND CONTRAS
78. Настоящий акт составлен о том, что при выполнении проекта по разработке программного обеспечения комплекса специализированной аппаратуры связи были использованы следующие результаты диссертационной работы Тихомирова В.А.:
79. Комплекс взаимосвязанных методик по идентификации, формализации, верификации и тестированию взаимодействия модулей системы.
80. Программные средства поддержки комплекса методик интеграционной верификации и тестирования.
81. Применение разработанной в рамках диссертационной работы технологии интеграционной верификации и тестирования для встроенного ПО мобильных телефонов привело к следующим результатам:
82. Интеграционные ошибки, найденные при ручном тестировании, были * выявлены в процессе верификации модели взаимодействия и выполнениясгенерированного тестового набора.
83. Относительно ручного тестирования достигнуто сокращение трудозатрат в 1,5 раза на проведение процесса интеграционного тестирования.
84. Выигрыш применения технологии относительно «ручного подхода с учетом трудозатрат на системы интеграционно! шная с 3-4-х циклов тестирования.1. Руководитель проекта
-
Похожие работы
- Интегрированная технология обеспечения качества программных продуктов с помощью верификации и тестирования
- Встречное тестирование высокопроизводительных микропроцессоров
- Методы автоматизации построения поведенческой модели программного продукта на основе UCM-спецификаций
- Метод тестирования производительности и корректности микропроцессоров при помощи нацеленных тестовых программ
- Методы и средства верификации баз знаний в интегрированных экспертных системах
-
- Системный анализ, управление и обработка информации (по отраслям)
- Теория систем, теория автоматического регулирования и управления, системный анализ
- Элементы и устройства вычислительной техники и систем управления
- Автоматизация и управление технологическими процессами и производствами (по отраслям)
- Автоматизация технологических процессов и производств (в том числе по отраслям)
- Управление в биологических и медицинских системах (включая применения вычислительной техники)
- Управление в социальных и экономических системах
- Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
- Системы автоматизации проектирования (по отраслям)
- Телекоммуникационные системы и компьютерные сети
- Системы обработки информации и управления
- Вычислительные машины и системы
- Применение вычислительной техники, математического моделирования и математических методов в научных исследованиях (по отраслям наук)
- Теоретические основы информатики
- Математическое моделирование, численные методы и комплексы программ
- Методы и системы защиты информации, информационная безопасность