Жизненный цикл программного обеспечения

Software Development Lifecycle

Software Development Lifecycle

Результат слаженной работы команды — продукт или программное обеспечение:

  • сайт доставки пиццы
  • приложение мобильного банка
  • веб-браузер

Жизненный цикл программного обеспечения (SDLC) описывает ключевые этапы процесса создания программного обеспечения. И чем раньше QA инженер обнаружит ошибки, тем дешевле их будет исправить.

Этапы жизненного цикла программного обеспечения

Пример: запускаем онлайн-оплату в сервисе доставки пиццы

Команда хочет, чтобы пользователь мог выбрать пиццу и оплатить заказ картой.

1. Планирование

Команда решает, зачем нужна онлайн-оплата, сроки запуска, ответственных и основные риски, например сбой платежного сервиса.

Результат этапа План запуска: цель, сроки, ответственные и список рисков.
2. Анализ

Описываем правила оплаты: когда показывать кнопку, какие данные карты проверять, что делать при отказе банка, повторном клике или пустой корзине.

Результат этапа Требования, сценарии оплаты и критерии приемки.
3. Дизайн

Готовим макеты корзины, формы оплаты, экранов успеха и ошибки, а также статуса “Оплачен”.

Результат этапа Макеты экранов, тексты сообщений и схема переходов.
4. Разработка

Разработчики добавляют кнопку оплаты, интеграцию с платежной системой, сохранение статуса заказа и обработку успешной или отклоненной оплаты.

Результат этапа Рабочая оплата заказа в тестовом окружении.
5. Тестирование

QA проверяет успешную оплату, отказ банка, неверные данные карты, двойной клик по кнопке, пустую корзину, мобильную верстку и статус заказа после оплаты.

Результат этапа Проверенный релиз-кандидат; после успешной проверки оплату можно показать пользователям.
6. Поддержка

После релиза команда смотрит на жалобы, ошибки в логах и спорные заказы: чинит случаи, когда деньги списались, а заказ не создался.

Результат этапа Исправления и улучшения в следующих версиях.

Модели разработки программного обеспечения

Модели разработки показывают, как команда проходит этапы SDLC: последовательно от идеи к релизу или короткими циклами с регулярными улучшениями.

Водопадная модель
Waterfall SDLC model

Водопадная модель — это подход, где этапы идут один за другим: сначала требования и дизайн, затем разработка, тестирование и релиз.

Когда удобно
  • Понятен порядок работ и зона ответственности
  • Проще заранее оценить сроки и объем
  • Хорошо подходит для стабильных требований
На что обратить внимание
  • Поздние изменения приводят к дорогим переделкам
  • Обратная связь приходит ближе к релизу
Гибкая модель
Agile SDLC model

Гибкая модель — это подход, где команда работает короткими итерациями, регулярно показывает рабочие версии и уточняет следующие шаги по обратной связи. Scrum — один из способов организовать такую работу по спринтам.

Когда удобно
  • Пользователи и заказчик раньше видят рабочий результат
  • Проще адаптироваться к новым требованиям
  • QA проверяет изменения чаще и раньше находит проблемы
На что обратить внимание
  • Нужна регулярная синхронизация команды
  • Без дисциплины требования и документация быстро расходятся
Команда доставки пиццы проверила оплату заказа: карта проходит, отказ банка обрабатывается, заказ получает нужный статус. После какого этапа оплату можно показать пользователям?