Введение к работе
1. Актуальность работы. На сегодняшний день, в связи с постоянным увеличением объема разрабатываемых программных систем, процесс интеграции новых компонентов в уже существующую версию программного продукта становится ключевым. Это связано с тем, что процесс разработки программного компонента часто проводится независимо от других компонентов, поэтому работоспособность всей системы зависит от того, как будет проводиться интеграция компонентов. Например, при интеграции нового программного компонента в платформу мобильного устройства зачастую требуется более пятидесяти циклов интеграции и тестирования системы.
Возрастающая сложность программного обеспечения (ПО) в промышленных технологиях производства требует применения интеграционного тестирования, для реализации которого необходимы:
поддержка интеграционного тестирования, начиная с ранних этапов разработки;
организация распределенного интеграционного тестирования для поддержки распределенной разработки ПО;
использование методов, предоставляющих детализированные результаты тестирования;
локализация области, содержащей найденную ошибку;
поддержка автоматической генерации и выполнения тестов;
организация тестирования на разных этапах разработки с обеспечением преемственности (переиспользования) уже полученных результатов и наработок.
Таким образом, при постоянном сокращении сроков разработки ПО и увеличении его сложности, необходимо создание методик и инструментальных средств, которые позволили бы проводить интеграционное тестирование в заданные сроки и с определенным качеством.
Проведенный анализ предметной области показал, что текущее применение формальных подходов к интеграционному тестированию затруднено по причине отсутствия методов и средств настройки на тестирование интерфейса взаимодействия, в отрыве от тестирования всей системы. В существующих подходах интеграционного тестирования требуется создание полной модели всех компонентов, что для промышленных систем является очень трудоемким процессом и сложно применимым в процессе разработки ПО. Среди проанализированного инструментария для интеграционного тестирования существует очень ограниченный набор средств, позволяющий проводить тестирование на уровне интеграции компонентов и обнаруживать ошибки на ранних стадиях разработки ПО. Стоит отметить, что такие
инструменты обладают тем же недостатком, что и формальные подходы, на которых они основаны - для их применения необходимо создание полных формальных моделей всех компонентов.
Тема диссертационной работы посвящена актуальной проблеме интеграционного тестирования на уровне интеграции компонентов. В диссертации автором разработана технология создания систем интеграционного тестирования на основе применения теоретических основ инсерционного программирования и метода проверки на моделях.
2. Цель диссертационной работы заключается в разработке комплекса
технологических процедур и инструментальных средств интеграционного тестирования
ПО, разрабатываемого на языках формальных спецификаций, процедурных или объектно-
ориентированных языках программирования. Разработанный комплекс процедур должен
обеспечивать сокращение трудозатрат и времени на фазе интеграционного тестирования
при отсутствии регрессии качества создаваемого ПО.
Для достижения цели в работе решены задачи:
анализа существующих методов и инструментария интеграционного тестирования, определение их недостатков и преимуществ;
построения модели взаимодействия системы и интегрируемого компонента с возможностью обеспечения контроля построенной модели для ее последующей верификации;
разработки технологической цепочки интеграционного тестирования программного обеспечения, включающей в себя комплекс взаимосвязанных технологических процедур;
проверки работоспособности предложенных методик и инструментальных средств на четырех проектах.
Разработка и результаты решения этих задач выносятся на защиту.
Предметом исследования являются методы и инструментарий интеграционного тестирования программного обеспечения, для которого задана спецификация на формальном языке, либо реализация на процедурном или объектно-ориентированном языке.
Методы исследования. В диссертации используется теория атрибутных транзиционных систем и принципы инсерционного программирования, теория агентов и сред.
Обоснованность и достоверность полученных результатов обусловлена корректным использованием теории инсерционного программирования; совпадением результатов по достижению качества программного обеспечения, полученных
различными методами; положительными результатами использования предложенных методов и средств в реальных проектах; и положительным опытом эксплуатации программного обеспечения, интеграционное тестирование которого осуществлялось с использованием предложенных технологических процедур.
6. Научные результаты и их новизна. В диссертации разработаны
методологические основы технологии создания систем интеграционного тестирования.
Суть этих результатов сводится к следующему.
Предложен механизм верификации взаимодействия формализованного компонента и системы на основе теории агентов и сред. Механизм позволяет проводить интеграционные проверки на стадии контроля и интерпретации спецификаций.
Впервые разработана модель интерфейса взаимодействия системы и компонента в терминах базовых протоколов, для чего построены интеграционное множество базовых протоколов, среда для погружения и функция погружения. Для данной модели разработан механизм верификации с использованием теории инсерционного программирования.
Формализован процесс определения интерфейсов взаимодействия для формальных, процедурных и объектно-ориентированных языков. Разработан соответствующий инструментарий, автоматизирующий построение взаимодействующих сущностей для процедурных и объектно-ориентированных языков программирования.
Разработан процесс выделения взаимодействующих регионов кода для процедурных и объектно-ориентированных языков программирования, позволяющий идентифицировать области кода, отвечающие за взаимодействие.
На базе взаимодействующих регионов кода разработан метод построения модели взаимодействия в терминах базовых протоколов и метод создания модели для случая формализованных компонентов. Предложенные методы обеспечивают построение модели взаимодействия в соответствии с созданной теоретической моделью (п.2).
Предложена методика верификации модели взаимодействия с использованием разработанного механизма и существующего инструментария. Предложена методика автоматической генерации и выполнения тестов на целевую платформу с учетом особенностей построенной модели.
7. Практическая значимость работы. На базе полученных научных результатов
разработан комплекс технологических процедур и программных средств,
предназначенных для интеграционного тестирования программного обеспечения.
Комплекс технологических процедур и поддерживающие программные средства
используются для интеграционного тестирования программных компонентов,
разрабатываемых на формальных, процедурных и объектно-ориентированных языках
(Basic Protocols (MSC), C, C++, Java).
Применение созданной технологии интеграционного тестирования позволило в среднем сократить время интеграционного тестирования на 30%.
Апробация работы. Основные результаты и выводы диссертации докладывались на конференции "Технологии Microsoft в теории и практике программирования" в 2007 г, на международной научной конференции "12th International Olympiad on Automatic Control" (СПб, 2008 г.), конференции "Motorola Technology Day" (СПб, 2007 г.). По материалам диссертации опубликовано 5 печатных работ, в том числе статья в издании из перечня ВАК, где изложены основные результаты работы.
Внедрение. Разработанная технология интеграционного тестирования внедрена в ЗАО "Моторола ЗАО", ФГУП НПП «Сигнал» и использована при разработке учебно-методического материала СПбГПУ по курсу «Теоретические основы технологии программирования» на кафедре "Информационных и управляющих систем". Практическое использование представляемых на защиту результатов подтверждено соответствующими актами о внедрении.
10. Структура и объем работы. Работа содержит введение, 4 главы и заключение.
Объем работы 165 страниц, количество иллюстраций 58, список использованной
литературы содержит 94 наименования.