Найти тему

Инструмент интеграции Дженкинс для тестировщика и компании. Как Честный знак "помог" уйти с рынка некоторым компаниям

Jenkins. Этот инструмент нередко указывают в вакансиях для тестировщиков. Что же хотят работодатели, что должны знать и уметь соискатели? Давайте разбираться.

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

Jenkins обеспечивает процесс непрерывной интеграции модулей программных продуктов. Что это значит? При выпуске обновления программного продукта, когда обновление еще только загружено в ветку репозитория, производятся не только локальные проверки, но и запуск unit-тестов программных модулей, автотесты.

Технология непрерывной интеграции CI/CD (Continuous Integration / Continuous Delivery) включает в себя также непрерывное развертывание на тестовые стенды и тестовые окружения. Автоматическое прохождение большого числа проверок и автоматического передача программного кода из одного окружения в другое позволяют ускорить процесс ввода обновлений программы.

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

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

-2

Чтобы этого не случилось, компании переходят на технологию разработки программного продукта с использованием системы CI/CD, которая дает следующие преимущества:

  • разделение ответственности за жизненный цикл программного продукта между участниками процесса разработки и тестирования;
  • снижение рисков обнаружения дефектов в готовом продукте после его выпуска, за счет тестирования UX/UI на стендах;
  • сокращение времени получения обратной связи от пользователей за счет повышения скорости внесения изменений в программный продукт;
  • общая отказоустойчивая среда разработки, удобная для работы с основной и вспомогательными ветками репозитория.

Как Jenkins решает эти задачи?
Поскольку Jenkins является фреймворком со множеством расширений, его настраивают для запуска программы на устройствах, подключенных к контроллеру Master Mode, который отвечает за планирование и реализацию задач, а также хранит информацию в текстовых логах об их выполнении.

Установка Jenkins включает в себя установку Java, настройки конфигурации виртуальной машины Java Virtual Machine, такие как выделение памяти, установка размера дампов памяти, настройку SSH порта, предоставляющего операционной системе оболочку безопасности для передачи данных в зашифрованном виде, установку порта 8080 для работы Jenkins, настройку репозитория, установку программы Jenkins, настройку своевременной очистки памяти Garbage Collector. Затем через браузер нужно разблокировать Jenkins и установить плагины.

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

А Вы что думаете о программе? Напишите в комментариях, удалось ли с ней поработать, насколько это удобно и оправдано ли было ее внедрение.

По теме автоматизации тестирования советую почитать:

Автоматизированное тестирование программного обеспечения. Внедрение, управление и эксплуатация