Назад в библиотеку
Первоисточник: https://cyberleninka.ru/article/n/avtomatizatsiya-testirovaniya-v-devops-podhody-i-luchshie-praktiki

Автоматизация тестирования в DevOps: подходы и лучшие практики

Тюменцев Д.В.

Восточно-Сибирский государственный университет технологий и управления (Россия, г. Улан-Удэ)

DOI: 10.24412/2500-1000-2024-2-2-156-159

Аннотация. Статья рассматривает ключевые аспекты интеграции автоматизации тестирования в практики DevOps. Анализируются методы автоматизации, включая Continuous Integration и Continuous Delivery, Test-Driven Development, а также преимущества их применения на примере успешных кейсов международных компаний. Освещается роль автоматизированного тестирования в оптимизации процессов разработки и управления инфраструктурой, способствующей эффективному устранению ошибок и уязвимостей.

Ключевые слова: DevOps, автоматизация тестирования, Continuous Integration, Continuous Delivery, Test-Driven Development, управление качеством ПО.

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

Принципы стратегии автоматизации и развертывания (development and operations -- DevOps) ПО учитывают эти требования в своих практиках [1]. Внедрение практик DevOps помогает улучшить качество будущего продукта и оптимизировать финансовые, технические и временные затраты на тестирование. Кроме того, это позволяет начать цикл тестирования на более ранних этапах разработки, что обеспечивает своевременное обнаружение возможных ошибок и их быстрое устранение.

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

По данным исследования компании GitLab (Швеция), в 2022 году 77% компаний использовали методы автоматизации и развертывания ПО в своей работе [2]. Аналитики международной консалтинговой компании IMARC Group опубликовали отчет о прогнозировании роста глобального рынка DevOps, согласно которому к 2027 году рынок достигнет 25,5 млрд долларов, а среднегодовой темп роста составит 19,7% [3].


Прогноз роста глобального рынка DevOps с 2023-2028 гг.
Рисунок 1 – Прогноз роста глобального рынка DevOps с 2023-2028 гг.


Такое масштабное внедрение технологий автоматизации и развертывания в производство ПО объясняется преимуществами используемой методологии, которая призвана обеспечить решением следующие задачи современной IТ-организации [4]:

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

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

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

Для осуществления поставленных задач стратегия автоматизации и развертывания ПО использует следующие подходы [5]:

  1. Continuous Integration (CI). Систематическое объединение изменений в главную ветку кода. CI автоматизирует процесс сборки и тестирования кода, что позволяет быстро обнаруживать и исправлять ошибки.
  2. Continuous Delivery (CD). ПО автоматически собирается, тестируется и развертывается в производственной среде. CD позволяет быстро и безопасно выпускать новые версии ПО.
  3. Test-Driven Development (TDD). Подход, при котором разработчики сначала пишут тесты, а затем код, который проходит эти тесты. TDD помогает обеспечить качество кода и ускорить процесс разработки.
  4. Behavior-Driven Development (BDD). Объединяет разработчика и тестировщика, чтобы определить поведение системы на основе требований пользователей.
  5. Automated Testing. Использование автоматизированных тестов для проверки функциональности и производительности программного обеспечения.
  6. Monitoring and Logging. ПО автоматически отслеживает и записывает информацию о его работе, такую как ошибки, предупреждения и метрики производительности.

Компания Micro Focus (Великобритания) в 2022 году опубликовала сведения о внедрении корпорациями практик DevOps в свою работу [6]. Опираясь на это исследование, автор проанализировал и систематизировал полученные данные (таблица 1).


Таблица 1 – Опыт корпораций в применении практик DevOps [7]
Компания Внедренная практика / инструмент Результат
Amazon Инструменты контроля версий Git и GitHub, инструмент внутреннего развертывания Apollo, Amazon Web Services (AWS). Сокращение расходов на серверную мощность, переход к непрерывному процессу развертывания.
Netflix Набор автоматизированных инструментов Simian Army. Развертывание кода до тысячи раз в день.
Walmart Облачная технология OneOps, инструменты с открытым исходным кодом Hapi. Автоматизация и ускорение развертывания приложений.
Facebook Перенос инфраструктуры на платформу управления конфигурациями Chef. Автоматизация обновления приложений каждые две недели.
Adobe Комплексная платформа DevOps CloudMunch для автоматизации и управления развертываниями. Улучшенное управление продуктами, сокращение времени доставки, удовлетворение спроса на разработку приложений более чем на 60%.
Digital media group Автоматизированная система облачной доставки из инструментов с открытым исходным кодом и решений SaaS. Сокращение времени доставки до нескольких минут, оптимизация ресурсов и уменьшение затрат.
Fidality Worldide Investment Автоматизированная система выпуска ПО. Экономия до 2,3 млн долларов в год.

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

  1. Внедрение инструментов непрерывной интеграции и развертывания CI и CD облегчило автоматическую компиляцию, тестирование и развертывание кода, и тем самым ускорило цикл разработки и сократило время вывода на рынок новых функций.
  2. Контейнеризация и оркестровка обеспечили автоматическое масштабирование приложения в зависимости от нагрузки, оптимизируя использование вычислительных ресурсов и снижая затраты на инфраструктуру.
  3. Использование облачных платформ и инструментов контейнеризации позволило создать гибкую и масштабируемую инфраструктуру.

Стоит обратить внимание на то, что разработка и использование новых инструментов и технологий позволят автоматизировать более широкий спектр задач -- от развертывания и тестирования до мониторинга и обеспечения безопасности. Интеграция с искусственным интеллектом (AI) и машинным обучением (ML) помогут усовершенствовать классический функционал DevOps и интегрировать в систему новые эффективные компоненты [3]. Алгоритмы ML могут помочь в определении оптимальных конфигураций инфраструктуры, а AI может использоваться для автоматического анализа и обработки данных, полученных в результате мониторинга и тестирования.

Вывод

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

Библиографический список

  1. Artemov A. Programming languages in data engineering: overview, trends and practical application // Инновационная наука. -- 2023. -- №10-2.
  2. Болкусов Г.Э. DevOps как инструмент для развития бизнеса // Современные проблемы экономического развития. -- Омск, 2023. -- С. 27-32.
  3. Бороздин Н.М. Исследование и анализ практических преимуществ микросервисной архитектуры для современных веб-приложений // Инновационные научные исследования в современном мире. -- Омск, 2023. -- С. 279-284.
  4. Шайхулов Э.А. Роли и структура организации в IT-компании // Тенденции развития науки и образования. -- 2023. -- № 99(7). -- С. 96-99.
  5. Koshekov, K., Kobenko, V., Koshekov, A., Moldakhmetov, S. hand-written character structure recognition technology on the basis of identification measurements // ARPN: Journal of Engineering and Applied Sciences, 2020, 15(21). -- Pp. 2555-2562.
  6. Тюменцев, Д.В. Devops в эпоху облачных технологий: современные практики и перспективы развития / Д.В. Тюменцев // Вестник науки. -- 2023. -- Т. 2, № 8(65). -- С. 190-195. -- EDN AGNLBG.
  7. Можаровский Е.А. Интеграция больших языковых моделей (LLM) в мобильные приложения / Е.А. Можаровский // Инновационные подходы в современной науке: сб. ст. по материалам CLIX Международной научно-практической конференции «Инновационные подходы в современной науке». -- № 3(159). -- М., Изд. «Интернаука», 2024.