Проблемы выбора программного обеспечения для управления качеством в проектах итеративного цикла разработки
Автор: Шашкова Ю.А.
Журнал: Теория и практика современной науки @modern-j
Рубрика: Математика, информатика и инженерия
Статья в выпуске: 5 (23), 2017 года.
Бесплатный доступ
Статья посвящена проблемам выбора программного обеспечения для разработчиков, занимающихся разработкой программного обеспечения по итеративным моделям. В статье рассматриваются основные задачи верификации и методы, а также инструменты для тестирования программных продуктов.
Верификация, валидация, итеративные модели, инструменты тестирования, управление качеством, программное обеспечение
Короткий адрес: https://sciup.org/140271465
IDR: 140271465
Текст научной статьи Проблемы выбора программного обеспечения для управления качеством в проектах итеративного цикла разработки
В настоящее время проблема выбора программного обеспечения для верификации в рамках жизненного цикла ПО, имеет большое значение. Строго говоря, структуру жизненного цикла разрабатываемого программного обеспечения определить довольно трудно, однако существуют две наиболее часто встречающиеся модели жизненного цикла, водопадная и итеративная. В рамках итеративной модели управление проектом разработки ориентируется на управление качеством этого проекта. В данной модели, отдельные виды деятельности не привязаны друг к другу и могут выполняться в любых комбинациях. Тут необходимо получать актуальные данные о качестве проекта, а также о качестве исполнения проекта на промежуточных этапах. Именно через оценку качества может восприниматься продвижение к целям проекта, а также к переходу на другую итерацию. Именно на основании оценки качества продукта может также приниматься решение о передаче продукта заказчику или же о закрытии проекта.
В связи с этим, огромную роль в проектах итеративного цикла разработки играют процессы верификации продуктов.
Основные задачи верификации следующие:
-
- Выявление дефектов (ошибок, недоработок, неполноты и пр.) в разработке ПО (требований, проектных решений, документации или кода), что позволяет устранять их и поставлять пользователям и заказчикам более правильное и надежное ПО.
-
- Выявление наиболее критичных и наиболее подверженных ошибкам частей создаваемой или сопровождаемой системы.
-
- Контроль и оценка качества ПО во всех его аспектах.
-
- Предоставление всем заинтересованным лицам информации о
текущем состоянии проекта и характеристиках его результатов.
Методы верификации ПО крайне разнообразны, и делятся на следующие группы: экспертиза, статистический анализ, формальные методы, динамические методы, синтетические методы.
Т«к»-ычк»аа зесппртим
Экспертиза
1Обща»
СкВОЗКМЙ контроль Инснекцик
Аудит
ОрГДНКДДЦ ИОН ИДИ ЭКСЛвртИЫ
Экспертиз а удобства иотогть зоеыния
1 Специализирава моае |- -4 Экспо рт аза защищенности
Анал из tea ист» ар хитектуры
I Проверка правил корректности
Д 1га.-А у^еггов ПО ШЭбЛОНВМ
Верификации
Формальные методы
Проверка моаевем •
Проверка сда-ласлванмети 4
^ Мониторинг «...„.М.,
Динамические Mei оды 1— ,
- Тестирование ।— Имитационное тестирование
/-J ТесгириеимиВ на основе мод или и [■
........ X..............""V Монитора формальных свойств |С‘**е/
Синтетические методы С— - -:^—". - —*-- . .. .
|| 1 1 • - Статическим анализ формальным свойств ^’“‘’
*Х| Синтетические методы структуреотс' тес^нроваиии V
Рисунок. Методы верификации программного обеспечения
Остановимся подробнее на двух наиболее часто используемых методах из группы динамических методов, это мониторинг и тестирование.
В рамках динамических методов, анализ и оценка свойств ПО строится на результатах реальной работы системы или работы некоторых ее моделей и прототипов.
Следует отметить, что для применения данных методов, необходимо уже иметь готовую систему или ее прототип, таким образом, их применение возможно только на более поздних этапах проекта. Кроме того, данные методы требуют разработки методик и сценариев тестирования, что может стать достаточно трудозатратной частью проекта. Однако, динамические методы не позволяют выявить, например, неудобства в использовании и сопровождении системы, однако очень хорошо выявляют критичные ошибки программных систем, последствия которых могут привести к большим трудозатратам на исправление данных ошибок впоследствии.
Применение таких методов требует тщательной подготовки. Чтобы применить данные методы верификации, необходима предварительная подготовка и выбор программного обеспечения для этого.
В настоящее время, существует много программных продуктов для автоматизации тестирования. Чтобы выбрать оптимальный продукт для конкретных целей, необходимо определить цель, с которой проводится тестирование или мониторинг.
Если необходим мониторинг, то есть оценка поведения системы, наблюдение за системой и проверка ее соответствия проектным требованиям, то, как правило, здесь существует большой выбор готового ПО, однако данное ПО способно измерять лишь один из атрибутов качества: производительность, защищенность сети и т.д. Наиболее широко используемыми инструментами мониторинга являются профилировщики, входящие в состав инструментов разработки ПО (например, Visual Studio Team System Profiler, интегрированный с Microsoft Visual Studio). Из распространяемых отдельно профилировщиков можно отметить свободно распространяемый Valgrind, коммерческие Rational Purify Plus и Intel VTune Performance Analyzer .
Инструменты автоматизации тестирования делятся на следующие классы.
-
- Инструменты управления информацией о тестах. Эти инструменты собирают данные о тестах и их связях с другими артефактами
разработки, предоставляя доступ к ней тестировщикам, инженерам по качеству, руководству проектов. Среди них наиболее известны TestManager от IBM/Rational и TestDirector от HP/Mercury.
-
- Инструменты сбора данных о тестовом покрытии. Такие инструменты позволяют измерять достигнутое при тестировании покрытие кода, обычно по критериям покрытия инструкций и/или ветвлений.
-
- Каркасы выполнения тестов. В рамках такого каркаса тесты запускаются как исполнимые модули или оформляются как программы, использующие API каркаса для мониторинга их работы. Наиболее известными инструментами такого типа являются инструменты для автоматизации модульного тестирования семейства xUnit.
-
- Инструменты доступа к специализированным интерфейсам позволяют работать с этими интерфейсами в тестах с помощью обращений к программному интерфейсу.
-
- Инструменты тестирования пользовательского интерфейса. Такие инструменты чаще всего основаны на записи действий пользователя (заполнения полей форм, нажатия кнопок, выбора пунктов меню и пр.) и возможности их воспроизведения. Эти инструменты обычно нацелены на проверку работы интерфейсов определенного типа — Windows GUI, GUI библиотек KDE или Gnome для Linux, WebUI. Наиболее известны из них IBM/Rational Robot, HP/Mercury QuickTest Professional, Empirix e-Tester.
-
- Инструменты автоматизации построения тестов на основе моделей позволяют автоматизировать выбор тестовых ситуаций, создание оракулов и оценку полноты тестирования. Подробнее они рассматриваются в разделе, посвященном тестированию на основе моделей.
-
- Специализированные инструменты тестирования протоколов предоставляют поддержку работы через программный интерфейс с определенными телекоммуникационными или прикладными протоколами, а также часто и проверку корректности обмена сообщениями в их рамках.
Многие инструменты сочетают в себе функции нескольких из указанных типов, поскольку при проведении тестирования, обычно удобнее пользоваться одним инструментом, чем несколькими. Но тут возникает проблема, связанная с тем, что ПО для тестирования разных модулей может быть очень разнообразно.
Кроме того, тестировщики, работающие проектной команде, часто могут пользоваться разным ПО для тестирования.
Выводы. В настоящее время существует разнообразие методов верификации программного обеспечения, позволяющих определить готовность программного обеспечения к сдаче заказчику, либо к дальнейшей разработке, особенно это актуально в жизненном цикле итеративной разработки, поскольку все ее процессы должны быть ориентированы на качество продукта. Соответственно, существует и большое количество программных продуктов, позволяющих автоматизировать процессы верификации. С этим связаны проблемы выбора соответствующих продуктов для тестирования, и проблемы единообразия продуктов, используемых в процессе разработки на таких проектах. Нет единой методики выбора соответствующей системы, в которой будет вестись все дальнейшее тестирование, и будет организовано получение актуальной информации о ходе тестирования. В связи с этим необходимо создать единый метод выбора программного обеспечения для консолидации всей информации о тестировании и мониторинге на проектах итеративного цикла разработки.
Список литературы Проблемы выбора программного обеспечения для управления качеством в проектах итеративного цикла разработки
- Управление качеством программного обеспечения: учебник / Б.В. Черников. - М.: ИД «ФОРУМ»: ИНФРА-М, 2012. - 240 с.
- IEEE 1012-2004 Standard for Software Verification and Validation. IEEE, 2005.
- ISO/IEC 12207 Systems and software engineering - Software life cycle processes. Geneva, Switzerland: ISO, 2008.