QA-команда и DevOps: что делать

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

Сложно внедрить эту методологию в команду, работающую по «старым привычным» принципам.

Реформировать QA-команду

Главнейший принцип DevOps это непрерывное тестирование (continuous testing). Оно должно начинаться еще на этапе согласования требований, и завершаться на этапе мониторинга «прода». Все в соответствии с принятым в Agile “сдвигом влево”. Принятие методологии DevOps означает применение первого ее принципа — “постоянное тестирование теперь цель команды”.

Для эффективного принятия модной методологии надо убрать невидимые барьеры между разработчиками, QA-отделом и Ops-отделом, и заставить всех работать «как одна техническая команда”. Эта команда должна эффективно коммуницировать между собой, сотрудничать, и оптимизировать усилия, находить дефекты и фиксить их вовремя.

QA-команда должна сместить свой фокус с дотошного соблюдения требований и устранения дефектов — на устранение рисков возникновения дефектов; таким образом QA-команда превращается в связующее звено, активно работающее в промежутке между Dev и Ops. Тестировщики должны смотреть на продукт “глазами потребителя”, и на этом строить свою деятельность. Они должны вывести в приоритет быстрое масштабируемое развертывание, стандартизировать тестовые окружения, и хорошо согласовать план своих задач с существующими CI/CD-пайплайнами.

Максимальная автоматизация

Автоматизация должна всегда присутствовать в CI/CD-пайплайне. На каждом этапе разработки «техническая команда» по возможности автоматизирует тесты, и как результат получает быстрый фидбек по билдам. Автоматизируются юнит-тесты и деплой, интеграционные тесты, smoke-тесты, регрессионные тесты, тесты безопасности, и тесты производительности. QA-команда играет важнейшую роль в DevOps, начиная раннюю автоматизацию, и помогая находить дефекты как можно раньше.

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

Хорошая практика: модульная, то есть легко изменяемая структура тест-сьютов, и запуск их на разных этапах разработки исходя из новых функций в продукте. Цель: тестировать только релевантные вещи, и как можно скорее, чтобы получить быстрый фидбек — важнейшую вещь в DevOps.

Хорошие тестировщики и их постоянное обучение

В DevOps-парадигме требования к тестировщикам повышаются. Уже мало написания простых скриптов автоматизации, выполнения тест-кейсов, и согласования плана тестирования с требованиями.

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

Поэтому доступность хороших QA-профессионалов критически важна для успешного сотрудничества QA с Ops и Dev. В рамках DevOps-парадигмы требуется постоянное повышение квалификации QA-команды.

Инструменты 

Важная часть данного материала: инструментарий DevOps. Инструменты, фреймворки и технологии в пайплайнах, проверенные опытом:

Системы контроля версий: Git, Assembla

CI-инструменты: Travis CI, Jenkins

Юнит-тестирование: JUnit, Mocha, Jasmine

Облачная инфраструктура: AWS, Microsoft Azure, VMware vCloud

Статический анализ безопасности: Kiuwan, Coverity

Сканеры безопасности: Netspaker, Acunetix, Wireshark

Управление конфигурациями: Puppet, Ansible, Salt, Chef

Управление тестированием: TestRail, конечно же Jira, Xray

Автоматизация: Selenium, Appium, Water, Ranorex, Cypress, Espresso

Все эти инструменты и средства обрабатывают гигантский объем данных, которые потом еще должны мониториться и анализироваться, чтобы обеспечить производительность всегда на оптимальном уровне. Ops-команда активно сотрудничает с Dev- и QA-командами, помогая им с мониторингом и аналитикой. Тестировщики могут, и должны, помогать в этом, владея такими инструментами как Splunk, Kibana, Graphite, Crashlytics.

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

Чтобы правильно работать в DevOps, команда должна хорошо видеть каждый аспект своей работы в каждый момент времени.

Хорошая практика: повысить наглядность рабочих процессов и инструментов, активно применяя дашборды и другие подобные инструменты. Визуально подчеркиваются: общая “скорость продвижения” всех 3 «технических» команд; нахождение и устранение дефектов; количество выполненных тестов; тестовое покрытие; и другие KPI-показатели. Так все команды получают быстрый и постоянный фидбек в процессе разработки.

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

Какой была ваша первая зарплата в QA и как вы искали первую работу?

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Мы в Telegram

Наш официальный канал
Полезные материалы и тесты
Готовимся к собеседованию
Project- и Product-менеджмент

? Популярное

? Telegram-обсуждения

Наши подписчики обсуждают, как искали первую работу в QA. Некоторые ищут ее прямо сейчас.
Наши подписчики рассказывают о том, как не бояться задавать тупые вопросы и чувствовать себя уверенно в новой команде.
Обсуждаем, куда лучше податься - в менеджмент или по технической ветке?
Говорим о конфликтных ситуациях в команде и о том, как их избежать
$1100*
медианная зарплата в QA в июне 2023

*по результатам опроса QA-инженеров в нашем телеграм-канале

Собеседование

19%*
IT-специалистов переехало или приняло решение о переезде из России по состоянию на конец марта 2022

*по результатам опроса в нашем телеграм-канале

live

Обсуждают сейчас