Файл: Отладка и тестирование программ: основные подходы и ограничения (РАЗРАБОТКА ПРОГРАММ).pdf
Добавлен: 30.03.2023
Просмотров: 235
Скачиваний: 2
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
Современные процессы разработки программных продуктов ориентируются на их жизненный цикл. Все существующие сегодня стандарты, методики и технологии, так или иначе, характеризуют этапы жизненного цикла не только по функциональному наполнению, но и по содержанию.
Разработка программных систем тесно связана с областью управления проектами, так как любой программный продукт является уникальным результатом. Организация этого процесса напрямую определяет основные характеристики выполнения программного проекта – запланированный бюджет, сроки выполнения, качество выпускаемого продукта [20].
Жизненным циклом программной системы принято называть непрерывный процесс, начинающийся с момента принятия решения о необходимости создания системы и заканчивающийся моментом ее полного изъятия из эксплуатации.
Жизненный цикл представляет собой определенную последовательность этапов, одним из которых является тестирование продукта, полученного на какой-либо стадии. Процесс тестирования позволяет выявлять ошибки в программе в виде некорректно работающего функционала. Для того, чтобы найти истинную причину ошибки (конкретную строчку кода) применяется процесс отладки. После того как ошибка найдена, она может быть устранена, и процесс тестирования вновь будет повторен.
Очевидно, процессы тестирования и отладки являются очень важными при разработке программного обеспечения, что и объясняет актуальность выбранной темы.
Объект исследования данной работы – тестирование и отладка программ.
Предмет исследования – виды тестирования, тестирование надежности, организация процесса тестирования. Финишные этапы разработки программных систем.
Цель работы – описать финишные этапы процесса разработки, а также этап тестирования.
Для достижения данной цели предстоит решить ряд задач:
- проанализировать литературу по заданной теме;
- описать основные термины;
- определить виды тестирования;
- рассмотреть тестирование надежности;
- описать финишные этапы разработки программных систем;
- привести пример отладки и тестирования программного обеспечения.
При написании работы в качестве опорных источников были использованы следующие: И.В. Степанченко – «Методы тестирования программного обеспечения», А.М. Вендров – «Проектирование программного обеспечения». Данный выбор обусловлен большим объемом доступной информации, сосредоточенной именно в этих источниках.
1. РАЗРАБОТКА ПРОГРАММ
Ключевым термином данной сферы является «жизненный цикл программного обеспечения» - это промежуток времени от момента принятия решения о необходимости разработки программного продукта до момента его выхода из эксплуатации [1].
Структура жизненного цикла определяется международным стандартом ISO/IEC 12207:1995 «Information Technology – Software Life Cycle Processes». Согласно данному стандарту под процессом понимается совокупность взаимосвязанных действий, направленных на преобразование входных данных в выходные. Характерными чертами процесса являются:
- поставленные задачи;
- методы решения задач;
- исходные данные;
- результаты работы [9].
Все процессы жизненного цикла можно разделить на три группы (см. рисунок 1):
- основные процессы:
- приобретение;
- поставка;
- разработка;
- эксплуатация;
- сопровождение [2];
- вспомогательные процессы:
- документирование;
- управление конфигурацией;
- обеспечение качества;
- верификация;
Основные процессы
Приобретение
Поставка
Разработка
Эксплуатация
Сопровождение
Вспомогательные процессы
Документирование
Управление конфигурацией
Разрешение проблем
Обеспечение качества
Верификация
Аттестация
Совместная оценка
Аудит
Организационные процессы
Управление
Создание инфраструктуры
Усовершенствование
Обучение
Рисунок 1 – Процессы жизненного цикла
- аттестация;
- совместная оценка;
- аудит;
- разрешение проблем [6];
- организационные процессы:
- управление;
- инфраструктура;
- усовершенствование;
- обучение [1].
1.1. Основные процессы
Процесс приобретения включает в себя ряд действий:
- инициирование приобретения – предполагает формулирование заказчиком своих потребностей, анализ требований, проверку существования документации, подготовку и утверждение плана приобретения программного продукта [2];
- подготовка заявочных предложений – заявочные предложения отражают общие требования к продукту, а также технические ограничения оборудования;
- подготовка и корректировка договора – на данном этапе выбирается конкретный поставщик, подготавливается и заключается договор;
- надзор за деятельностью поставщика – реализуется согласно действий, указанных в аудите;
- приемка и завершение работ – тестирование программного продукта и передача его заказчику [1].
Процесс поставки содержит следующие действия:
- инициирование поставки – на данном этапе поставщик рассматривает все предложения;
- подготовка ответа на заявочные предложения;
- подготовка договора;
- планирование – разработка плана управления проектом, отражающего организационную структуру, зоны ответственности, технические требования и т.п.;
- выполнение и контроль;
- проверка и оценка;
- поставка и завершение работ [2].
Процесс разработки – ключевой процесс создания программного продукта. Данный процесс предполагает выполнение следующих действий:
- подготовительная работа – определение модели жизненного цикла;
- анализ требований к системе – определение функциональных возможностей системы, пользовательских требований, а также требований надежности и безопасности;
- проектирование системной архитектуры – определение компонентов оборудования;
- анализ требований к ПО – определение функций продукта, внешних интерфейсов, эргономических требований, а также требований к данным, надежности и безопасности, документации, эксплуатации и сопровождению [2];
- проектирование архитектуры ПО – проектирование интерфейсов, а также предварительных требований к тестам и плану интеграции;
- детальное проектирование ПО – разработка архитектуры на более низком уровне;
- кодирование и тестирование – разработка отдельных компонентов и их тестирование;
- интеграция ПО – сборка компонентов;
- тестирование ПО – демонстрация заказчику работоспособности продукта;
- интеграция системы – сборка всех компонентов;
- тестирование системы – демонстрация заказчику работоспособности всей системы;
- установка ПО – установка системы на оборудование заказчика;
- приемка ПО – оценка результатов тестирования и окончательная передача продукта заказчику [1].
Процесс эксплуатации относится к заказчику и содержит ряд действий:
- подготовительная работа – планирование работ, требуемых в процессе эксплуатации, установка стандартов эксплуатации, определение процессов тестирования [2];
- эксплуатационное тестирование – тестирование каждой отдельной версии продукта;
- эксплуатация системы – проверка эксплуатационных сценариев работы в среде, соответствующей документации;
- поддержка пользователей – разрешение спорных ситуаций в процессе эксплуатации [1].
Процесс сопровождения активизируется при любых изменениях программного продукта и документации. Он также содержит ряд действий:
- подготовительная работа – планирование предстоящих работ, а также определение процедуры локализации проблемы;
- анализ проблем и запросов на модификацию – анализ сообщений о проблеме, определение типа ошибки, оценка целесообразности последующей модификации;
- модификация – внесение изменений в программный продукт;
- проверка и приемка – проверка заказчиком целостности полученной системы и утверждение изменений;
- перенос продукта в другую среду;
- снятие продукта с эксплуатации – архивирование программного продукта и документации [18].
1.2. Вспомогательные процессы
Процесс документирования представляет собой формализованное описание всей созданной информации. Данный процесс состоит из ряда действий:
- подготовительная работа;
- проектирование и разработка;
- издание документации;
- сопровождение [2].
Процесс управления конфигурацией позволяет организовать и контролировать жизненный цикл программного продукта. К нему относятся:
- подготовительная работа – планирование процесса;
- идентификация конфигурации – определение правил, по которым идентифицируются отдельные компоненты продукта [2];
- контроль за конфигурацией – предполагает систематическую оценку модификаций, а также реализует контроль состояния и развития отдельных компонентов;
- учет состояния конфигурации – регистрация состояния всех компонентов, а также подготовка отчетов о модификациях;
- оценка конфигурации – оценка функциональных возможностей продукта, а также соответствия поведения заявленным требованиям;
- управление выпуском и поставка – копирование продукта и программной документации [1].
Процесс обеспечения качества отвечает за соответствие качества программного продукта установленным требованиям со стороны заказчика. Основные действия данного процесса:
- подготовительная работа – планирование работ;
- обеспечение качества продукта – гарантия соответствия функциональных возможностей заявленным требованиям;
- обеспечение качества процесса – гарантия соответствия процессов жизненного цикла заявленным требованиям;
- обеспечение прочих показателей качества – реализация условий договора и стандарта качества ISO 9001 [2].
Процесс верификации отвечает за соответствие того, что программный продукт полностью соответствует исходным требованиям заказчика. На данном этапе реализуются следующие проверки:
- соответствие системных требований исходным данным заказчика;
- непротиворечивость степени учета пользовательских потребностей;
- соответствие процессов жизненного цикла условия договора;
- корректность стандартов и процедур разработки;
- соответствие полученных спецификация заявленным требованиям;
- корректность описания данных, логики, интерфейсов;
- соответствие исходного кода заявленным требованиям;
- корректность и тестируемость кода;
- корректность интеграции компонентов и системы;
- полнота и корректность документации [1].
Процесс аттестации – определение полноты соответствия требований заказчика к полученному функционалу. На данном этапе подтверждается и оценивается достоверность тестирования программного обеспечения.
Процесс совместной оценки служит для оценивания работ, проводимых в рамках реализации продукта. Сюда относится контроль планирования и управления ресурсами, аппаратурой, персоналом, а также инструментальными средствами.
Процесс аудита – проверка, которая реализуется независимым компетентным органом с целью обеспечения оценки степени соответствия ПО заявленным требованиям заказчика.
Процесс разрешения проблем предусматривает анализ проблем и их решение. При этом все проблемы идентифицируются, описываются и решаются [6].
1.3. Организационные процессы
Процесс управления относится к управлению выпуском продукта и управлению проектом. Данный процесс охватывает следующие действия [9]:
- инициирование и определение области управления – определение достаточности ресурсов для дальнейших операций;
- планирование – составление графика работ, оценка затрат, выделение ресурсов, распределение ответственности, оценка рисков и создание инфраструктуры;
- выполнение и контроль;
- проверка и оценка;
- завершение.
Процесс создания инфраструктуры отвечает за выбор и сопровождение технологий, инструментальных средств и стандартов, используемых в процессе разработки. Инфраструктура может модифицироваться в случае изменения требований со стороны заказчика [4].
Процесс усовершенствования направлен на увеличение показателей производительности программного продукта. В основе данного процесса лежит анализ достоинств и недостатков всех этапов разработки.
Процесс обучения предполагает базовое обучение персонала со стороны заказчика навыкам работы с программным продуктом. Также важно не забывать о повышении квалификации [9].