Каждый член Agile-команды так или иначе работает с DevOps, но некоторые владеют им в совершенстве. DevOps — это составная часть успешного Agile-тестирования.
Краткое введение в DevOps
Термин DevOps был впервые введен на конференции DevOps Days в 2009 году в Бельгии. DevOps — это методы и модели, способствующие совместной работе различных специалистов внутри команды разработчиков и оптимизирующие процессы выпуска качественного ПО. Эти приемы помогают командам в написании тестируемого поддерживаемого кода, в создании пакетных продуктов, а также их развертывании и поддержке, пишут авторы книги «Agile-тестирование».
Одна из областей, которыми занимаются специалисты DevOps, — сокращение временных циклов. В некоторых сферах бизнеса это применяется в крайней степени и выражается в выпуске новых версий кода по несколько раз в день. Сотрудники выпускающих команд находят надежные, многократно применимые и достаточно безопасные способы для воплощения идеи в жизнь.
Предотвратить дефект. Источник
Действия специалистов DevOps направлены на поддержание и ускорение автоматизированных тестов и развертки. Сюда входит и стабилизация тестовой среды, и предоставление оперативной обратной связи в непрерывной интеграции (Continuous Integration, CI), и обеспечение надежной и частой (возможно, даже постоянной) развертки. Теперь многие команды тестируют свою инфраструктуру непрерывно, чтобы избежать ложных сбоев регрессионных тестов, связанных с сервером, разверткой или сбоями конфигурации. Представители бизнеса также вовлечены в этот процесс. Они помогают найти нужных людей, приобрести необходимый софт и оборудование, собрать информацию для дальнейшей разработки.
Руководство по DevOps
DevOps и качество
Навыки членов Agile-команд часто включают создание скриптов, системное администрирование, программирование, настройку непрерывной интеграции, разработку инструментов, а также умение сотрудничать, что позволяет выполнять функции специалистов DevOps. Эти инструменты необходимы для Agile-тестирования.
Повышение качества продукта. Источник
Сотрудники c особыми навыками, имеющие к тому же опыт системного администрирования, помогают командам повысить качество по многим показателям. Они могут быть полезны в оптимизации непрерывной интеграции, для создания и настройки сред разработки и тестирования и улучшения процессов в этих средах. Они также помогают найти или создать и внедрить фреймворки для автоматизации и другие инструменты. Это прекрасные специалисты, способные выявить и определить проблемы, в арсенале которых много полезных инструментов. Они помогут с инфраструктурой, чтобы поддержать автоматизированные тесты, генерацию тестовых данных.
В некоторых компаниях существуют специальные IT-отделы. Их сотрудники вынуждены оказывать поддержку коллегам, разрываясь между разработкой и производственными нуждами. Так можно потерять всякую связь с командами разработчиков и совершенно не знать, что им нужно.
Agile-тестирование
Однажды соавтор книги «Agile-тестирование» Лайза Криспин проводила мастер-класс для крупной организации, во время которого члены команд, занимающихся разными аспектами продукта, должны были определить проблемы, возникающие на различных стадиях тестирования. Тестировщики жаловались, что другие части системы были несовместимы, и они не представляли, что с этим делать. Один из участников мастер-класса представлял OPS-отдел. Как только он увидел обозначенные сложности, сказал: «Я и понятия не имел, с чем вам приходится иметь дело. Моя команда может с этим разобраться. Теперь просто обращайтесь напрямую ко мне!». Иногда для того, чтобы решить проблему тестирования, достаточно просто собрать вместе людей из разных отделов.
Как тестировщики дополняют DevOps
Тестировщики могут помочь специалистам DevOps, применив свои навыки в тестировании инфраструктуры. Они способны определить ее слабые места, просто спросив: «Как протестировать происходящее, если сеть рухнет?». Конечно, тестировщики не могут ответить на все вопросы, но они отлично умеют их задавать.
Соавтор книги «Agile-тестирование» Джанет Грегори работала в компании, где тестировщики инфраструктуры плотно, но официально сотрудничали с командами, занимающимися отдельными функциями. Они заключали своеобразное соглашение.
Перечислим условия, на которых тестировщики инфраструктуры готовы предоставить свои услуги.
- Без вовлечения в процесс. Если необходимо тестирование, оно будет спланировано, выполнено и отслежено представителем соответствующей команды (например, DBA, сетевой, инфраструктурной).
- Руководство. Тестировщики инфраструктуры предоставят руководство для помощи в планировании необходимых тестов. Тестирование проводится представителем соответствующей команды (например, DBA, сетевой, инфраструктурной). Тестировщики могут просмотреть результаты проверок и помочь определить риски для решения о внедрении или выпуска.
- Планирование. Тестировщики инфраструктуры подготовят основанный на рисках план тестирования, который содержит методы и объемы, список необходимых проверок и критериев приемки, а также информацию о рисках.
Этот план будет передан представителю соответствующей команды (например, DBA, сетевой или инфраструктурной) для выполнения. Тестировщики инфраструктуры могут отслеживать тестирование и его результаты, помогать с определением рисков для решения о внедрении или выпуска.
План тестирования. Источник
- Тестирование инфраструктуры. Тестировщики подготовят основанный на рисках план, который содержит методы и объемы, список необходимых тестов и критериев приемки, а также информацию о рисках. Проведут тестирование и предоставят обратную связь по статусу проведения проекта. Все проблемы будут зафиксированы, отслежены, рассмотрены и проработаны с помощью стандартной системы отслеживания сбоев. Тестировщики предоставят результаты тестов и оценку рисков для решения о внедрении или выпуска.
Данные определения более формальны, чем те, которые обычно используются в методах Agile. Однако этот пример показывает, как тестировщики могут помочь определить риски, предоставляя обратную связь об инфраструктуре (в которую входят тестовые и живая среды).
По материалам книги «Agile-тестирование»
Обложка поста: unsplash.com