Agile и DevOps методологии в тестировании ПО

13 мая 2020
agile_1

В новой статье расскажем об особенностях методологий DevOps и Agile и их связи с процессом обеспечения качества программных продуктов.

Погружаясь в тестирование ПО, многие студенты сталкиваются со сложными и непонятными для них терминами. Такими являются DevOps и Agile. Предлагаем сегодня разобраться с данными понятиями, определить связь DevOps и Agile с процессом обеспечения качества ПО. Начнём с теории.

Agile

Agile — это семейство гибких подходов к разработке ПО. Agile-методов много (Scrum, Kanban, Scrumban и прочее), но все они базируются на 12 принципах, которые были закреплены в Манифесте гибкой разработки. 17 независимых лидеров отрасли составили этот документ в 2001 году.

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

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

Особенности гибкого подхода обеспечения качества:

  • Тестирование ПО перестаёт быть изолированным этапом, ведь команда работает над качеством продукта непрерывно.
  • Оценка соответствия ПО бизнес-требованиям происходит также в процессе разработки, а не перед релизом.
  • Подробная обратная связь ― залог продуктивной коммуникации.
  • Тестировщики участвуют в каждой итерации, что облегчает процесс вхождения в проект на старте.
  • Сокращение объёма тестовой документации, ведь команда обращается к многоразовым контрольным спискам.

Как видите, Agile помогает добиться большей продуктивности на этапе разработки продукта, ведь сводит долгий процесс к небольшим модулям. А что же стоит сказать о DevOps?

agile_3 (1)

DevOps

DevOps — это тесная интеграция процессов разработки, тестирования и эксплуатации. Данная методология нацелена на повышение качества ПО и может выступать как культура создания и развития продукта. Этот термин является акронимом от английского development и operations (разработка и эксплуатация).

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

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

DevOps не служит заменой Agile, в то время как Agile вытеснил каскадный подход. DevOps является преемником Agile.

А теперь предлагаем детально разобраться, что разнит эти методологии.

agile_2 (1)

Черты Agile и DevOps

Набор командных навыков

  • Agile концентрируется на унификации навыков игроков команды.
  • DevOps разделяет зоны ответственности.

Целевая область

  • Agile фокусируется на разработке программного обеспечения.
  • В рамках DevOps игроки ищут комплексное бизнес-решение.

Связь

  • Scrum служит одним из наиболее популярных методов сотрудничества на базе Agile, когда члены команды проводят ежедневные встречи (обсуждение плана на день и подведение итогов работы предыдущего дня).
  • Для DevOps важное значение имеет создание проектной документации, которая служит единым источником информации для развития проекта.

Степень автоматизации процессов обеспечения качества

  • Agile прибегает к автоматизации процессов.
  • Для DevOps автоматизация является основной целью процесса, потому и инженеры по автоматизации играют ключевую роль в развитии проекта.

Нацеленность

  • Agile уделяет внимание функциональным и нефункциональным аспектам готовности продукта к релизу.
  • DevOps концентрируется на операционной и деловой готовности.

Возможности

  • Agile производит лучшие пакеты приложений с желаемыми требованиями. Он помогает легко адаптироваться в соответствии с изменениями, внесёнными в течение срока действия проекта.
  • DevOps способствует повышению качества ПО. Разработчики следуют практикам кодирования и архитектуры для поддержания стандартов качества.

Свойства

  • Agile предлагает более короткий цикл разработки и эффективное выявление дефектов.
  • DevOps поддерживает цикл релизов Agile.

Схема процесса

agile_devops_en

Итак, давайте обобщим

DevOps и Agile являются методологиями, которые поддерживают организацию работы по созданию программного продукта. DevOps помогает объединить разработчиков, тестировщиков и экспертов по эксплуатации при работе в общем потоке. Agile же является итеративным вариантом сотрудничества, когда общение разных специалистов происходит в рамках повторяющихся циклов.

DevOps и Agile не противопоставляются друг другу, ведь имеют в своей основе общие принципы сближения разных этапов работы над программным продуктом.

Тестирование ПО является важным аспектом и для DevOps, и для Agile. Гибкая методология позволяет раньше выявлять ошибки кода, а интеграция разных специалистов помогает формировать более точные требования к качеству ПО на ранних этапах разработки.

Всё больше компаний обращается к данным методологиям для организации рабочих процессов. А вместе с тем и растёт значение QA-инженеров как профессионалов в области обеспечения качества программных продуктов. Если есть спрос, то должны быть и предложения.

Попробуйте свои силы в тестировании. Вы сможете освоить перспективную ИТ-профессию, если запишетесь на курсы QA Academy.