Научная статья на тему 'Совершенствование процессов интеграции и тестирования программного обеспечения аппаратно-программных комплексов'

Совершенствование процессов интеграции и тестирования программного обеспечения аппаратно-программных комплексов Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
590
84
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
НЕПРЕРЫВНАЯ ИНТЕГРАЦИЯ / АППАРАТНО-ПРОГРАММНЫЙ КОМПЛЕКС / ВЕРИФИКАЦИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ / СИСТЕМА КАЧЕСТВА / CONTINUOUS INTEGRATION / HARDWARE-SOFTWARE SYSTEM / SOFTWARE VERIFICATION / QUALITY ASSURANCE SYSTEM

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Кузьмина Ирина Валентиновна, Семенова Ольга Владимировна

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Кузьмина Ирина Валентиновна, Семенова Ольга Владимировна

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

IMPROVEMENT OF SOFTWARE INTEGRATION AND TESTING PROCESSES OF HARDWARE-SOFTWARE SYSTEMS

In creating hardware-software systems, some problems arise which are caused by the specific nature of the designed systems and peculiarities of their development. Some measures are proposed to improve the software development process with the purpose of enhancing the quality of the systems.

Текст научной работы на тему «Совершенствование процессов интеграции и тестирования программного обеспечения аппаратно-программных комплексов»

Исследования и разработки распределённых программных систем Вестник Нижегородского университета им. Н.И. Лобачевского, 2010, № 5 (2), с. 393-395

УДК 658.562

СОВЕРШЕНСТВОВАНИЕ ПРОЦЕССОВ ИНТЕГРАЦИИ И ТЕСТИРОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ АППАРАТНО-ПРОГРАММНЫХ КОМПЛЕКСОВ

© 2010 г. И.В. Кузьмина, О.В. Семенова

Нижегородский госуниверситет им. Н.И. Лобачевского sova@nifti.unn.ru

Поступила в редакцию 28.05.2010

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

Ключевые слова: непрерывная интеграция, аппаратно-программный комплекс, верификация программного обеспечения, система качества.

Введение Одним из путей повышения качества и сни-

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

Действующие в настоящее время стандарты [1] регламентируют все этапы жизненного цикла АПК и призваны служить основой для создания надежных аппаратно-программных систем. При создании многокомпонентных АПК с целью снижения временных и трудовых ресурсов требуется максимально автоматизировать процессы разработки для обеспечения возможности согласованного поведения множества компонентов и выполнения требований стандартов. Быстрые изменения базовых технологий (как для аппаратных, так и для программных компонентов) не позволяют сформулировать все требования на начальных этапах разработки АПК, специалисты вынуждены работать в условиях постоянно изменяющихся требований. Тесная взаимосвязь разрабатываемого программного обеспечения (ПО) и оборудования на всех этапах разработки от проектирования до испытаний приводит к необходимости постоянного согласования интерфейсов аппаратной и программной частей комплекса, так как изменение интерфейса одной из них может привести к отказу работы всего комплекса.

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

Анализ состояния процесса разработки с точки зрения обеспечения качества

Накопленный опыт разработки АПК позволил проанализировать процесс разработки и выявить ряд проблем.

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

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

3. Отсутствие разделения функционального и модульного тестирования компонентов, при этом контроль качества тестов возлагался непосредственно на разработчиков.

4. Отсутствие контроля качества покрытия требований к ПО шагами методики проверки и контроля исправления зафиксированных ошибок.

5. Отсутствие описания автоматических функциональных тестов, и, как следствие, отсутствие контроля качества процедуры верификации и качества ПО.

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

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

Совершенствование процесса разработки ПО

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

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

ными временными потерями, сократились временные затраты процесса разработки ПО.

Дальнейшее развитие процесса интеграции связано с ростом сложности и объема поставленных задач, необходимостью разработки компонентов комплекса на нескольких платформах (Windows, QNX, Linux) при одновременном ограничении временных и человеческих ресурсов. Для упрощения организации и управления разработкой внедрено дополнительное программное обеспечение IBM Rational ClearCase LT, ClearQuest, RequisitePro и выделен отдельный процесс управления требованиями.

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

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

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

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

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

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

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

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

Заключение

Совершенствование процессов интеграции и тестирования ПО позволяет своевременно выявлять и устранять дефекты уже на этапе разработки, а не эксплуатации или сопровождения. Например, при работе над проектом коллектива из 18 разработчиков за месяц на сборочном сервере регистрируется порядка 120 отчетов о проблемах, а количество ошибок на 1000 строк кода, обнаруженных при разработке программных компонентов, увеличилось в 10 раз, что дает уверенность в том, что вероятность выявления дефектов на этапе эксплуатации стала гораздо ниже.

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

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

Список литературы

1. Информационная технология. Автоматизированные системы. Основные положения. Сборник стандартов. М.: Изд-во стандартов, 2009.

2. Дюваль П.М. Непрерывная интеграция. Улучшение качества программного обеспечения и снижение риска. М.: Изд-во «Вильямс», 2008. 240 с.

3. Блэк Р. Ключевые процессы тестирования. Планирование, подготовка, проведение и совершенствование. М.: Изд-во «Лори», 2006. 544 с.

IMPROVEMENT OF SOFTWARE INTEGRATION AND TESTING PROCESSES OF HARDWARE-SOFTWARE SYSTEMS

I. V. Kuzmina, O. V. Semenova

In creating hardware-software systems, some problems arise which are caused by the specific nature of the designed systems and peculiarities of their development. Some measures are proposed to improve the software development process with the purpose of enhancing the quality of the systems.

Keywords: continuous integration, hardware-software system, software verification, quality assurance system.

i Надоели баннеры? Вы всегда можете отключить рекламу.