Рубрики
Uncategorized

16 лучших практик трубопровода CI/CD для автоматизации испытаний на скорость

В этой статье я бы выделил лучшие практики для конвейера CI/CD в отношении автоматизации тестирования, чтобы помочь вам выйти на свой выпуск на рынок. Tagged с DevOps, Testing, WebDev, ShowDev.

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

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

Мы уже рассмотрели CD/CD в одной из наших предыдущих статьи о Что такое непрерывная интеграция и непрерывная доставка? Где мы обсуждали, о чем они? Инструменты торговли, связанные с трубопроводом CI/CD. Каждая ошибка, которая раскрывается на этапе тестирования/проверки, проходит строгий процесс разработки, интеграции, тестирования и закрытия. В случае выполнения этой деятельности вручную это может стоить значительного количества человеко-часов и усилий по проверке, поэтому идеально идеально иметь ‘Test Automation’ в CI/CD.

«Трубопровод развертывания» и роль автоматизации тестирования в CI/CD

Автоматизированная система, называемая как Развертывание трубопровод В CI/CD задают работу по автоматизации тестирования инкрементных сборок, доступных на сервере. Поскольку весь процесс автоматизирован, общее время поворота (TAT) было бы значительно меньше по сравнению с ручным тестированием.

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

Хотя существует несколько преимуществ использования тестирования автоматизации, некоторые из ключевых преимуществ использования автоматизации тестирования в конвейере CI/CD ниже:

  • Более быстрое закрытие ошибок -обнаружение проблем -> Исправление выпуска -> Закрытие выпуска.
  • Эффективное использование общих ресурсов в руке, то есть тестеров, тестирования инфраструктуры и т. Д.
  • Возможность выполнять тесты параллельно.
  • Согласованность в планировании тестов и исполнении.
  • Минимальное требование технических навыков, необходимых для автоматического выполнения тестирования.

Как сделать максимальную отдачу от автоматизации тестирования в трубопроводе CI/CD?

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

Постепенные изменения и своевременное общение

Разработчики могут следовать подходу большого банка для разработки новой функции или решить проблему, о которой сообщается команда тестирования. Это означает, что разработчик будет использовать опцию, где он будет продвигать реализацию функции за один выстрел. Хотя работа по реализации выполнена, есть проблемы с таким подходом. Основным недостатком является то, что становится чрезвычайно трудно изолировать проблему (если есть проблема с реализацией

Мудрый подход будет заключаться в том, чтобы разбить функцию на различные подразделения и использовать Уникальные функции флагов Для каждой функции. Этот метод не только помогает в изоляции потенциальных проблем, но и может сыграть важную роль в создании постепенных объектов, когда возникает необходимость. Это также уменьшает вероятность возникновения проблем интеграции, когда конечная функция (которая представляет собой комбинацию многих подчинений) подталкивается к филиалам магистральной линии/производства.

Могут быть сценарии, в которых существуют взаимозависимости между функциями, т. Е. Функцией «A» зависит от функции «B», и в этом случае любой разработчик должен ждать 100% завершения функции, от которой существует зависимость. Правильно используя флаги Stubs & Feature, обе разработчики функций могут избежать ситуации тупика, так как заглушки будут использоваться для реализации, которая планируется/находится в процессе прогресса. После того, как необходимая функция будет готова, разработчик должен избавиться от реализации на основе на основе на основе на основе на основе на основе на основе на основе на основе на основе на основе на основе на основе на основе на основе на основе на основе на основе на основе на основе на основе на основе застежки, которая была лишь заполнителем для реализации известного интерфейса.

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

Идентификация тестов, которые могут быть автоматизированы

Как упоминалось ранее, маловероятно, что 100% тестов могут быть автоматизированы, поскольку, по крайней мере, некоторые тесты, где ручное тестирование будет более эффективным по сравнению с тестами на автоматизацию. Поскольку автоматизация тестов является конвейером CI/CD, реализация тех тестовых случаев, которые могут быть автоматизированы, является важнейшей наилучшей практикой для CI/CD.

Две широкие категории тестов, которые могут быть автоматизированы:

Тесты, которые выполняются на частой основе: Если такие тесты выполняются «вручную» тестерами, они могут быть подвержены ошибкам, поскольку производительность может снизиться, поскольку тестеры должны выполнять один и тот же тест несколько раз в день. Возьмите случай с веб -продуктом, который должен быть проверен на Тестирование совместимости браузера Анкет Некоторые тестовые сведения могут включать в себя съемку экрана вашего веб-приложения, в то время как он тестируется на различных комбинациях браузеров/устройств/операционных систем. Сделать снимок экрана для каждой из этих комбинаций может быть утомительной задачей. Следовательно, автоматизированный Cross Browser Testing может освободить ваши тестеры для Написание эффективных тестовых случаев Анкет

Тесты, которые требуют знания и имеют зависимость от конкретного набора тестеров: Зависимость от ресурсов (разработчиков/тестеров), которые имеют только знание домена, необходимые для выполнения тестов, может быть рискованной, если этот ресурс недоступен на критическом этапе проекта. Поскольку только этот тестер знает о предварительных условиях и процедуре тестирования, его отсутствие может повлиять на общие результаты проекта. Таких ситуаций можно избежать, включив автоматизацию тестов в трубопровод CI/CD, чтобы сроки проекта не затрагиваются

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

Миграция на один клик

Усилия по перемещению изменений кода в производственную среду могут быть значительно сокращены, если есть функция одного щелчка для переноса кода из одной среды приложения в другую. Хорошо архизированный трубопровод CI/CD должен иметь миграцию в один щелчок, поскольку он уменьшает трение (в кодовой миграции) между различными операциями. Выбор хорошей облачной инфраструктуры, которая обеспечивает эту функцию и эффективное и элегантное использование автоматизации тестов может оптимизировать процесс разработки и эксплуатации. Проталкивание вашей разработки через один щелчок отлично подходит для достижения наилучшей практики для CI/CD.

Использование параллельного тестирования в качестве наилучшей практики для трубопровода CI/CD

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

Вы не можете получить наилучшую пропускную способность от параллельного тестирования, если тесты выполняются на одной машине. Такой сценарий будет провести критические ресурсы на машине, например ЦП, графический процессор и т. Д., Которые могут замедлить выполнение других тестов, работающих на машине. Следовательно, инфраструктура, на которой много проводятся тесты. Для тестирования веб-сайта/веб-сайта наличие внутренней инфраструктуры для развертывания и выполнения тестирования не может быть идеальным решением (с точки зрения затрат и масштабируемости). Здесь приходит лямбдейский, чтобы помочь вам выполнить Параллельное тестирование с фреймворками автоматизации тестов например, Testng, Pytest и т. Д., На рук онлайн Селеня Грид состоящий более чем 2000+ браузеров и версий браузеров.

Узнаваем от ранее выполненных проектов

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

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

Почему документация является абсолютной необходимостью?

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

Хотя в течение определенного периода времени могут быть изменения в плане тестирования или стратегии тестирования, команда должна по крайней мере стандартизировать определенные процессы. Стандартизация может означать краткосрочную листингу конкретную структуру тестирования, определяя облачную инфраструктуру, которая соответствует вашему бюджету и требованиям, создавая компетентную группу автоматизации, которая работает над тестовыми сценариями (в Python/C#/Java/других языках программирования). Вы также должны иметь план резервного копирования (Plan-B), если в организации произойдут какие-либо изменения в графике или общем бизнесе.

Важно, чтобы эти вещи были задокументированы, чтобы их можно было упомянуть в любой момент времени. Наряду с указателями, которые были упомянуты выше, документ также должен включать раздел, в котором подчеркивается «риски и предположения», связанные с выполнением стратегии тестирования. Например, план тестирования/стратегия тестирования был бы создан с 4 инженерами по автоматизации в качестве количества ресурсов; Но вам может потребоваться сократить команду из -за некоторых непредвиденных обстоятельств. Следовательно, создайте стратегию защиты от глупого тестирования, рассматривая все различные параметры, связанные с проектом. Документ, подчеркивающий стратегию тестирования, должен быть свободным документом, то есть обновленный важными временем и вехами, и должен контролировать версию, чтобы вернуться к документу для отслеживания прогресса.

Центральный репозиторий для разработки и технического обслуживания кода

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

Система управления ревизией/версией также важна для отслеживания изменений, выявления различий и поддержания среды, которая облегчает задачу, чтобы отслеживать сборки приложения.

Откат с управлением версией

Существуют сценарии, в которых тестовая команда может столкнуться с некоторыми проблемами, которые не наблюдались в предыдущем выпуске программного обеспечения; Вероятная причина может быть побочным эффектом исправления, которое протолкнуто в программном обеспечении выпуска, которое находится в тестировании. Выполнение RCA (анализ первопричин) иногда может занять много времени, и вы не можете позволить себе потерять ценную функцию в течение длительного времени в своей производственной среде.

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

Остановка окружающей среды слабо Имитируя производственную среду

Независимо от того, что инструмент контроля версии используется для отслеживания изменений кода, использование среды разработки и тестирования распространено во всех из них. Команда разработчиков может использовать различные «филиалы разработки» для различного набора клиентов, но код все равно будет направлен на сервер производственного/постановтного сервера. Для повышения эффективности, стационарная среда в идеале должна отражать производственную среду. Распространенная ошибка, которую я наблюдал, связана с живым трафиком. Часто пропускающая среда пропускает живое движение, которое должна пройти вашу производственную среду для обработки нагрузки. Вот 13 причин, по которым стационарная среда проходит для вашей организации Анкет

Этот подход облегчает развертывание рабочего кода с постановки сервера до производственного сервера. Фактически, разработчики также должны иметь гибкость, когда они могут создавать и настраивать новые среды на щелчке кнопки. Есть такие инструменты, как Дженкинс, которые могут помочь достичь того же самого. Использование инструментов, общих для команды разработчиков и команды Devops, будет иметь жизненно важное значение для оптимизации лучших практик процесса CI/CD.

Включение соответствующих заинтересованных сторон в разработку тестового кода

Становится чрезвычайно критическим, чтобы привлекать правильные заинтересованные стороны в планирование, разработку и выполнение тестов. Поскольку разработчики в команде могут повысить ценность тестового кода, который реализован инженерами -тестированием, было бы идеально привлечь их к реализации тестового примера. Разработчики лучше понимают архитектуру, методы кодирования, лучшие практики в разработке программного обеспечения. Опытные инженеры QA могут иметь хорошее понимание тестовой инфраструктуры, тестовых рамок и т. Д. Следовательно, разработчики, сотрудничающие с инженерами QA, могут сократить усилия и время, связанные с разработкой тестового случая, чтобы ускорить автоматизацию тестов для трубопровода CI/CD.

В ситуациях Crunch команда разработчиков может работать над кодом автоматизации, не вовлекая тестовую команду, чтобы не было задержки в реализации тестов на автоматизацию. Тем не менее, рекомендуется привлечь соответствующие заинтересованные стороны, особенно инженеры и разработчики QA для реализации тестового примера.

Включить обратную связь для надежной стратегии автоматизации тестов В конвейере CI/CD

Стратегические диаграммы документов справедливого плана о том, как будут запланированы и выполнены другие виды деятельности, связанные с тестированием. Наряду с обновлением стратегии тестирования (Как и когда это требуется), цикл обратной связи также следует использовать для своевременного обновления кода для автоматизации тестирования в трубопроводе CI/CD.

Обратная связь может быть использована для понимания боли пользователя и для получения более подробной информации об общем использовании инфраструктуры, которая была предоставлена для тестирования автоматизации. Например, команда Test Automation Engineers & Devops может иметь некоторые наблюдения за инфраструктурой в течение короткого периода тестирования. Наблюдения могут быть связаны с методологиями, используемыми для захвата журналов/тестового кода автоматизации порта, реализованных в Python & Selenium для облачной инфраструктуры, используемой для тестирования/производительности, связанных с выполнением тестов и т. Д.

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

Частые коды коммиты для микроавтобии В тестовой автоматизации для трубопровода CI/CD

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

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

Бесплатная координация! Помните, это CI + CD!

CI & CD — два отдельных процесса, но их нельзя назвать неразлучными. Любая задержка или промах при выполнении процесса CI могут препятствовать выводу процесса CD. Хотя автоматизация может быть использована для повышения эффективности процесса CI/CD, существует много аспектов, где автоматизация может быть неэффективной.

Коммуникация и сотрудничество являются ключевыми столпами, если мы обращаемся к лучшим практикам процесса CI/CD, поскольку существует несколько команд — планирование продукта, команда разработчиков, команда проверки, команда Devops и т. Д. которые должны работать в гармонии для успеха проекта. Следовательно, сравнение процесса CI/CD с лидерами, которые являются лучшими в этих областях. И считается важнейшей передовой практикой для трубопровода CI/CD, чтобы обеспечить острые входы и предложения для оптимизации.

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

Держите его простым и организованным, сначала выполняя небольшие испытательные примеры!

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

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

Прозрачность в команде и по всей команде

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

С CI на месте, команда получает гораздо лучшее представление об общем статусе тестов и о том, что можно сделать, чтобы повысить эффективность тестов. Вот как это подпитывает использование коллективного интеллекта для улучшения команды и проекта. Крайне важно, чтобы все работали над одной и той же страницей, особенно если вы работаете удаленно. Инструменты управления проектами могут быть очень эффективными в качестве лучшей практики для процесса CI/CD. Используя инструменты управления проектами, каждый будет варьироваться от действий, выполняемых другими членами команды, также срок, с которым необходимо выполнить задачу. Вот Топ -19 инструментов сотрудничества для вашей команды тестирования программного обеспечения Анкет

Выбор правильного инструмента для процесса CI/CD

Все вышеупомянутые советы и действенные идеи помогут вам увеличить автоматизацию тестов, используя лучшие практики для CI/CD Pipeline. Хотя, в конце концов, конвейер CI/CD -CD зависит от инструмента. Существует количество инструментов, доступных для CI/CD, но вы должны выбрать правильный инструмент на основе вашего бюджета, требований и опыта. Некоторые из обычно используемых инструментов CI/CD являются Jenkins, Travis CI, Gitlab, TeamCity, CodeShip, Circle CI и т. Д.

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

Инструменты CI/CD для интеграции с онлайн -сеткой Selenium в LambDatest

Говоря о инструментах CI/CD, вот бонусный совет, LambDatest предлагает селеневую сетку, которая совместима с каждым инструментом CI/CD, который вы можете использовать, чтобы вы могли закрепить свои усилия по тестированию браузера.

Вывод

Автоматизация тестов является неотъемлемой частью общей стратегии тестирования, но она должна быть запланирована и выполнена тщательно. Существует множество аспектов автоматизации тестов (особенно связанных с инфраструктурой), где вы можете разумно использовать ресурсы в руке, не инвестируя в инфраструктуру собственной тестирования. Облачное тестирование может упростить вашу общую стратегию автоматизации тестов из-за аспектов надежности и масштабируемости. Эти улучшения не только мотивируют членов команды, но и позволяют вам получить максимальную отдачу от лучших практик для трубопровода CI/CD.

Связанный пост:

  1. Как измерить время загрузки страницы с помощью селена?
  2. 7 навыков, чтобы стать успешным тестером автоматизации В 2019 году
  3. Как протестеры используют селекторы CSS в сценариях автоматизации селена?

Оригинал: «https://dev.to/himanshusheth004/16-best-practices-of-ci-cd-pipeline-to-speed-test-automation-1agb»