Файл: Обеспечения Базовый курс (3е издание) Версия книги 2 от 17. 04. 2023.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 07.11.2023
Просмотров: 854
Скачиваний: 31
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
Что нужно знать и уметь и чему можно научиться
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 14/301
Предметная об-
ласть
Начальный уро-
вень
Уровень младшего или среднего специалиста
Работа с отчётами о результатах тестирования
Создание отчётов о результатах те- стирования
Не требуется, но частично рассмот- рено в главе
«Оценка трудоза- трат, планирование и отчётность»
{208}
Умение предоставлять необходимую информацию для формирования отчёта о результатах тестиро- вания, умение анализировать готовые отчёты о результатах тестирования с целью уточнения пла- нирования собственной работы
Технические навыки
Таблица 1.3.b — Технические навыки тестировщика.
Предметная об-
ласть
Начальный уро-
вень
Уровень младшего или среднего специалиста
Операционные системы
Windows
Использование на уровне уверенного пользователя
Установка, использование и администрирование, решение проблем, конфигурирование с целью настройки тестового окружения и выполнения тест-кейсов
Linux
Общее знакомство
Установка, использование и администрирование, решение проблем, конфигурирование с целью настройки тестового окружения и выполнения тест-кейсов
Mac OS
Не требуется
Общее знакомство
Виртуальные ма- шины
Использование на уровне начинаю- щего пользователя
Установка, использование и администрирование, решение проблем, конфигурирование с целью настройки тестового окружения и выполнения тест-кейсов
Базы данных
Реляционная тео- рия
Не требуется
Общее понимание, умение читать и понимать схемы баз данных в общепринятых графических нотациях
13
Реляционные
СУБД
Умение устанавливать, настраивать и использо- вать для настройки тестового окружения и выпол- нения тест-кейсов
Язык SQL
Умение писать и выполнять простые запросы с использованием инструментальных средств ра- боты с БД/СУБД
14
Компьютерные сети
Сетевые прото- колы
Не требуется
Общее понимание принципов работы стека
TCP/IP
, умение конфигурировать локальные сете- вые настройки операционной системы
Сетевые утилиты
Общее понимание и умение использовать ути- литы диагностики состояния и неполадок в сети
Веб-технологии
Веб-серверы
Не требуется
Общее понимание принципов работы веб-серве- ров, умение устанавливать и настраивать
Серверы прило- жений
Общее понимание принципов работы серверов приложений, умение устанавливать и настраивать
Веб-сервисы
Общее понимание принципов работы веб-серви- сов и способов диагностики неполадок в их ра- боте
Языки разметки
Общее представле- ние об HTML и CSS
Умение использовать HTML и CSS для создания простых страниц
13
«Реляционные базы данных в примерах», Святослав Куликов [
https://svyatoslav.biz/relational_databases_book/
]
14
«Работа с MySQL, MS SQL Server и Oracle в примерах», Святослав Куликов [
http://svyatoslav.biz/database_book/
]
Что нужно знать и уметь и чему можно научиться
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 15/301
Предметная об-
ласть
Начальный уро-
вень
Уровень младшего или среднего специалиста
Протоколы пере- дачи данных
Не требуется
Общее понимание принципов работы протоколов прикладного уровня OSI-модели, общее понима- ние принципов диагностики возникших неполадок
Языки веб-про- граммирования
Начальные знания хотя бы в одном языке про- граммирования, используемом для создания веб- приложений
Мобильные платформы и технологии
Android
Не требуется
Использование на уровне начинающего пользова- теля iOS
Использование на уровне начинающего пользова- теля
Личностные навыки
Таблица 1.3.c — Личностные навыки тестировщика.
Предметная об-
ласть
Начальный уро-
вень
Уровень младшего или среднего специалиста
Коммуникативные навыки
Деловое исполь- зование e-mail
Минимальные навыки
Понимание и строгое следование правилам дело- вого общения с использованием e-mail и сервисов мгновенных сообщений
Устное деловое общение
Минимальные навыки
Понимание и строгое следование правилам уст- ного делового общения
Прохождение со- беседований
Не требуется
Начальный опыт прохождения собеседований
Навыки самоорганизации
Планирование собственного вре- мени
Минимальные навыки, общие представления
Развитые навыки планирования собственного времени, умение пользоваться соответствую- щими инструментами, умение оценивать трудоза- траты в рамках полученных заданий
Отчётность о своей работе
Начальные навыки
Развитые навыки отчётности о своей работе, уме- ние пользоваться соответствующими инструмен- тами
Возможно, вы заметили, что в этом перечне навыков нет отдельного списка, посвящённого автоматизации тестирования. Он не включён в данную книгу по трём причинам:
• он огромен;
• он постоянно меняется;
• эта книга всё же о тестировании вообще, хоть в ней и есть краткие сведения об автоматизации (см. раздел «Автоматизация тестирования»
{257}
).
Если же сказать в двух словах, то автоматизатор должен знать всё то же, что и «классический» тестировщик, а также уметь программировать на 3–5 языках — хотя бы немного. И всё. Инструменты на начальном уровне можно освоить за не- сколько дней.
Мифы и заблуждения о тестировании
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 16/301
1.4.
Мифы и заблуждения о тестировании
Возможно, здесь вы ожидали прочитать нечто наподобие «Семи бед тести- рования» Джеймса Виттакера (см. ниже). Нет, здесь будут «мифы», которые акту- альны не для состоявшихся профессионалов, а для новичков и тех, кто ещё только собирается обучаться тестированию.
Текст этой главы составлен в основном по итогам бесед со слушателями тре- нингов, а если точнее — по фразам, начинающимся с «а я думал(а), что…» или «а правда ли, что…»
Обязательно почитайте прекрасный цикл статей «The 7 Plagues of Soft- ware Testing
»
15
(James Whittaker).
Итак: «А я думал(а), что…» / «А правда ли, что…»
Не надо разбираться в компьютерах
Без комментариев. Нет, возможно, существуют некие ничтожно малые доли процента деятельности тестировщика, которую можно реализовать «на пальцах».
Но этой бесконечно малой величиной можно пренебречь.
Обязательно надо хорошо знать программирование
Очень больно относить эту мысль к мифам. Хорошо, когда тестировщик знает программирование. Ещё лучше, когда он знает его хорошо. Но даже общих отдалённых представлений о программировании хватает для начала карьеры. А дальше уже — по обстоятельствам.
В тестировании всё просто
Если развить аналогию, то и в кулинарии всё просто, если мы говорим о за- варивании чая в пакетике. Но как подобным чаем не заканчивается кулинария, так и тестирование не заканчивается случаями «ой, тут вот картинка не загрузилась».
Даже на исключительно практическом уровне задачи тестирования могут быть со- поставимы по сложности с задачами проектирования и разработки программ (хм, почему ж нет мифа «программирование — это просто», ведь «Hello, world» напи- сать не тяжело). А если мы посмотрим на «надёжность программного обеспечения» с научной точки зрения, то перспективы роста сложности вообще ничем не ограни- чены. Обязательно ли каждому тестировщику «лезть в эти дебри»? Нет. Но если хочется — можно. К тому же это очень интересно.
В тестировании куча рутины и скуки
Не больше и не меньше, чем в иных IT-профессиях. Остальное зависит от конкретного тестировщика и того, как он организует свою работу.
15
«The Plague of Aimlessness», James Whittaker [
https://testing.googleblog.com/2009/06/7-plagues-of-software-testing.html
]
«The Plague of Repetitiveness», James Whittaker [
http://googletesting.blogspot.com/2009/06/by-james.html
]
«The Plague of Amnesia», James Whittaker [
http://googletesting.blogspot.com/2009/07/plague-of-amnesia.html
]
«The Plague of Boredom», James Whittaker [
http://googletesting.blogspot.com/2009/07/plague-of-boredom.html
]
«The Plague of Homelessness», James Whittaker [
http://googletesting.blogspot.com/2009/07/plague-of-homelessness.html
]
«The Plague of Blindness», James Whittaker [
http://googletesting.blogspot.com/2009/07/plague-of-blindness.html
]
«The 7th Plague and Beyond», James Whittaker [
http://googletesting.blogspot.com/2009/09/7th-plague-and-beyond.html
]
«The Plague of Entropy», James Whittaker [
http://googletesting.blogspot.com/2009/09/plague-of-entropy.html
]
Мифы и заблуждения о тестировании
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 17/301
Тестировщика должны всему-всему научить
Не должны. И уж тем более «всему-всему». Да, если мы говорим о явно обо- значенном учебном процессе, то его организаторы (будь то предмет в универси- тете, учебный курс в некоем тренинговом центре или отдельный тренинг внутри компании) часто берут на себя определённые «педагогические обязательства». Но подобная учебная деятельность никогда не заменит саморазвития (хотя и может в нужный момент помочь в выборе направления пути). IT-отрасль меняется очень интенсивно и непрерывно. Учиться придётся до пенсии.
В тестировщики идут те, кто не смог стать программистом
А в скрипачи — те, кто не смог стать пианистом? Я думаю, что некий неболь- шой процент «не ставших программистами» в тестировании есть. Но он теряется на фоне тех, кто шёл в тестирование изначально и сознательно, а также тех, кто пришёл в тестирование из программирования.
В тестировании сложно построить карьеру
При должном старании карьера в тестировании оказывается едва ли не са- мой динамичной (по сравнению с другими IT-направлениями). Тестирование само по себе — очень бурно развивающаяся отрасль IT, и здесь всегда можно выбрать что-то, что будет вам очень нравиться и хорошо получаться — а в таких условиях стать профессионалом и достичь успеха легко.
Тестировщик «виноват во всём», т.е. с него спрос за все ошибки
Только если признать, что в болезни пациента виновен термометр, показы- вающий высокую температуру. Скорее с тестировщиков будет спрос за те ошибки, что были найдены пользователем, т.е. проявились уже на стадии реальной эксплу- атации продукта. Но и здесь нет однозначного вывода — за конечный успех про- дукта отвечает вся команда, и было бы глупо перекладывать ответственность лишь на одну её часть.
Тестировщики скоро будут не нужны, т.к. всё будет автоматизиро-
вано
Как только по улицам забегают терминаторы — да, этот миф станет правдой: программы научатся обходиться без людей. Но тогда у нас всех будут другие про- блемы. А если кроме шуток, человечество уже сотни лет идёт по пути автоматиза- ции, которая накладывает свой отпечаток на всю нашу жизнь и чаще всего позво- ляет переложить самую простую и не требующую квалификации работу на машины.
Но кто же заставляет вас оставаться на уровне исполнителя такой работы? Начи- ная с некоторого уровня, тестирование превращается в гармоничное сочетание науки и искусства. А многих ли учёных или творцов заменила автоматизация?
Просьба: возможно, у вас есть какие-то мысли из разряда «А я думал(а), что в тестировании…» / «А правда ли, что в тестировании…». Если так, поделитесь ими, пожалуйста, в анонимном опросе: http://svyatoslav.biz/software_testing_book_poll/
Раздел 2: основные знания и умения
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 18/301
Раздел 2: основные знания и умения
2.1.
Процессы тестирования и разработки ПО
2.1.1.
Модели разработки ПО
Чтобы лучше разобраться в том, как тестирование соотносится с программи- рованием и иными видами проектной деятельности, для начала рассмотрим самые основы — модели разработки (lifecycle model
16
)
ПО (как часть жизненного цикла
(software lifecycle
17
)
ПО). При этом сразу подчеркнём, что разработка ПО является лишь частью жизненного цикла ПО, и здесь мы говорим именно о разработке.
Материал данной главы относится скорее к дисциплине «управление проек- тами», потому здесь рассмотрен крайне сжато: пожалуйста, не воспринимайте его как исчерпывающее руководство — здесь едва ли рассмотрена и сотая доля про- цента соответствующей предметной области.
Модель разработки ПО (Software Development Model, SDM) — структура, систематизирующая различные виды проектной деятельности, их взаимо- действие и последовательность в процессе разработки ПО. Выбор той или иной модели зависит от масштаба и сложности проекта, предметной области, доступных ресурсов и множества других факторов.
Выбор модели разработки ПО серьёзно влияет на процесс тестирования, определяя выбор стратегии, расписание, необходимые ресурсы и т.д.
Моделей разработки ПО много, но в общем случае классическими можно считать водопадную, v-образную, итерационную инкрементальную, спиральную и гибкую.
Перечень моделей разработки ПО (с кратким описанием), рекомендуе- мых к изучению тестировщиками, можно найти в статье «What are the
Software Development Models?
»
18
Знать и понимать модели разработки ПО нужно затем, чтобы уже с первых дней работы осознавать, что происходит вокруг, что, зачем и почему вы делаете.
Многие начинающие тестировщики отмечают, что ощущение бессмысленности происходящего посещает их, даже если текущие задания интересны. Чем полнее вы будете представлять картину происходящего на проекте, тем яснее вам будет виден ваш собственный вклад в общее дело и смысл того, чем вы занимаетесь.
Ещё одна важная вещь, которую следует понимать, состоит в том, что ника- кая модель не является догмой или универсальным решением. Нет идеальной мо- дели. Есть та, которая хуже или лучше подходит для конкретного проекта, конкрет- ной команды, конкретных условий.
Частая ошибка! Единственное, от чего стоит предостеречь уже сейчас, так это от фривольной трактовки модели и перекраивания её «на свой вкус» без кристально чёткого понимания, что и зачем вы делаете. О том, что бывает при нарушении логики модели, прекрасно сказал в своём слайдка- сте «Scrum Tailoring»
19
Максим Дорофеев.
16
Lifecycle model. A partitioning of the life of a product or project into phases. [ISTQB Glossary]
17
Software lifecycle. The period of time that begins when a software product is conceived and ends when the software is no longer available for use. The software lifecycle typically includes a concept phase, requirements phase, design phase, implementation phase, test phase, installation and checkout phase, operation and maintenance phase, and sometimes, retirement phase. Note these phases may overlap or be performed iteratively. [ISTQB Glossary]
18
«What are the Software Development Models?» [
http://istqbexamcertification.com/what-are-the-software-development-models/
]
19
«Scrum Tailoring», Максим Дорофеев [
http://cartmendum.livejournal.com/10862.html
]
Модели разработки ПО
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 19/301
Водопадная модель (waterfall model
20
) сейчас представляет скорее истори- ческий интерес, т.к. в современных проектах практически неприменима. Она пред- полагает однократное выполнение каждой из фаз проекта, которые, в свою оче- редь, строго следуют друг за другом (рисунок 2.1.a). Очень упрощённо можно ска- зать, что в рамках этой модели в любой момент времени команде «видна» лишь предыдущая и следующая фаза. В реальной же разработке ПО приходится «видеть весь проект целиком» и возвращаться к предыдущим фазам, чтобы исправить недоработки или что-то уточнить.
Рисунок 2.1.a — Водопадная модель разработки ПО
К недостаткам водопадной модели принято относить тот факт, что участие пользователей ПО в ней либо не предусмотрено вообще, либо предусмотрено лишь косвенно на стадии однократного сбора требований. С точки зрения же тести- рования эта модель плоха тем, что тестирование в явном виде появляется здесь лишь с середины развития проекта, достигая своего максимума в самом конце.
20
In a waterfall model, each phase must be completed fully before the next phase can begin. This type of model is basically used for the project which is small and there are no uncertain requirements. At the end of each phase, a review takes place to deter- mine if the project is on the right path and whether or not to continue or discard the project. [
http://istqbexamcertifica- tion.com/what-is-waterfall-model-advantages-disadvantages-and-when-to-use-it/
]
Общее планирование
Тестирование в явном виде появляется лишь с середины развития проекта, достигая своего максимума в самом конце.
Пользовательские требования
Системные требования
Техническая архитектура
Детализированный дизайн
Разработка и отладка
Интеграция и модульные тесты
Инсталляционное тестирование
Системное тестирование
Приёмочное тестирование
Итоговая отчётность
Модели разработки ПО
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 20/301
Тем не менее водопадная модель часто интуитивно применяется при выпол- нении относительно простых задач, а её недостатки послужили прекрасным отправ- ным пунктом для создания новых моделей. Также эта модель в несколько усовер- шенствованном виде используется на крупных проектах, в которых требования очень стабильны и могут быть хорошо сформулированы в начале проекта (аэро- космическая область, медицинское ПО и т.д.).
Относительно краткое и притом хорошее описание водопадной модели можно найти в статье «What is Waterfall model advantages, disadvantages and when to use it?
»
21
Великолепное описание истории развития и заката водопадной модели было создано Максимом Дорофеевым в виде слайдкаста «The Rise And
Fall Of Waterfall
», который можно посмотреть
22
в его ЖЖ.
V-
образная модель (V-model
23
) является логическим развитием водопад- ной. Можно заметить (рисунок 2.1.b), что в общем случае как водопадная, так и v- образная модели жизненного цикла ПО могут содержать один и тот же набор ста- дий, но принципиальное отличие заключается в том, как эта информация исполь- зуется в процессе реализации проекта.
Очень упрощённо можно сказать, что при использовании v-образной модели на каждой стадии «на спуске» нужно думать о том, что и как будет происходить на соответствующей стадии «на подъёме». Тестирование здесь появляется уже на са- мых ранних стадиях развития проекта, что позволяет минимизировать риски, а также обнаружить и устранить множество потенциальных проблем до того, как они станут проблемами реальными.
Рисунок 2.1.b — V-образная модель разработки ПО
21
«What is Waterfall model advantages, disadvantages and when to use it?» [
http://istqbexamcertification.com/what-is-waterfall- model-advantages-disadvantages-and-when-to-use-it/
]
22
ЖЖ Максима Дорофеева. [
http://cartmendum.livejournal.com/44064.html
]
23
V-model. A framework to describe the software development lifecycle activities from requirements specification to maintenance.
The V-model illustrates how testing activities can be integrated into each phase of the software development lifecycle. [ISTQB
Glossary]
Общее планирование
Пользовательские требования
Системные требования
Техническая архитектура
Детализированный дизайн
Разработка и отладка
Интеграция и модульные тесты
Инсталляционное тестирование
Системное тестирование
Приёмочное тестирование
Итоговая отчётность
Тестирование появляется с самого начала проекта.
Модели разработки ПО
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 21/301
Краткое описание v-образной модели можно найти в статье «What is V- model advantages, disadvantages and when to use it?
»
24
Пояснение по ис- пользованию v-образной модели в тестировании можно найти в статье
«Using V Models for Testing»
25
Итерационная инкрементальная модель (iterative model
26
, incremental model
27
) является фундаментальной основой современного подхода к разработке
ПО. Как следует из названия модели, ей свойственна определённая двойствен- ность (а ISTQB-глоссарий даже не приводит единого определения, разбивая его на отдельные части):
• с точки зрения жизненного цикла модель является итерационной, т.к. под- разумевает многократное повторение одних и тех же стадий;
• с точки зрения развития продукта (приращения его полезных функций) мо- дель является инкрементальной.
Ключевой особенностью данной модели является разбиение проекта на от- носительно небольшие промежутки (итерации), каждый из которых в общем случае может включать в себя все классические стадии, присущие водопадной и v- образной моделям (рисунок 2.1.c). Итогом итерации является приращение (инкре- мент) функциональности продукта, выраженное в промежуточном билде (build
28
).
Рисунок 2.1.c — Итерационная инкрементальная модель разработки ПО
24
«What is V-model advantages, disadvantages and when to use it?» [
http://istqbexamcertification.com/what-is-v-model-advantages- disadvantages-and-when-to-use-it/
]
25
«Using V Models for Testing», Donald Firesmith [
https://insights.sei.cmu.edu/sei_blog/2013/11/using-v-models-for-testing.html
]
26
Iterative development model. A development lifecycle where a project is broken into a usually large number of iterations. An iteration is a complete development loop resulting in a release (internal or external) of an executable product, a subset of the final product under development, which grows from iteration to iteration to become the final product. [ISTQB Glossary]
27
Incremental development model. A development lifecycle where a project is broken into a series of increments, each of which delivers a portion of the functionality in the overall project requirements. The requirements are prioritized and delivered in priority order in the appropriate increment. In some (but not all) versions of this lifecycle model, each subproject follows a 'mini V-model' with its own design, coding and testing phases. [ISTQB Glossary]
28
Build. A development activity whereby a complete system is compiled and linked, so that a consistent system is available including all latest changes. [
На основе определения термина «daily build» из ISTQB Glossary]
Общее планирование
Планирование + требования
Архитектура и дизайн
Разработка и отладка
Интеграция и модульные тесты
Установка билда
Тестирование
Оценка результатов
Итоговая отчётность
Отчётность
Модели разработки ПО
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 22/301
Длина итераций может меняться в зависимости от множества факторов, од- нако сам принцип многократного повторения позволяет гарантировать, что и тести- рование, и демонстрация продукта конечному заказчику (с получением обратной связи) будет активно применяться с самого начала и на протяжении всего времени разработки проекта.
Во многих случаях допускается распараллеливание отдельных стадий внутри итерации и активная доработка с целью устранения недостатков, обнару- женных на любой из (предыдущих) стадий.
Итерационная инкрементальная модель очень хорошо зарекомендовала себя на объёмных и сложных проектах, выполняемых большими командами на про- тяжении длительных сроков. Однако к основным недостаткам этой модели часто относят высокие накладные расходы, вызванные высокой «бюрократизированно- стью» и общей громоздкостью модели.
Относительно краткие и очень хорошие описания итерационной инкре- ментальной модели можно найти в статьях «What is Iterative model ad- vantages, disadvantages and when to use it?
»
29
и «What is Incremental model advantages, disadvantages and when to use it?
»
30
Спиральная модель (spiral model
31
) представляет собой частный случай итерационной инкрементальной модели, в котором особое внимание уделяется управлению рисками, в особенности влияющими на организацию процесса разра- ботки проекта и контрольные точки.
Схематично суть спиральной модели представлена на рисунке 2.1.d. Обра- тите внимание на то, что здесь явно выделены четыре ключевые фазы:
• проработка целей, альтернатив и ограничений;
• анализ рисков и прототипирование;
• разработка (промежуточной версии) продукта;
• планирование следующего цикла.
С точки зрения тестирования и управления качеством повышенное внимание рискам является ощутимым преимуществом при использовании спиральной мо- дели для разработки концептуальных проектов, в которых требования естествен- ным образом являются сложными и нестабильными (могут многократно меняться по ходу выполнения проекта).
Автор модели Barry Boehm в своих публикациях
32
,
33
подробно раскрывает эти вопросы и приводит множество рассуждений и рекомендаций о том, как применять спиральную модель с максимальным эффектом.
Относительно краткие и очень хорошие описания спиральной модели можно найти в статьях «What is Spiral model - advantages, disadvantages and when to use it?
»
34
и «Spiral Model»
35 29
«What is Iterative model advantages, disadvantages and when to use it?» [
http://istqbexamcertification.com/what-is-iterative- model-advantages-disadvantages-and-when-to-use-it/
]
30
«What is Incremental model advantages, disadvantages and when to use it?» [
http://istqbexamcertification.com/what-is-incremen- tal-model-advantages-disadvantages-and-when-to-use-it/
]
31
Spiral model. A software lifecycle model which supposes incremental development, using the waterfall model for each step, with the aim of managing risk. In the spiral model, developers define and implement features in order of decreasing priority.
[
https://www.geeksforgeeks.org/software-engineering-spiral-model/
]
32
«A Spiral Model of Software Development and Enhancement», Barry Boehm [
http://www-scf.usc.edu/csci201/lectures/Lec- ture11/boehm1988.pdf
]
33
«Spiral Development: Experience, Principles, and Refinements», Barry Boehm. [
http://www.sei.cmu.edu/reports/00sr008.pdf
]
34
«What is Spiral model- advantages, disadvantages and when to use it?» [
http://istqbexamcertification.com/what-is-spiral-model- advantages-disadvantages-and-when-to-use-it/
]
35
«Spiral Model» [
https://searchsoftwarequality.techtarget.com/definition/spiral-model
]
Модели разработки ПО
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 23/301
Рисунок 2.1.d — Спиральная модель разработки ПО
Гибкая модель (agile model
36
) представляет собой совокупность различных подходов к разработке ПО и базируется на т.н. «agile-манифесте»
37
:
• Люди и взаимодействие важнее процессов и инструментов.
• Работающий продукт важнее исчерпывающей документации.
• Сотрудничество с заказчиком важнее согласования условий контракта.
• Готовность к изменениям важнее следования первоначальному плану.
Данная тема является настолько большой, что ссылок на статьи недоста- точно, а потому стоит почитать эти книги:
• «Agile Testing» (Lisa Crispin, Janet Gregory).
• «Essential Scrum» (Kenneth S. Rubin).
36
Agile software development. A group of software development methodologies based on EITP iterative incremental development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. [ISTQB Glos- sary]
37
«Agile-манифест» [
http://agilemanifesto.org/iso/ru/manifesto.html
]
Проработка целей, альтернатив и ограничений
Проектных
Продуктных
Жизненного цикла проекта
Процесса разработки проекта
Эксплуа- тации продукта
Анализ рисков и прототипирование
Разработка
(
промежуточной версии) продукта
Планирование следующего цикла
Проекта и продукта
Жизненного цикла
Разработки, интеграции и тестирования
Внедрения и сопровождения
Общей концепции
Уточнённых требований
Архитектуры
Дизайна
Детализация
Кодирование
Интеграция
Тестирование
Детализация
Кодирование
Интеграция
Тестирование
Оценка промежуточных результатов
Н
а ра ст ани е об щ
ей ц
ен но ст и пр од ук та
Модели разработки ПО
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 24/301
Как несложно догадаться, положенные в основу гибкой модели подходы яв- ляются логическим развитием и продолжением всего того, что было за десятилетия создано и опробовано в водопадной, v-образной, итерационной инкрементальной, спиральной и иных моделях. Причём здесь впервые был достигнут ощутимый ре- зультат в снижении бюрократической составляющей и максимальной адаптации процесса разработки ПО к мгновенным изменениям рынка и требований заказчика.
Рисунок 2.1.e — Суть гибкой модели разработки ПО
Очень упрощённо (почти на грани допустимого) можно сказать, что гибкая модель представляет собой облегчённую с точки зрения документации смесь ите- рационной инкрементальной и спиральной моделей (рисунки 2.1.c и 2.1.d); при этом следует помнить об «agile-манифесте» и всех вытекающих из него преимуществах и недостатках.
Ценности
СТРАТЕГИЯ
ВЫПУСК
ИТЕРАЦИЯ
ЕЖЕДНЕВНО
НЕПРЕРЫВНО
TDD
Билд
Рефакторинг
Интеграция
Сотрудничество
Билд
«Стендап» собрание
Тестирование
Планирование
Оценка
Ретроспектива
«Бэклог»
План выпуска
Оценка
Видение
Цели
Соглашения
Бюджет
Адаптивность
Прозрачность
Простота
Единство
Наглядность
Осталось сделать
Производительность
Сделано
Тесты
Модели разработки ПО
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 25/301
Рисунок 2.1.f — Итерационный подход в рамках гибкой модели и scrum
Главным недостатком гибкой модели считается сложность её применения к крупным проектам, а также частое ошибочное внедрение её подходов, вызванное недопониманием фундаментальных принципов модели.
Тем не менее можно утверждать, что всё больше и больше проектов начи- нают использовать гибкую модель разработки.
Очень подробное и элегантное изложение принципов применения гибкой модели разработки ПО можно найти в статье «The Agile System Develop- ment Life Cycle
»
38
1 2 3 4 5 6 7 8 9 ... 38
Модели разработки ПО
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 19/301
Водопадная модель (waterfall model
20
) сейчас представляет скорее истори- ческий интерес, т.к. в современных проектах практически неприменима. Она пред- полагает однократное выполнение каждой из фаз проекта, которые, в свою оче- редь, строго следуют друг за другом (рисунок 2.1.a). Очень упрощённо можно ска- зать, что в рамках этой модели в любой момент времени команде «видна» лишь предыдущая и следующая фаза. В реальной же разработке ПО приходится «видеть весь проект целиком» и возвращаться к предыдущим фазам, чтобы исправить недоработки или что-то уточнить.
Рисунок 2.1.a — Водопадная модель разработки ПО
К недостаткам водопадной модели принято относить тот факт, что участие пользователей ПО в ней либо не предусмотрено вообще, либо предусмотрено лишь косвенно на стадии однократного сбора требований. С точки зрения же тести- рования эта модель плоха тем, что тестирование в явном виде появляется здесь лишь с середины развития проекта, достигая своего максимума в самом конце.
20
In a waterfall model, each phase must be completed fully before the next phase can begin. This type of model is basically used for the project which is small and there are no uncertain requirements. At the end of each phase, a review takes place to deter- mine if the project is on the right path and whether or not to continue or discard the project. [
http://istqbexamcertifica- tion.com/what-is-waterfall-model-advantages-disadvantages-and-when-to-use-it/
]
Общее планирование
Тестирование в явном виде появляется лишь с середины развития проекта, достигая своего максимума в самом конце.
Пользовательские требования
Системные требования
Техническая архитектура
Детализированный дизайн
Разработка и отладка
Интеграция и модульные тесты
Инсталляционное тестирование
Системное тестирование
Приёмочное тестирование
Итоговая отчётность
Модели разработки ПО
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 20/301
Тем не менее водопадная модель часто интуитивно применяется при выпол- нении относительно простых задач, а её недостатки послужили прекрасным отправ- ным пунктом для создания новых моделей. Также эта модель в несколько усовер- шенствованном виде используется на крупных проектах, в которых требования очень стабильны и могут быть хорошо сформулированы в начале проекта (аэро- космическая область, медицинское ПО и т.д.).
Относительно краткое и притом хорошее описание водопадной модели можно найти в статье «What is Waterfall model advantages, disadvantages and when to use it?
»
21
Великолепное описание истории развития и заката водопадной модели было создано Максимом Дорофеевым в виде слайдкаста «The Rise And
Fall Of Waterfall
», который можно посмотреть
22
в его ЖЖ.
V-
образная модель (V-model
23
) является логическим развитием водопад- ной. Можно заметить (рисунок 2.1.b), что в общем случае как водопадная, так и v- образная модели жизненного цикла ПО могут содержать один и тот же набор ста- дий, но принципиальное отличие заключается в том, как эта информация исполь- зуется в процессе реализации проекта.
Очень упрощённо можно сказать, что при использовании v-образной модели на каждой стадии «на спуске» нужно думать о том, что и как будет происходить на соответствующей стадии «на подъёме». Тестирование здесь появляется уже на са- мых ранних стадиях развития проекта, что позволяет минимизировать риски, а также обнаружить и устранить множество потенциальных проблем до того, как они станут проблемами реальными.
Рисунок 2.1.b — V-образная модель разработки ПО
21
«What is Waterfall model advantages, disadvantages and when to use it?» [
http://istqbexamcertification.com/what-is-waterfall- model-advantages-disadvantages-and-when-to-use-it/
]
22
ЖЖ Максима Дорофеева. [
http://cartmendum.livejournal.com/44064.html
]
23
V-model. A framework to describe the software development lifecycle activities from requirements specification to maintenance.
The V-model illustrates how testing activities can be integrated into each phase of the software development lifecycle. [ISTQB
Glossary]
Общее планирование
Пользовательские требования
Системные требования
Техническая архитектура
Детализированный дизайн
Разработка и отладка
Интеграция и модульные тесты
Инсталляционное тестирование
Системное тестирование
Приёмочное тестирование
Итоговая отчётность
Тестирование появляется с самого начала проекта.
Модели разработки ПО
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 21/301
Краткое описание v-образной модели можно найти в статье «What is V- model advantages, disadvantages and when to use it?
»
24
Пояснение по ис- пользованию v-образной модели в тестировании можно найти в статье
«Using V Models for Testing»
25
Итерационная инкрементальная модель (iterative model
26
, incremental model
27
) является фундаментальной основой современного подхода к разработке
ПО. Как следует из названия модели, ей свойственна определённая двойствен- ность (а ISTQB-глоссарий даже не приводит единого определения, разбивая его на отдельные части):
• с точки зрения жизненного цикла модель является итерационной, т.к. под- разумевает многократное повторение одних и тех же стадий;
• с точки зрения развития продукта (приращения его полезных функций) мо- дель является инкрементальной.
Ключевой особенностью данной модели является разбиение проекта на от- носительно небольшие промежутки (итерации), каждый из которых в общем случае может включать в себя все классические стадии, присущие водопадной и v- образной моделям (рисунок 2.1.c). Итогом итерации является приращение (инкре- мент) функциональности продукта, выраженное в промежуточном билде (build
28
).
Рисунок 2.1.c — Итерационная инкрементальная модель разработки ПО
24
«What is V-model advantages, disadvantages and when to use it?» [
http://istqbexamcertification.com/what-is-v-model-advantages- disadvantages-and-when-to-use-it/
]
25
«Using V Models for Testing», Donald Firesmith [
https://insights.sei.cmu.edu/sei_blog/2013/11/using-v-models-for-testing.html
]
26
Iterative development model. A development lifecycle where a project is broken into a usually large number of iterations. An iteration is a complete development loop resulting in a release (internal or external) of an executable product, a subset of the final product under development, which grows from iteration to iteration to become the final product. [ISTQB Glossary]
27
Incremental development model. A development lifecycle where a project is broken into a series of increments, each of which delivers a portion of the functionality in the overall project requirements. The requirements are prioritized and delivered in priority order in the appropriate increment. In some (but not all) versions of this lifecycle model, each subproject follows a 'mini V-model' with its own design, coding and testing phases. [ISTQB Glossary]
28
Build. A development activity whereby a complete system is compiled and linked, so that a consistent system is available including all latest changes. [
На основе определения термина «daily build» из ISTQB Glossary]
Общее планирование
Планирование + требования
Архитектура и дизайн
Разработка и отладка
Интеграция и модульные тесты
Установка билда
Тестирование
Оценка результатов
Итоговая отчётность
Отчётность
Модели разработки ПО
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 22/301
Длина итераций может меняться в зависимости от множества факторов, од- нако сам принцип многократного повторения позволяет гарантировать, что и тести- рование, и демонстрация продукта конечному заказчику (с получением обратной связи) будет активно применяться с самого начала и на протяжении всего времени разработки проекта.
Во многих случаях допускается распараллеливание отдельных стадий внутри итерации и активная доработка с целью устранения недостатков, обнару- женных на любой из (предыдущих) стадий.
Итерационная инкрементальная модель очень хорошо зарекомендовала себя на объёмных и сложных проектах, выполняемых большими командами на про- тяжении длительных сроков. Однако к основным недостаткам этой модели часто относят высокие накладные расходы, вызванные высокой «бюрократизированно- стью» и общей громоздкостью модели.
Относительно краткие и очень хорошие описания итерационной инкре- ментальной модели можно найти в статьях «What is Iterative model ad- vantages, disadvantages and when to use it?
»
29
и «What is Incremental model advantages, disadvantages and when to use it?
»
30
Спиральная модель (spiral model
31
) представляет собой частный случай итерационной инкрементальной модели, в котором особое внимание уделяется управлению рисками, в особенности влияющими на организацию процесса разра- ботки проекта и контрольные точки.
Схематично суть спиральной модели представлена на рисунке 2.1.d. Обра- тите внимание на то, что здесь явно выделены четыре ключевые фазы:
• проработка целей, альтернатив и ограничений;
• анализ рисков и прототипирование;
• разработка (промежуточной версии) продукта;
• планирование следующего цикла.
С точки зрения тестирования и управления качеством повышенное внимание рискам является ощутимым преимуществом при использовании спиральной мо- дели для разработки концептуальных проектов, в которых требования естествен- ным образом являются сложными и нестабильными (могут многократно меняться по ходу выполнения проекта).
Автор модели Barry Boehm в своих публикациях
32
,
33
подробно раскрывает эти вопросы и приводит множество рассуждений и рекомендаций о том, как применять спиральную модель с максимальным эффектом.
Относительно краткие и очень хорошие описания спиральной модели можно найти в статьях «What is Spiral model - advantages, disadvantages and when to use it?
»
34
и «Spiral Model»
35 29
«What is Iterative model advantages, disadvantages and when to use it?» [
http://istqbexamcertification.com/what-is-iterative- model-advantages-disadvantages-and-when-to-use-it/
]
30
«What is Incremental model advantages, disadvantages and when to use it?» [
http://istqbexamcertification.com/what-is-incremen- tal-model-advantages-disadvantages-and-when-to-use-it/
]
31
Spiral model. A software lifecycle model which supposes incremental development, using the waterfall model for each step, with the aim of managing risk. In the spiral model, developers define and implement features in order of decreasing priority.
[
https://www.geeksforgeeks.org/software-engineering-spiral-model/
]
32
«A Spiral Model of Software Development and Enhancement», Barry Boehm [
http://www-scf.usc.edu/csci201/lectures/Lec- ture11/boehm1988.pdf
]
33
«Spiral Development: Experience, Principles, and Refinements», Barry Boehm. [
http://www.sei.cmu.edu/reports/00sr008.pdf
]
34
«What is Spiral model- advantages, disadvantages and when to use it?» [
http://istqbexamcertification.com/what-is-spiral-model- advantages-disadvantages-and-when-to-use-it/
]
35
«Spiral Model» [
https://searchsoftwarequality.techtarget.com/definition/spiral-model
]
Модели разработки ПО
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 23/301
Рисунок 2.1.d — Спиральная модель разработки ПО
Гибкая модель (agile model
36
) представляет собой совокупность различных подходов к разработке ПО и базируется на т.н. «agile-манифесте»
37
:
• Люди и взаимодействие важнее процессов и инструментов.
• Работающий продукт важнее исчерпывающей документации.
• Сотрудничество с заказчиком важнее согласования условий контракта.
• Готовность к изменениям важнее следования первоначальному плану.
Данная тема является настолько большой, что ссылок на статьи недоста- точно, а потому стоит почитать эти книги:
• «Agile Testing» (Lisa Crispin, Janet Gregory).
• «Essential Scrum» (Kenneth S. Rubin).
36
Agile software development. A group of software development methodologies based on EITP iterative incremental development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. [ISTQB Glos- sary]
37
«Agile-манифест» [
http://agilemanifesto.org/iso/ru/manifesto.html
]
Проработка целей, альтернатив и ограничений
Проектных
Продуктных
Жизненного цикла проекта
Процесса разработки проекта
Эксплуа- тации продукта
Анализ рисков и прототипирование
Разработка
(
промежуточной версии) продукта
Планирование следующего цикла
Проекта и продукта
Жизненного цикла
Разработки, интеграции и тестирования
Внедрения и сопровождения
Общей концепции
Уточнённых требований
Архитектуры
Дизайна
Детализация
Кодирование
Интеграция
Тестирование
Детализация
Кодирование
Интеграция
Тестирование
Оценка промежуточных результатов
Н
а ра ст ани е об щ
ей ц
ен но ст и пр од ук та
Модели разработки ПО
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 24/301
Как несложно догадаться, положенные в основу гибкой модели подходы яв- ляются логическим развитием и продолжением всего того, что было за десятилетия создано и опробовано в водопадной, v-образной, итерационной инкрементальной, спиральной и иных моделях. Причём здесь впервые был достигнут ощутимый ре- зультат в снижении бюрократической составляющей и максимальной адаптации процесса разработки ПО к мгновенным изменениям рынка и требований заказчика.
Рисунок 2.1.e — Суть гибкой модели разработки ПО
Очень упрощённо (почти на грани допустимого) можно сказать, что гибкая модель представляет собой облегчённую с точки зрения документации смесь ите- рационной инкрементальной и спиральной моделей (рисунки 2.1.c и 2.1.d); при этом следует помнить об «agile-манифесте» и всех вытекающих из него преимуществах и недостатках.
Ценности
СТРАТЕГИЯ
ВЫПУСК
ИТЕРАЦИЯ
ЕЖЕДНЕВНО
НЕПРЕРЫВНО
TDD
Билд
Рефакторинг
Интеграция
Сотрудничество
Билд
«Стендап» собрание
Тестирование
Планирование
Оценка
Ретроспектива
«Бэклог»
План выпуска
Оценка
Видение
Цели
Соглашения
Бюджет
Адаптивность
Прозрачность
Простота
Единство
Наглядность
Осталось сделать
Производительность
Сделано
Тесты
Модели разработки ПО
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 25/301
Рисунок 2.1.f — Итерационный подход в рамках гибкой модели и scrum
Главным недостатком гибкой модели считается сложность её применения к крупным проектам, а также частое ошибочное внедрение её подходов, вызванное недопониманием фундаментальных принципов модели.
Тем не менее можно утверждать, что всё больше и больше проектов начи- нают использовать гибкую модель разработки.
Очень подробное и элегантное изложение принципов применения гибкой модели разработки ПО можно найти в статье «The Agile System Develop- ment Life Cycle
»
38
1 2 3 4 5 6 7 8 9 ... 38