В новой статье расскажем об особенностях методологий DevOps и Agile и их связи с процессом обеспечения качества программных продуктов.
Погружаясь в тестирование ПО, многие студенты сталкиваются со сложными и непонятными для них терминами. Такими являются DevOps и Agile. Предлагаем сегодня разобраться с данными понятиями, определить связь DevOps и Agile с процессом обеспечения качества ПО. Начнём с теории.
Agile
Agile — это семейство гибких подходов к разработке ПО. Agile-методов много (Scrum, Kanban, Scrumban и прочее), но все они базируются на 12 принципах, которые были закреплены в Манифесте гибкой разработки. 17 независимых лидеров отрасли составили этот документ в 2001 году.
Гибкий подход направлен на сокращение рисков, ведь разработка программного продукта состоит из ряда коротких этапов. Такие модули называются итерациями и могут продолжаться 2-3 недели. По итогам каждой итерации подводятся промежуточные итоги, анализируются успехи и упущения истекшего периода.
Agile-методы направлены на демократизацию подходов к организации рабочего процесса внутри команды: интерактивная разработка, оперативное обновление требований заказчика, прозрачность коммуникативных процессов, создание экспертных групп для решения поставленных бизнес-целей. Agile testing наследует принципы разработки.
Особенности гибкого подхода обеспечения качества:
- Тестирование ПО перестаёт быть изолированным этапом, ведь команда работает над качеством продукта непрерывно.
- Оценка соответствия ПО бизнес-требованиям происходит также в процессе разработки, а не перед релизом.
- Подробная обратная связь ― залог продуктивной коммуникации.
- Тестировщики участвуют в каждой итерации, что облегчает процесс вхождения в проект на старте.
- Сокращение объёма тестовой документации, ведь команда обращается к многоразовым контрольным спискам.
Как видите, Agile помогает добиться большей продуктивности на этапе разработки продукта, ведь сводит долгий процесс к небольшим модулям. А что же стоит сказать о DevOps?
DevOps
DevOps — это тесная интеграция процессов разработки, тестирования и эксплуатации. Данная методология нацелена на повышение качества ПО и может выступать как культура создания и развития продукта. Этот термин является акронимом от английского development и operations (разработка и эксплуатация).
Традиционный каскадный подход разработки ПО включает отдельные этапы, которые следуют друг за другом подобно водопаду. DevOps же позволяет интегрировать разные аспекты создания программного продукта в единый непрерывный процесс. В рамках этой методологии эксперты по эксплуатации или тестировщики напрямую сотрудничают с разработчиками, чтобы внести коррективы. Таким образом оценивается не готовый к релизу продукт, а некоторые функциональности. Тестирование продукта может проходить вручную или с применением средств автоматизации. О свойствах мануального тестирования и автоматизации в процессе обеспечения качества мы рассказали в нашей статье.
Итак, Agile и DevOps являются близкими по сути методами, в основе которых лежит гибкий подход к разработке ПО и стремление сблизить процессы написания кода и тестирования. В этом заключается их основное отличие от более ранних каскадных подходов, которые предлагали переходить к новому этапу, тестированию, только после завершения предшествующего, написание кода. Такая жесткая иерархия шагов отнимала много времени и дистанцировала игроков команды.
DevOps не служит заменой Agile, в то время как Agile вытеснил каскадный подход. DevOps является преемником Agile.
А теперь предлагаем детально разобраться, что разнит эти методологии.
Черты Agile и DevOps
Набор командных навыков
- Agile концентрируется на унификации навыков игроков команды.
- DevOps разделяет зоны ответственности.
Целевая область
- Agile фокусируется на разработке программного обеспечения.
- В рамках DevOps игроки ищут комплексное бизнес-решение.
Связь
- Scrum служит одним из наиболее популярных методов сотрудничества на базе Agile, когда члены команды проводят ежедневные встречи (обсуждение плана на день и подведение итогов работы предыдущего дня).
- Для DevOps важное значение имеет создание проектной документации, которая служит единым источником информации для развития проекта.
Степень автоматизации процессов обеспечения качества
- Agile прибегает к автоматизации процессов.
- Для DevOps автоматизация является основной целью процесса, потому и инженеры по автоматизации играют ключевую роль в развитии проекта.
Нацеленность
- Agile уделяет внимание функциональным и нефункциональным аспектам готовности продукта к релизу.
- DevOps концентрируется на операционной и деловой готовности.
Возможности
- Agile производит лучшие пакеты приложений с желаемыми требованиями. Он помогает легко адаптироваться в соответствии с изменениями, внесёнными в течение срока действия проекта.
- DevOps способствует повышению качества ПО. Разработчики следуют практикам кодирования и архитектуры для поддержания стандартов качества.
Свойства
- Agile предлагает более короткий цикл разработки и эффективное выявление дефектов.
- DevOps поддерживает цикл релизов Agile.
Схема процесса
Итак, давайте обобщим
DevOps и Agile являются методологиями, которые поддерживают организацию работы по созданию программного продукта. DevOps помогает объединить разработчиков, тестировщиков и экспертов по эксплуатации при работе в общем потоке. Agile же является итеративным вариантом сотрудничества, когда общение разных специалистов происходит в рамках повторяющихся циклов.
DevOps и Agile не противопоставляются друг другу, ведь имеют в своей основе общие принципы сближения разных этапов работы над программным продуктом.
Тестирование ПО является важным аспектом и для DevOps, и для Agile. Гибкая методология позволяет раньше выявлять ошибки кода, а интеграция разных специалистов помогает формировать более точные требования к качеству ПО на ранних этапах разработки.
Всё больше компаний обращается к данным методологиям для организации рабочих процессов. А вместе с тем и растёт значение QA-инженеров как профессионалов в области обеспечения качества программных продуктов. Если есть спрос, то должны быть и предложения.
Попробуйте свои силы в тестировании. Вы сможете освоить перспективную ИТ-профессию, если запишетесь на курсы QA Academy.