
- •Введение
- •1 Основные понятия программной инженерии как промышленной технологии создания программных продуктов
- •1.1 Определение и особенности программного продукта
- •2.2 Объектно-ориентированная методология построения моделей бизнес-процессов
- •3 Модели разработки программного продукта
- •3.1 Каскадная модель
- •3.2 Модель прототипирования
- •3.3 Модель быстрой разработки приложений
- •4 Жизненный цикл разработки программного продукта
- •4.1 Стандарты на процессы жизненного цикла разработки программного продукта
- •4.2 Разработка и анализ требований
- •4.2.1 Понятие и классификация требований
- •4.2.2 Процессы работы с требованиями
- •4.3 Проектирование программных продуктов
- •4.3.1 Содержание этапа проектирования
- •4.3.2 Типовые архитектуры программных систем
- •4.3.3 Процессы проектирования программных продуктов
- •4.3.4 Моделирование процессов разработки архитектуры программной системы управления и контроля работы скорой помощи
- •4.4 Конструирование программного продукта
- •4.4.1 Процессы и инструментальные средства конструирования
- •Раздел 1. «Выпустить»
- •Раздел 2. «Лучший продукт»
- •Раздел 3. «Выпустить точно в срок»
- •4.5 Тестирование программного продукта
- •5 Жизненный цикл вывода на рынок программного продукта
- •5.1 Ввод в эксплуатацию и сопровождение программного продукта
- •5.2 Продвижение тиражного программного продукта на рынок
- •6 Управление программными проектами
- •6.1 Основные понятия и определения
- •6.2 Этапы жизненного цикла программного проекта
- •6.3 Управление содержанием и сроками реализации программного проекта
- •6.4 Управление качеством программного проекта
- •6.5 Управление рисками программного проекта
- •6.5.1 Риски и рискообразующие факторы программного проекта
- •6.5.2 Качественный и количественный анализ рискообразующих факторов
- •6.5.3 Стратегии управления рисками
- •Заключение
- •Литература
- •Глоссарий

78
Раздел 3. «Выпустить точно в срок»
Ваша главная задача – выпустить продукт. Помните:
команда обязана поставить продукт в срок, а все члены команды должны верить в то, что это возможно;
каждый должен понимать, что от него для этого требуется, а менеджер должен сделать все от него зависящее, чтобы иметь все шансы сделать то, что требуется;
любой должен не просто хотеть, а гореть желанием достичь цели. Выпуск продукта должен стать целью каждого члена команды, самым ожи-
даемым событием для всех!
4.5Тестирование программного продукта
Всоответствии с принятой терминологией базовым понятием тестирования является «тест», который выполняется в заданных условиях и на проверочных наборах данных. В процессе тестирования выявляются следующие недостатки: отказы и дефекты, сбои, ошибки. Важно четко разделять причину нарушения работы прикладных программ, обычно описываемую терминами недостаток или дефект, и наблюдаемый нежелательный эффект, вызываемый этими причинами, – сбой. Тестирование, ориентированное на дефекты, направ-
лено на обнаружение наиболее вероятных ошибок, предсказываемых заранее, например, в результате анализа возможных рисков программного проекта. Термин ошибка, в зависимости от контекста, может описывать и как причину сбоя, и как сам сбой. Тестирование позволяет обнаружить дефекты, приводящие к сбоям.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
В соответствии с принятой архитектурой ПП выделяют следующие уровни тестирования [11]:
модульное тестирование, предполагающее проверку отдельных, изолированных и независимых элементов (модулей, компонентов);
интеграционное тестирование, которое ориентировано на про-
верку связей и способов взаимодействия (интерфейсов) компонентов друг с другом;

79
тестирование программного обеспечения, предназначенное для проверки правильности функционирования в целом, с обнаружением отказов и дефектов и их устранением.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · |
При этом контролируется и выполнение нефункциональных требований |
(безопасность, надежность и т. д.), а также правильность задания и выполнения |
внешних интерфейсов со средой окружения. |
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · |
Для проверки качества и работоспособности ПП выделяют сле- |
дующие виды тестирования [11]: |
1)функциональное тестирование, которое заключается в проверке соответствия выполнения функциональных возможностей ПП;
2)регрессионное тестирование – тестирование программного обеспечения или его компонентов после внесения в них изменений;
3)тестирование эффективности функционирования – проверка в со-
ответствии со спецификациями требований производительности, пропускной способности, максимального объема данных, системных ограничений и т. д.;
4)нагрузочное (стресс) тестирование – проверка поведения ПП при максимально допустимой нагрузке;
5)внутреннее (альфа) и внешнее (бета) тестирование – без плана те-
стирования и с планом тестирования соответственно;
6)тестирование конфигурации – проверка структуры и идентификации системы на различных наборах данных, а также проверка работы системы в различных конфигурациях;
7)приемочное тестирование – проверка в соответствии с заранее подготовленной программой и методикой испытаний поведения системы на этапе приемки-сдачи ее заказчику.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Взависимости от этапа жизненного цикла выделяют альфа-тестирование и бета-тестирование.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Альфа-тестирование – этап начала тестирования ПП специа- листами-тестерами. Цель данного этапа – проверка достижения необходимого качества функционирования ПП. Чаще всего альфа-те- стирование проводится на ранних стадиях процесса разработки ПП,
80
но в некоторых случаях может применяться для законченного продукта в качестве внутреннего приемочного тестирования.
Бета-тестирование проводится с привлечением потенциальных пользователей продукта. Целью данного этапа является оценка качества ПП и получение информации о продукте и соответствующей ему документации от его будущих пользователей.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Для измерения процессов и результатов тестирования используются соответствующие метрики тестирования. Измерение результатов тестирования касается оценки качества получаемого продукта. Оценка программ в процессе тестирования базируется на размере программ (например, в терминах количества строк кода или функциональных точек) или их структуре (например, с точки зрения оценки ее сложности в тех или иных архитектурных терминах). Структурные измерения могут также включать частоту обращений одних модулей программы к другим. Эффективность тестирования может быть измерена путем определения типов дефектов, которые могут быть найдены в процессе тестирования, и изменения их частоты во времени. Эта информация позволяет прогнозировать качество ПП и совершенствовать в дальнейшем процесс разработки в целом. Тестируемая программа может оцениваться также на основе подсчета и классификации найденных дефектов. Для каждого класса дефектов можно определить отношение между количеством соответствующих дефектов и размером программы.
В ряде случаев процесс тестирования требует систематического выполнения тестов для определенных набора элементов программы, задаваемых ее архитектурой или спецификацией. Соответствующие метрики позволяют оценить степень охвата характеристик системы и глубину их детализации. Такие метрики помогают прогнозировать вероятностное достижение заданных параметров качества системы.
Документация на тестирование включает описание тестовых документов, их связи между собой и с процессом тестирования. Без документации на процессы тестирования невозможно провести сертификацию и оценку зрелости программного продукта. После завершения тестирования рассматриваются вопросы стоимости и рисков, связанных с появлением сбоев и недостаточно надежной работой системы. Стоимость тестирования является одним из ограничений, на основе которого принимается решение о прекращении или продолжении тестирования.

81
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Процессы тестирования ПП заключаются в проверке работо-
способности и сравнении полученных результатов с целевыми показателями качества, заложенными в техническом задании.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
При этом сами процессы тестирования должны быть организованы с учетом следующих положений:
1)все работы и результаты процесса тестирования должны обязательно фиксироваться;
2)форма журналирования работ и их результатов должна быть такой, чтобы соответствующее содержание было понятно, однозначно интерпретируемо и повторяемо другими лицами;
3)тестирование должно проводиться в соответствии с заданными и документированными процедурами;
4)тестирование должно производиться над однозначно идентифицируемой версией и конфигурацией ПП.
Положительные результаты тестирования являются подтверждением того, что скомплексированный программный продукт полностью удовлетворяет установленным требованиям.
При реализации процесса необходимо выполнять следующие виды деятельности:
1)планирование работ по тестированию (составление планов, тестов, наборов данных) и измерению показателей качества ПП;
2)генерация необходимых тестовых сценариев, соответствующих среде выполнения ПП;
3)квалификационное тестирование на соответствие тестам и тестовым сценариям;
4)сбор данных об отказах, ошибках и других непредвиденных ситуациях при выполнении программного продукта;
5)подготовка отчетов и оценка результатов тестирования и пользовательской документации по следующим критериям: тестовому покрытию требований к ПП; соответствию ожидаемым результатам; реализуемости этапа комплексирования ПП и дальнейшего тестирования; влиянию на процессы функционирования и сопровождения программного продукта;

82
6)внесение изменений по мере необходимости в пользовательскую документацию;
7)подготовка ПП для комплексирования с программно-аппаратной сре-
дой эксплуатации, системного тестирования, инсталляции и приемки- |
сдачи. |
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · |
Эффективность и качество результатов тестирования зависят |
от используемых инструментальных средств автоматизации процес- |
сов тестирования ПП. На рынке существует множество как коммер- |
ческих инструментальных средств, так и инструментальных средств |
с открытым исходным кодом: Selenium, Katalon Studio, Unified Fun- |
ctional Testing, TestComplete, Robot Framework т. д. |
·· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Взаключение следует отметить, что достаточно сложно определить границы между проектированием, конструированием и тестированием, так как все они связаны в единый комплекс процессов жизненного цикла и в зависимости от выбранной модели разработки цикла и применяемых методов (методологий) такое разделение может выглядеть по-разному.
·· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Контрольные вопросы по главе 4
·· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
1.Поясните содержание стандарта «Единая система программной документации» (ЕСПД): ГОСТ 19.102–77 ЕСПД «Стадии разработки».
2.Поясните содержание стандарта IEEE-1074–1997 «Процессы и действия жизненного цикла программного обеспечения».
3.Раскройте содержание бизнес-требований, пользовательских требований, функциональных и нефункциональных требований по классификации К. Вигерса.
4.Перечислите и прокомментируйте виды деятельности по работе с требованиями.
5.Раскройте содержание этапа проектирования архитектуры программного обеспечения.
6.Перечислите и раскройте содержание типовых архитектур программных систем.
7.Раскройте содержание этапа конструирования программного продукта.
8.Раскройте содержание этапа тестирования программного продукта.