Что пишут в блогах

Подписаться

Что пишут в блогах (EN)

Разделы портала

Онлайн-тренинги

.
Введение в пайплайны непрерывной интеграции (CI) и непрерывной поставки (CD) для тестировщиков
08.07.2025 00:00

Автор: Эди Стоукс (Ady Stokes)
Оригинал статьи
Перевод: Ольга Алифанова

Введение

Тестировщики, слыша фразу «пайплайн CI/CD», обычно реагируют двумя способами. Те, кто тесно работал с пайплайнами или занимался автоматизацией, видят в этом возможность. Однако те, кто от автоматизации далек, часто пугается. Я видел, как люди говорили или писали что-то вроде:

  • Я не очень в этом разбираюсь, это какая-то автоматизация.
  • Я ручной тестировщик и не участвую в пайплайнах.
  • Я не пишу код, мне не нужно об этом знать.
  • Этим занимаются специально обученные люди – это не ко мне.

Пайплайны CI/CD – это, безусловно, часть автоматизации, но это не только и не столько это. В этой статье я расскажу, что это такое, почему тестировщикам надо понимать, как это работает, и почему это важно для них. Начнем с начала – разберемся, что это.

Что такое CI и CD?

Непрерывная интеграция (CI)

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

Непрерывная поставка/деплой (CD)

Это два связанных, но разных метода:

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

Если кратко, интеграция – часть процесса разработки, а поставка осуществляется после того, как код готов.

Что такое пайплайны CI/CD?

Определение пайплайнов CI/CD

Каждая организация, применяющая пайплайн CI/CD, определяет его по-разному. Вот ряд кратких определений от ведущих платформ CI/CD:

  • Пайплайн CI/CD – это набор автоматизированных шагов, помогающих командам быстрее, безопаснее и надежнее поставлять код – CircleCI.
  • Пайплайн CI/CD – это автоматизированный процесс, использующийся командами разработки ПО для упрощения создания, тестирования и деплоя приложений – GitLab.
  • Пайплайн CI/CD автоматизирует процесс поставки ПО. Пайплайн собирает код, прогоняет тесты (CI) и безопасно деплоит новую версию приложения (CD) – Semaphore.

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

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

  • Более быстрые релизы, сокращается время релиза на прод. Сборка, проверка и деплой кода занимают меньше времени.
  • Выше качество кода. Так как код тестируется сразу после коммита, все недоработки и ошибки быстро обнаруживаются.
  • Быстрая обратная связь. Похоже на предыдущий пункт – разработчики немедленно получают обратную связь, но так как код быстрее попадает на прод, обратная связь от пользователей или клиентов тоже приходит быстрее.
  • Снижено время простоя. Срочные исправления быстрее попадают на прод, что снижает время простоя, а также упрощает восстановление после падений и разрешение проблем.
  • Поддержка DevOps. Компании, объединяющие разработку и инженерию, чаще используют CI/CD.

Это не исчерпывающий список, но он покрывает основные преимущества пайплайнов для организаций.

Типы тестов, которые обычно запускаются в пайплайнах CI/CD


Визуализация из статьи Tech Target «CI / CD pipelines explained: Everything you need to know»

Пайплайны могут включать различные типы тестов. Вот ряд примеров.

  • Юнит-тесты. Эти тесты сконцентрированы на отдельных функциях или методах и валидируют основные блоки кода. Как правило, это самые быстрые автоматизированные тесты. Они помогают проверить логику и повысить уверенность разработчиков при рефакторинге базы кода.
  • Регрессионные тесты. Эти тесты сконцентрированы на последствиях изменений кода и обычно накапливаются со временем, проверяя основную функциональность. Они также могут включать тесты, созданные после обнаружения багов или проблем. Они повышают уверенность в релизах.
  • Интеграционные тесты. Эти тесты проверяют, что модули или компоненты правильно работают вместе. Компоненты могут включать базы данных, API, микросервисы и т. д. эти тесты особенно хороши для выявления проблем с зависимостями или потоками данных.
  • Тесты производительности. В зависимости от тестируемого приложения или системы, эти тесты могут изучать масштаб, время ответа, деградацию, и т. д. По сути они выявляют все, что может замедлить систему, и могут пригодиться для оптимизации производительности.
  • Тесты API. В основном сконцентрированы на валидации логики ответов конечной точки, и могут также покрывать целостность данных. Важны, если используются микросервисы.
  • Тесты безопасности. Автоматизированные тесты безопасности – хороший способ убедиться, что покрыты все очевидные вопросы безопасности. Автоматизированные тесты проникновения и сканеры уязвимостей не могут заменить опытного хакера, но позволяют человеку сконцентрироваться на наиболее важном тестировании. В некоторых областях они требуются законодательно.
  • End-to-end тесты. Как правило, сконцентрированы на сценариях конечного пользователя, и это наиболее дорогие и нестабильные тесты. Несмотря на это, если они хорошо спроектированы, то добавляют уверенности, что все основные функциональности работают как следует. Их также можно рассматривать, как наивысшую форму развития интеграционных тестов – они смотрят на функциональность системы в целом.

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

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

Почему пайплайны CI/CD важны для тестировщиков

Как можно видеть, пайплайнов CI/CD не стоит бояться. Если даже вы не специалист по автоматизации, то, как тестировщик, вы можете участвовать в пайплайне разнообразными способами. Вам нужно поддерживать эти практики и процессы, разобраться в них – в правильном окружении они очень полезны для тестирования. Ваше участие в тестах пайплайна не только повысит качество, но также упрочит вашу репутацию и ценность для команды.

Ниже – самые значимые преимущества для тестировщиков (и компаний, применяющих пайплайны CI/CD):

  • Улучшенное исследовательское тестирование. Как все мы отлично знаем, автоматизированное тестирование имеет свои пределы. Хорошие практики CI/CD позволяют тестировщикам сконцентрироваться на исследовательском тестировании, тщательном изучении приложения или системы. Они могут посвятить себя сложным сценариям, которые нелегко автоматизировать.
  • Характеристики качества системы / нефункциональное тестирование. Когда множество функциональных тестов автоматизировано, тестировщики могут сконцентрироваться на таких областях, как безопасность, производительность и доступность. Они могут вволю развернуться с критическим мышлениям, вгрызаясь в такие области, как тестируемость. Дают ли логирование мониторинг нужный уровень наблюдаемости, чтобы реагировать на проблемы? Качество системы можно улучшить множеством способов, если уделить этому время и внимание.
  • Повышение качества тестов пайплайна при помощи ревью. Тестировщик, возможно, не пишет автоматизированные тесты сам, но он может провести их ревью и предложить новые. Возможно, нам не хватает критичных тестов, которые можно автоматизировать? Единообразно ли мы тестируем? Можно ли урезать раздутый набор тестов? Тестировщики могут объективно и с пользой поучаствовать в разработке набора автотестов, разобравшись, что у нас есть сейчас, и применив свои навыки, чтобы улучшить имеющееся.

Великие тестировщики, хорошо знающие, как работают системы и автоматизация, могут принести много пользы, проводя комплексные ревью – даже если не пишут код сами. Тестировщиков часто называют тем клеем, который держит команды, и мир CI/CD – не исключение.

Дополнительные ресурсы