Rusau LearnВойти

Теория тестирования

Модели разработки ПО: водопад, V-модель, итерации, SDLC и STLC

Модель разработки ПО задаёт, в каком порядке идут этапы жизненного цикла продукта: требования, проектирование, код, тестирование, выпуск и поддержка. В водопадной модели следующий этап начинается только после окончания предыдущего, V-модель ставит к каждому этапу разработки свой уровень тестирования, а итерационная повторяет весь цикл короткими итерациями, и продукт растёт частями. SDLC называют весь жизненный цикл разработки ПО, а STLC – цикл тестирования внутри него, от анализа требований до отчёта.

Мой видеоурок: Урок 7. Модели разработки ПО. Водопадная, итерационная и V-модельОткрыть на YouTube
Последовательные
водопад и 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 модель выбирают по целям проекта, типу продукта, бизнес-приоритетам и рискам.

Посмотреть программы курсов

Программа каждого курса открыта целиком: видны все модули, уроки и число шагов.

Все курсы

Здесь используются cookies: без них сайт не работает, и по ним видно, откуда о платформе узнают.Cookies нужны для входа и учёта переходов. Подробнее