QA Engineer
  • Введение
  • FAQ
    • Качества и навыки, которыми нужно обладать тестировщику?
    • Что должен знать и уметь Midle? Что спросят на собеседовании?
    • Как происходит процесс найма?
    • Как проходить собеседование?
    • Ошибки в работе у начинающих тестировщиков
    • Как взаимодействовать с коллегами?
  • МОДУЛЬ 1. ТЕОРИЯ ТЕСТИРОВАНИЯ
    • Общее понимание тестирования
  • Виды тестирования
    • Функциональное тестирование
    • Нефункциональное тестирование
    • Тестирование связанное с изменениями
  • Уровни тестирования
  • Методы тестирования
    • Black box testing
    • White Box Testing
    • Grey box testing
  • Тест-Дизайн
  • Тестовая документация
    • Требования
      • Тестирование требований
    • Тест-план
    • Чек-лист
    • Тест-кейс
    • Баг-репорт
  • ЗАДАНИЕ. ТЕСТ
  • МОДУЛЬ 2. API (BackEnd)
    • API. Что это?
  • Архитектуры ПО
    • Монолитная архитектура
    • Микросервисная архитектура
  • Брокеры сообщений
    • Kafka
  • Клиент-серверное взаимодействие
  • Тестирование API (BackEnd)
    • REST и SOAP
    • jRPC
    • JSON
    • XML
    • Протоколы
    • Коды состояния ответов HTTP(S)
    • Логирование (Logs)
  • Swagger
  • Postman
  • ЗАДАНИЕ. ТЕСТИРОВАНИЕ API
  • МОДУЛЬ 3. FRONTEND и WEB
    • Теория FrontEnd
    • Элементы интерфейса сайта
  • Верстка
  • Основы HTML
  • CSS
  • Сети и около них
    • Идентификация ресурсов в сети (Identifying resources on the Web)
    • Веб-сервис (WS - Web service)
    • Сокет/веб-сокет (socket/websocket)
    • Рендеринг в интернете (Rendering on the Web)
  • DevTools
    • Network
    • Application
    • Source
    • Elements
    • Console
    • Performances
  • Кроссбраузерность
  • Сетевые данные
    • Сache
    • Сookie
  • МОДУЛЬ 4. SDLC и STLC
    • Жизненный цикл разработки SDLC
    • Жизненный цикл тестирования STLC
    • Модели разработки ПО
      • «V-Model»
      • «Waterfall Model» (каскадная модель или «водопад»)
      • «Agile Model» (гибкая методология разработки)
    • Agile
    • Scrum
    • Подходы к разработке/тестированию
  • МОДУЛЬ 5. БАЗЫ ДАННЫХ.
    • Теория
    • Типы БД
      • Реляционные
      • Нереляционные
    • SQL. ОСНОВЫ
      • Работа с Select * From
      • JOIN
    • Задание
  • ALL SOFT (Ознакомление)
    • Jira и Confluence
    • SOAP UI
    • Git
    • Kibana
    • Docker
    • Jenkins
Powered by GitBook
On this page
  • Принцип работы Waterfall
  • На чем основана работа Waterfall
  • Преимущества и недостатки Waterfall
  • Почему Agile сейчас предпочтительнее
  • Как понять, что проекту подойдет Waterfall
  1. МОДУЛЬ 4. SDLC и STLC
  2. Модели разработки ПО

«Waterfall Model» (каскадная модель или «водопад»)

Previous«V-Model»Next«Agile Model» (гибкая методология разработки)

Last updated 1 year ago

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

Принцип работы Waterfall изобрел ученый-информатик Уокер Ройс. Модель получила название в 1976 году благодаря Томасу Тейеру и Томасу Беллу. В первые годы существования каскадная модель использовалась в любых видах программного обеспечения. Сейчас она применяется в технических, финансовых и медицинских секторах. Уход от программного обеспечения произошел из-за появления системы Agile.

Принцип работы Waterfall

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

Этап аналитики. На этапе от команды требуется получить максимально подробную информацию о проекте. Составляется техническое задание, обозначаются сроки по задаче и план работ. Необходимо учесть все возможные риски. Только когда все подробно просчитано и описано, можно переходить к следующему этапу. Это один из самых важных этапов, поскольку в дальнейшем нельзя отступать от плана.

Этап проектирования. В разработке ПО цикл предусматривает создание прототипа, дизайн-макета, платформы для программирования. Также нужно расписать роли для всех членов команды.

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

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

Этап эксплуатации. Продукт выпускается и согласуется с заказчиком. Затем идет финальный анализ, исправление критичных багов, сбор обратной связи. Если ошибок найдено слишком много, работу придется начинать с начала.

Этап поддержки. Исполнитель поддерживает работу проекта на стабильном уровне, собирает обратную связь от пользователей, устраняет сбои, если они возникают.

На чем основана работа Waterfall

Каскадная система Waterfall состоит из последовательных этапов с четко обозначенными сроками, а, значит, инструмент контроля должен учитывать эту специфику. Одним из наиболее удобных инструментов является горизонтальная гистограмма, также известная как диаграмма Ганта. Она состоит из двух осей, где по вертикали прописаны этапы, а по горизонтали — время, затраченное на их выполнение. Здесь же можно прописать и ответственных за исполнение задач. Диаграмма универсальна: ее можно построить как в специализированных сервисах, так и в таблице Excel и на бумаге.

Преимущества и недостатки Waterfall

Преимущества Waterfall

  • Точный и подробный план работ. Это главный плюс системы: на этапе анализа все процессы досконально изучаются, рассматриваются возможные риски, распределяются ответственные. Каждое действие продумывается и фиксируется, а исполнителям остается лишь следовать плану.

  • Понимание сроков и бюджетных затрат. Вместе с этапами работ рассчитываются и финансовые затраты, которые потребуются команде. Это удобно и для исполнителей, и для заказчиков — снижается риск непредвиденных расходов. Также заранее известна конечная дата реализации проекта, на нее может повлиять только форс-мажор.

  • Нет трат на внутрикомандную коммуникацию.Исполнителям не нужно вникать с нуля в рабочий процесс — достаточно просто выполнять действия по плану. Это важно, например, при появлении новых людей в команде.

Недостатки Waterfall

  • Система не готова быть гибкой. Главная проблема кроется в невозможности предсказать все сложности в проекте заранее. Допустим, из-за появления ошибки на этапе разработки или тестирования есть риск отменить работу полностью и начать все заново. Это потерянное время и средства.

  • Заказчик не задействован на этапах разработки и тестирования. Заказчику проекта представляется только конечный результат, с которым он может или согласиться, или нет. Иногда бывают необходимы комментарии в середине работы или появляются новые требования, которые на этапе анализа невозможно было учесть.

  • Обнаружение проблем только на этапе тестирования. Из-за того, что один этап нельзя делать раньше другого, некоторые баги становятся заметны только после написания кода. В результате повышаются временные затраты: команде приходится искать ошибку и исправлять все на одном этапе. Обычно время при этом ограничено.

Почему Agile сейчас предпочтительнее

Выход Agile на первый план связан со сместившимся акцентом на пожелания заказчика при создании программного обеспечения. С развитием и распространением ПО требовалось максимальное погружение его в проект, чтобы контролировать изменения, взаимодействовать с командой, предлагать нововведения. Это можно было сделать только в гибкой системе работы, которой Waterfall не является.

При работе с Agile возможно тестировать отдельные элементы проекта, не дожидаясь окончания этапа разработки. Это позволяет быстрее находить баги, которые влияют на работу системы и оперативно их исправлять. В результате сокращаются сроки разработки, нет риска дополнительных финансовых затрат. Относительным недостатком Agile можно назвать только необходимость в максимально обученной и мотивированной команде, которая может действовать в режиме быстрого переключения между задачами. Но это напрямую зависит от профессионализма работников.

Как понять, что проекту подойдет Waterfall

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

  • есть четкое понимание конечного результата и на него ничего не повлияет в процессе работы;

  • финансовых ресурсов и времени достаточно для реализации одного большого проекта;

  • требуется подробная и детальная документация по всему проекту и его этапам;

  • требуется строгое соблюдение последовательного плана;

  • выполнение значительной части работы по проекту связано с аутсорсом.

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