Теория тестирования
Модели разработки ПО: водопад, V-модель, итерации, SDLC и STLC
Модель разработки ПО задаёт, в каком порядке идут этапы жизненного цикла продукта: требования, проектирование, код, тестирование, выпуск и поддержка. В водопадной модели следующий этап начинается только после окончания предыдущего, V-модель ставит к каждому этапу разработки свой уровень тестирования, а итерационная повторяет весь цикл короткими итерациями, и продукт растёт частями. SDLC называют весь жизненный цикл разработки ПО, а STLC – цикл тестирования внутри него, от анализа требований до отчёта.
- Последовательные
- водопад и V-модель: этап начинается после окончания предыдущего
- Итерационные
- цикл повторяется, продукт растёт частями, отсюда вырос Agile
- SDLC и STLC
- об обоих циклах просят рассказать на собеседовании
Жизненный цикл ПО (SDLC) и его этапы
SDLC (Software Development Life Cycle) – жизненный цикл разработки программного обеспечения: этапы, через которые продукт проходит от идеи до вывода из эксплуатации, и то, как они связаны между собой. Модель разработки определяет, в каком порядке эти этапы идут и сколько раз повторяются. Я разбираю их на примере онлайн-школы, которую решил запустить бизнес.
В современных командах тестировщик участвует почти во всех этапах: читает и анализирует требования, проверяет сборки во время разработки, помогает при развёртывании и поддержке. На этапе идеи его обычно ещё не зовут, а дальше работать на каждом этапе считается хорошей практикой.
На собеседовании весь цикл укладывается в пару минут, и рассказывать его можно своими словами. Ответ звучит сильнее, если к этапам привязать пример из учебного проекта или из работы.
Идея
Бизнес решает сделать продукт, например онлайн-школу, и поручает его своей команде или приходит с идеей в аутсорс-компанию.
Требования
Аналитики общаются с бизнесом и переводят его желания в требования. Бизнес-аналитики пишут пользовательские требования, системные аналитики описывают ещё и техническую реализацию.
Дизайн
Здесь это проектирование архитектуры: на каком языке писать, как устроить фронтенд и бэкенд, какие фреймворки и какую базу данных взять. Макеты интерфейса дизайнеры рисуют раньше, ещё вместе с требованиями.
Разработка
Фронтенд-, бэкенд- и фулстек-разработчики пишут код, который должен делать то, что записано в требованиях.
Тестирование
Тестировщики сравнивают ожидаемый результат из требований с фактическим, который получился в коде.
Развёртывание
Проверенное приложение выкладывают на рабочую среду (продакшен), доступную пользователям. Обычно это делает автоматический конвейер CI/CD.
Поддержка
Служба поддержки помогает пользователям с проблемами, а команда исправляет то, что нашлось после выпуска.
Вывод из эксплуатации
Когда продукт теряет актуальность, его закрывают, и для этого тоже есть свой набор действий.
Водопадная (каскадная) модель
Водопадная, или каскадная, модель (waterfall) – классическая модель, в которой этапы идут строго друг за другом. Пока не закончен сбор требований, к анализу не переходят, и так на каждом шаге вплоть до дизайна, кода, тестирования и поддержки. Тестирование начинается только после того, как написан весь код.
Модель простая и понятная, но придумана для времени, когда требования менялись редко. Там, где они меняются постоянно, её строгий порядок из достоинства превращается в недостаток.
Плюсы
Каждый этап полностью документирован, требования чёткие, сроки и затраты легко спланировать. Заказчик видит, когда начнётся каждый этап и сколько он займёт.
Минусы
Весь объём требований утверждают до начала проекта. Если их понадобится изменить позже, придётся вернуться к первому этапу и переделывать работу, а это лишние деньги и время.
Где применяют
В проектах с чёткими требованиями, которые не будут меняться, например в некоторых госучреждениях и банках. Ещё при переносе системы на другую платформу, когда требования те же и меняется только окружение, и когда компания пишет код, а тестирует заказчик или другая сторона.
Пример
Банк заказывает систему расчёта процентов по вкладам, и требования утверждают на весь проект вперёд. Тестировщик пишет тест-кейсы по утверждённой спецификации, но саму систему получает только после окончания разработки. Если на этом этапе выясняется, что в требованиях забыли о досрочном закрытии вклада, изменение проходит все этапы заново, начиная с требований, и срок сдачи сдвигается.
V-модель
V-модель, или V-образная модель, – доработанная каскадная. На левой стороне буквы V сверху вниз идут этапы разработки, на правой снизу вверх поднимаются уровни тестирования, а горизонтальные линии связывают каждый этап с уровнем, который его проверяет. Тестирование начинается уже на стадии требований, и на каждом этапе проверяют, можно ли переходить к следующему.
Пример: команда делает онлайн-регистрацию на рейс. Пока аналитики пишут требования, тестировщик готовит по ним приёмочные сценарии: регистрация, выбор места, посадочный талон в приложении. По описанию архитектуры он заранее планирует интеграционные проверки обмена данными с системой авиакомпании, и, когда код готов, тесты для каждого уровня уже написаны.
В программе ISTQB V-модель описана как модель, которая встраивает тестирование во весь процесс разработки и так воплощает принцип раннего тестирования. Её плюсы: строгие этапы, раннее планирование тестов и проверка требований, промежуточное тестирование на каждом этапе. В каскадной модели тестирование стоит строго после разработки, а здесь идёт всё время.
Негибкость осталась от водопада. Код пишут только в середине процесса, этапы по-прежнему идут друг за другом, и быстро внести изменение не получится. V-модель выбирают для проектов с ограничениями по времени и деньгам и для задач, которым нужно более широкое тестовое покрытие, чем даёт каскадная модель.
Требования заказчика и приёмочное тестирование
Проверяют, решает ли продукт задачу заказчика и пользователей.
Системные требования и системное тестирование
Проверяют, работает ли система целиком так, как описано в спецификации.
Архитектура и интеграционное тестирование
Проверяют, правильно ли взаимодействуют модули между собой и с внешними системами.
Детальный дизайн и компонентное тестирование
Проверяют каждый модуль по отдельности. В самом низу буквы V лежит написание кода.
Итерационная и инкрементная модель
В итерационной модели жизненный цикл разбит на мини-циклы, итерации. Каждая проходит те же этапы, что и в других моделях: требования, проектирование, код, тестирование. За итерацию разрабатывают отдельную часть системы и добавляют её к уже готовой функциональности. Такое приращение называют инкрементом, поэтому модель ещё называют инкрементной.
Я объясняю итерацию на цикле PDCA. На шаге Plan планируют и собирают требования, на шаге Do анализируют, проектируют и пишут код, на шаге Check тестируют, на шаге Act оценивают результат и пересматривают требования. Круг повторяется, пока все требования не окажутся в продукте, и тогда выходит релиз.
Из итерационной модели выросли гибкие методологии. В Scrum итерация, или спринт, по Scrum Guide длится не больше месяца. Программа ISTQB 2018 года относит к итерационным и инкрементным моделям RUP, Scrum, Kanban и спиральную модель, а водопад и V-модель называет последовательными. В версии программы 2023 года групп уже три: последовательные (водопад, V-модель), итерационные (спиральная модель, прототипирование) и инкрементные (Unified Process).
Плюсы
Работающая версия продукта появляется рано, потому что итерации короткие. Модель готова к изменению требований на любом этапе, а тестировать и оценивать риски проще на небольшой части продукта.
Минусы
Каждая итерация – самостоятельная единица, и итерации не накладываются друг на друга. Не все требования известны в начале, и это может усложнить построение общей архитектуры системы.
Где применяют
В крупных проектах, где известны ключевые требования и вехи (milestones), но не все детали, и где требования точно будут меняться по ходу разработки.
Пример
В первой итерации приложение доставки еды показывает меню и принимает заказ с оплатой наличными, во второй появляется оплата картой, в третьей – отслеживание курьера. В каждой итерации тестировщик проверяет новый инкремент и прогоняет регресс того, что вышло раньше: после подключения оплаты картой заказ с оплатой наличными должен работать как прежде.
Что такое STLC: цикл тестирования
STLC (Software Testing Life Cycle) – жизненный цикл тестирования: последовательность шагов внутри тестирования, которая ведёт к целям в области качества. О нём тоже просят рассказать на собеседовании, и ответ строится так же, как про SDLC: сначала определение, потом этапы.
Я разбираю восемь этапов. Первые три относятся к планированию и выполняются в начале проекта, а с четвёртого по восьмой повторяются в каждой итерации. Процессы в командах обычно итеративные, и за итерацию длиной в две-три недели пользователи должны получить новый инкремент.
В программе ISTQB процесс тестирования описан своими словами: планирование, мониторинг и контроль, анализ, проектирование тестов, их реализация и выполнение, завершение тестирования. Шаги называются иначе, но путь тот же, от требований и плана к прогону проверок и итогам.
1. Планирование и анализ требований
Тестировщик вычитывает требования, ищет в них противоречия и сообщает о них аналитикам. Здесь же пишут тест-план: кто тестирует, какие виды тестирования нужны, какими ресурсами, какие есть риски, критерии начала и окончания тестирования.
2. Уточнение критериев приёмки
Решают, когда тестирование заканчивается и в каком состоянии продукт можно отдавать на приёмку.
3. Уточнение стратегии тестирования
Выбирают методы, уровни и виды тестирования для проекта.
4. Разработка тест-кейсов и чек-листов
Пишут проверки, которые предстоит провести.
5. Выполнение тест-кейсов
Проходят проверки по написанной документации.
6. Фиксация дефектов
Найденные дефекты заводят в баг-трекинговую систему.
7. Анализ результатов
Смотрят, как прошло тестирование, и собирают метрики.
8. Отчётность
Готовят отчёт о результатах тестирования для заказчика, менеджеров и команды.
Видеоуроки, шпаргалки и задания
Модели разработки я разбираю в седьмом уроке курса "Тестировщик с нуля" на YouTube, а SDLC и STLC – в двух коротких роликах из разбора вопросов с собеседования. В бесплатном базовом курсе по тестированию модели идут уроком "Модели разработки ПО", и после теории в нём есть задания.
Шпаргалка по моделям объясняет, что каждая из них меняет в работе тестировщика, и приводит манифест Agile целиком. Шпаргалка по SDLC и STLC показывает оба цикла на одной схеме.
Курсы по теме
Вопросы и ответы
Какие модели разработки ПО существуют?
Чаще всего называют водопадную (каскадную) модель, V-модель и итерационную, или инкрементную, модель, из которой выросли гибкие методологии вроде Scrum и Kanban. В программе ISTQB 2018 года водопад и V-модель отнесены к последовательным моделям, а RUP, Scrum, Kanban и спиральная модель к итерационным и инкрементным.
Чем водопадная модель отличается от V-модели?
В обеих этапы идут последовательно. В водопаде тестирование начинается после окончания разработки, а в V-модели оно идёт с самого начала: к каждому этапу разработки привязан свой уровень тестирования, и тесты планируют ещё на стадии требований.
Чем итерационная модель отличается от водопадной?
Водопад проходит все этапы один раз и выдаёт продукт целиком в конце. Итерационная модель повторяет цикл короткими итерациями, после каждой появляется работающая часть продукта, поэтому изменения в требованиях она переносит легче.
Что такое SDLC простыми словами?
Это жизненный цикл разработки ПО, то есть этапы, которые продукт проходит от идеи до вывода из эксплуатации. В него входят идея, требования, проектирование архитектуры, разработка, тестирование, развёртывание, поддержка и закрытие продукта.
Чем SDLC отличается от STLC?
SDLC охватывает весь путь продукта от идеи до закрытия. STLC описывает только тестирование: анализ требований и планирование, критерии приёмки и стратегию, тест-кейсы, прогон, дефекты, анализ результатов и отчёт. Тестировщик работает в обоих циклах.
Какую модель разработки выбрать для проекта?
Водопад подходит проекту с чёткими и неизменными требованиями. V-модель выбирают при ограничениях по времени и деньгам, когда нужно широкое тестовое покрытие. Итерационная модель подходит крупному проекту, требования к которому будут меняться. По программе ISTQB модель выбирают по целям проекта, типу продукта, бизнес-приоритетам и рискам.
Посмотреть программы курсов
Программа каждого курса открыта целиком: видны все модули, уроки и число шагов.


