ПЛАНИРОВАНИЕ И СОЗДАНИЕ СИСТЕМЫ УПРАВЛЕНИЯ ЖИЗНЕННЫМ ЦИКЛОМ ОШИБОК ПРИ РАЗРАБОТКЕ ПРОГРАММНОГО ПРОДУКТА Лешко Е.А.
DOI: 10Л2737/15341
Аннотация. Рассматривается задача управления жизненным циклом ошибок в программном обеспечении и существующие пути ее решения. Описаны структура и базовые функции альтернативного решения (разрабатываемой системы).
Ключевые слова: жизненный цикл ошибки, требование, отчет об ошибке.
При работе над проектами по разработке программного обеспечения (ПО) используется ряд инструментов, позволяющих оптимизировать и автоматизировать процесс управления жизненным циклом проекта.
Управление жизненным циклом ошибок в ПО представляет собой важную задачу, результаты решения которой лежат как в сфере тестирования, так и в сфере разработки, повышения качества управления проектом и подготовки отчетности по проекту.
На данный момент существует достаточно много разнообразных платных и бесплатных инструментов, позволяющих управлять жизненным циклом ошибок в программном продукте. Эти инструменты можно использовать при обучении персонала для последующей работы на реальных проектах.
К наиболее известным и распространенным инструментам управления жизненным циклом ошибок в ПО относятся JIRA, Redmine, Trac, Mantis.
Atlassian JIRA - эта система обладает широкой функциональностью, подходит для крупных проектов с большим штатом специалистов по тестированию. Используя JIRA, можно работать под различными операционными системами, создавать и вести «схемы безопасности» для каждого из проектов, планировать рабочий процесс и отслеживать его эффективность. Однако данная система является платной, что ограничивает ее использование при небольшом бюджете проекта или при проведении тренингов.
Redmine - бесплатный open-source инструмент для управления проектами и ошибками в программных продуктах с поддержкой диаграмм Ганта, визуализацией дедлайнов и прогресса по нескольким проектам одновременно. Система условно-бесплатная: желающие могут пожертвовать произвольную сумму в фонд развития проекта или помочь идеями в разработке и дизайне.
Тгас - это открытое ПО, являющиеся одновременно инструментом для управления проектом и системой отслеживания ошибок. Интерфейс Тгас основан на технологии wiki. К возможностям данной системы можно отнести разделение проекта на этапы, контроль выполнения задач, занесение всех изменений по проекту на временную шкалу, поддержку RSS.
Mantis - свободно распространяемая система управления жизненным циклом ошибок в программных продуктах. Она обеспечивает взаимодействие разработчиков с пользователями, позволяет пользователям оформлять сообщения об ошибках и отслеживать дальнейший процесс работы над ними. Система имеет довольно гибкие возможности конфигурирования, что позволяет настраивать её не только для работы над программными продуктами, но и в качестве системы учёта заявок для helpdesk.
Кроме того, IT-компаниями могут создаваться свои инструменты управления жизненным циклом ошибок. При этом необходимо учитывать следующие необходимые особенности функционирования таких систем:
- • поддержка большого количества проектов;
- • удобный и функциональный web-интерфейс;
- • наличие интеграции с системами контроля версий;
- • легкость доработки под нужды компании;
- • легкость установки и сопровождения.
Рассмотрим возможную структуру альтернативного инструмента управления жизненным циклом ошибок при разработке программного продукта.
Система может состоять из 3 основных блоков-хранилищ: хранилище требований, хранилище тест-кейсов (тестов) и хранилище отчетов об ошибках.
Требование (к программному продукту) - описание того, какие функции и с соблюдением каких условий должно выполнять приложение.
Тест-кейс (тест) - набор входных данных, условий выполнения и ожидаемых результатов, разработанный с целью проверки того или иного свойства или поведения программного продукта.
Ошибка в программном продукте - любое несоответствие фактического и ожидаемого результата (согласно требованиям).
Отчет об ошибке - это технический документ, написанный с целью предоставить информацию о проблеме, ее свойствах и последствиях, приоритизировать проблему по важности и скорости устранения, а также помочь программистам обнаружить и устранить источник проблемы.
Центральным блоком системы является хранилище требований. Именно на основе требований в систему вносятся тест-кейсы, каждый из которых связан с требованием, для которого он были написаны. Также с требованиями связан блок отчетов об ошибках. Это позволяет контролировать, к какой функциональности относится ошибка, и даёт направление для выбора регрессионных тестов.
Важной характеристикой подобной системы является получение статистических данных. На первом этапе система подсчитывает количество внесенных требований, тест-кейсов и отчетов об ошибках. Затем по уникальным идентификаторам требований, тест-кейсов и отчетов об ошибках можно проанализировать, какие требования и в каком количестве покрыты тестами, а также, сколько ошибок приходится на требование.
Для ошибок с помощью системы такого типа можно получать аналитические отчеты и статистику. Например, процентное соотношение ошибок по таким их параметрам, как:
- • важность (критическая, высокая, средняя, низкая);
- • приоритет - срочность устранения (критическая, высокая, средняя, низкая);
- • статус (ошибка обнаружена, назначена, исправлена, проверена, открыта заново, отклонена, отложена, открыта, закрыта и т.д.);
- • тип (нереализованная функциональность, некорректная операция, косметический дефект, потеря данных, ошибка локализации, проблема инсталляции (деинсталляции), низкая производительность, крах системы и т.д.).
Такая статистика позволяет понять, на каком этапе находится разработка и тестирование программного продукта, отслеживать его текущее состояние, а также анализировать эффективность работы команд разработчиков и специалистов по тестированию.
Таким образом, разрабатывая свой внутренний программный продукт по управлению жизненным циклом ошибок, компания может, используя опыт и технологии открытых проектов, создать экономичный и эргономичный инструмент, учитывающий свою специфику организации управления проектом и позволяющий оперативно вносить в него изменения.
Лешко Евгений Александрович, студент 5 курса факультета математики и информатики Гродненского государственного университета имени Янки Купалы, г. Гродно, Беларусь
Научный руководитель - Ерёмина Александра Рафаэловна, кандидат физико-математических наук, доцент кафедры системного программирования и компьютерной безопасности Гродненского государственного университета имени Янки Купалы, г. Гродно, Беларусь
УДК 004.67+004.942