На перший погляд може здатися, що Devops це команда сис-адмінів, але це є лише частково правда. Вдумайтеся у зміст словосполучення!
Development (“розробка”) ➕ Operations (“операційний) = DevOps
Звідси, Devops — це ціла гілка фахівців, яка інтегрується у розробку: системні інженери, DBA (бізнес аналітики), мережеві інженери та фахівці з безпеки, QA, продакт менеджери. Однакова вимога для усіх, рядовий Devops -ер повинен володіти хорошим знанням мережевих технологій + хорошим рівнем знання свого продукту. Також, у команді обов’язково повинні бути сильні програмісти для вирішення деяких специфічних завдань. Підтримка складної серверної інфраструктури часто вимагає додаткової програмної підтримки, для автоматизації рутинних процесів.
Як виглядає процес тестування та роль тестувальника у DevOps❓
Тестер у DevOps іменується — (DTE) DevOps Test Engineer. DevOps Тестувальник досить специфічна фігура. Так би мовити, вищий щабель тест-інженера автоматизованого тестування => вознесення до рівня «Дзен».
DevOps функціонує крізь 4 основні безперервні процеси (дехто виділяє і більше розбиваючи якийсь процес на більше складових):
- Continuous Integration — розробка нових версій, додавання нового функціоналу;
- Continuous Delivery — поставка програмного продукту;
- Continuous Testing — тестування якості;
- Continuous Monitoring — моніторинг.

У DevOps тестування і моніторинг не відбувається наприкінці релізу, а передбачається впродовж усього циклу розробки. QA інженери перевіряють чи команда побудувала правильну програму, бачачи її та перевіряючи, як вона функціонує та виконує задумане одразу. Так само розробники та системні інженери безперервно розробляють та інтегрують код, доставляють продукт стейкхолдерам (Continuous Integration and Continuous Delivery), і ці зацікавлені сторони із своєї сторони теж безперервно тестують продукт на предмет того наскільки він задовольняє їх вимоги і влаштовує.
Давайте знову візьмемо в приклад тестове оточення. Після автоматичної дистрибуції, тестувальник повинен упевнитися, що сервер піднято з необхідними характеристиками і що встановлений софт, розгорнута програма на ньому працюють як очікувалося.
Наприклад нам потрібно визначити що у сервера 8GB оперативної пам’яті і доступний FTP сервер. Це можна зробити мануально, підключившись до створеного сервера і запустивши декілька консольних команд. Або ж кращий варіант автоматизувати, обернувши всі ці команди в bash скрипт. Таких прикладів досить багато, уявіть як багато є демонів, всіляких консольних програм та іншого ПЗ, які використовуються щодня на великих проектах.
Отже, ключова роль команди тестувальників: узгодити їхні test design, test automation, and test case development з DevOps — і не тільки верифікувати код, а щоб ці нові зміни не поламали продукту. Ключовим розрізненням DevOps є зрілість тестування. По суті компанія може автоматизувати більшу частину процесів integration, testing, delivery, and monitor, але це потрібно передбачити заздалегідь.
У чотирьох вищезгаданих безперервних процесах в DevOps Test Architect відіграє дуже важливу роль у налагоджені процесу, як показано нижче. У більшості проектів Test Architect може використовувати в якості кроків процеси DevOps. За методом тестування на основі дій, Test Architect пропонує можливості для розробки та автоматизації тестових випадків швидко в тому ж спринті, що й випробувана програма, завдяки чому члени групи можуть активно брати участь у процесі тестування та автоматизації, кожен з яких має свою власну майстерність. Окрім QA, інші навички/ролі команди, як правило, є розробкою, операціями та власниками програмного продукту.
Щойно автоматизовані тести готові, їх можна буде ввести в тестові набори, їх можна включити у тестові сценарії до виконання, які можуть бути виконані будь-яким інструментом планування або безперервної інтеграції та навіть можуть використовуватися для тестування у виробництві. Результати виконання автоматизації можуть бути згенеровані у форматі xUnit, форматі XML або HTML-форматі, який можна прочитати та запустити звіт проти.
Що потрібно знати devops-тестувальникам?
Робота з серверними інфраструктурами це робота з Linux. Потрібно знати що таке Load Average, Cron і як збирати програми з вихідного коду. Популярні продукти в цій сфері. Це Chef, Zabbix, Docker, Vagrant, Continuous Integration системи. Мати досвід роботи з цим ПО — актуальні вимоги. Integration of DevOps testing into Continuous Integration and Continuous Delivery workflows Мови програмування. Низькорівневі, ООП. можна автоматизувати тестування кукбуков на Ruby.
Перекваліфікуватися на DTE (DevOps Test Engineer) можуть:
- Будь-хто хто вивчає та цікавиться DevOps Test strategies and automation
- Quality Assurance Managers
- Testers and Quality Assurance Teams
- Software Engineers
- IT Managers
- Project Managers
- Lab staff
- Release Managers and delivery staff
- Maintenance and support staff
- Будь-хто причетний до тестового процесу
Щоб дізнатись що необхідно зробити, щоб стати DevOps, рекомендуємо переглянути безплатний Вебінар: Intro to DevOps
Для глибшого та практичного вивчення теми DevOps, пропонуємо наступні події:


