Привет! На связи Никита, QA Surf! И я три или четыре раза сталкивался с мнением, что навыки программирования опциональны для QA. Но работа QA — это не просто тестирование, это полноценное обеспечение качества продукта. И умение писать код — мощный инструмент для совершенствования и автоматизации процессов тестирования.
Разберёмся, как автоматизация помогает решать проблемы QA, на примере матрицы покрытия устройств для конфигурационного тестирования. Звучит непросто, но нас не испугать сложными задачами!
Опыт ведения матрицы покрытия устройств вручную
На крупных проектах с разработкой для разных платформ — iOS, Android, Web — и поддержкой конфигураций ОС качество продукта обеспечивает конфигурационное тестирование. Так мы проверяем поведение приложения на разных устройствах с разными ОС.
Чтобы снизить риск специфических багов у пользователей, мы применяем матрицу покрытия устройств. Она отслеживает степень использования девайсов в тестах.
Как создать матрицу покрытия
Составить список устройств в парке.
Определить критерии выбора устройств для тестовых активностей.
Создать таблицу с фиксацией данных об использовании устройств.
Например, если мы использовали устройство, напротив него ставим в тесте «Да». Формулы автоматически обновляют значения «Нет» и показывают, что в следующей тестовой активности девайс можно не использовать и лучше взять другой.
Кажется, что процесс отлажен: таблица показывает использование устройств, есть регламент работы, и нужно лишь регулярно ее заполнять. Но на деле, всё не так просто.
Сложности в ручном ведении матрицы
Несмотря на иллюзорную лёгкость процесса ведения матрицы покрытия устройств, у ручного подхода немало значительных ограничений. Вот основные:
Человеческий фактор:
есть риск пропустить обновления данных из-за нехватки времени или недостаточной вовлеченности;
временно замещающие сотрудники могут не следовать процессам и оставлять данные неактуальными.
Неравномерное покрытие:
редко используемые устройства могут долго оставаться вне тестирования. А это сложно отследить.
Трудоёмкость:
постоянное копирование данных и обновление таблицы вручную требует много времени;
с ростом количества устройств процесс становится более сложным и менее эффективным.
Всё это приводит к снижению эффективности работы команды. Из-за этого автоматизация матрицы становится не просто улучшением, а необходимостью.
Как автоматизация решит проблемы
Мы разработали автоматизированное решение для матрицы покрытия. Оно:
автоматически выгружает данные о тестовых активностях и связанных устройствах из Jira;
обновляет таблицы для платформ (iOS, Android, Web);
-
подсвечивает отклонения от регламента:
прогоны с недостаточным количеством устройств;
использование устройств, не зарегистрированных в матрице.
Ключевой компонент — скрипт на Google Apps Script, который:
анализирует данные тестов по заданным критериям (частота использования устройств, временные интервалы);
раскрашивает ячейки в зависимости от частоты использования устройств (зеленый — редко, желтый — нормально, красный — часто);
фиксирует данные о каждом тестовом прогоне и обновляет их в реальном времени.
Таким образом, автоматизация не только решает проблемы, связанные с ручным ведением матрицы, но и делает процесс более прозрачным и управляемым.
Как работаем с автоматизированной матрицей
Автоматизация изменила не только процесс ведения матрицы, но и сам подход к выбору устройств для тестирования:
Открываем матрицу и нажимаем «Делаем выгрузку».
Проверяем использование устройств за выбранный период.
-
Выбираем устройства для тестирования:
если устройство использовалось ≤ 2 раз, выбираем его.
если устройство использовалось ≥ 2 раз, смотрите на пункт выше.
Если все устройства использовались ≥ 1 раз, обновляем временной диапазон выгрузки, так как цель по равномерному покрытию на текущий этап достигнута.
Копируем название устройства из таблицы в поле Device в Jira.
Этот процесс позволяет QA сосредоточиться на аналитике данных, минимизируя рутинные действия.
Плюсы автоматизации
Автоматизация в тестировании позволяет не только оптимизировать рутинные задачи — хотя и это освобождает десятки часов — но и создать гибкий инструмент для анализа и контроля качества. Давайте обсудим подробнее.
Снижает риск ошибок
Скрипт проверяет актуальность данных и соблюдение регламента.
Экономит время
QA больше не ведут и не расширяют таблицу вручную.
Повышает прозрачность
Автоматизация позволяет легко и своевременно выявить пробелы и проблемы с покрытием.
Увеличивает масштабируемость
Решение легко адаптируется для других команд или проектов.
Всё это помогает глубже анализировать тестовые активности и улучшает процесс обеспечения качества.
Как нам помогла автоматизированная матрица покрытия
Работа над автоматизацией матрицы покрытия устройств помогла нам:
полностью покрыть устройства.
За полгода мы добились того, что все устройства в нашем проекте участвовали в тестовых прогонах. Так мы минимизировали риски появления багов, которые зависят от конкретных конфигураций;
масштабировать решение.
Автоматизированная матрица покрытия оказалась универсальной и легко адаптировалась для использования в 6 других проектах нашей компании. Теперь она стала стандартным инструментом для команд, которые работают с конфигурационным тестированием;
повысить информативность.
Автоматизация помогла сделать матрицу более удобным аналитическим инструментом. Мы добавили возможность получать выгрузки за любой временной диапазон. А это помогает отслеживать качество и равномерность покрытия устройств в тестах. Что стало особенно полезным для анализа прогонов в разрезе времени и принятия решений по оптимизации тестирования.
В общем, автоматизация не только снизила рутинную нагрузку на команду, но и вывела подход к конфигурационному тестированию на новый уровень качества.
Что в итоге
Автоматизация матрицы покрытия устройств помогла нашим QA:
сфокусироваться на поиске багов и аналитике;
снизить рутинную нагрузку — процесс выбора устройств из матрицы ускорился почти в 6 раз. Теперь на решение сотни задач ребятам требуется на 5 часов меньше, которые они могут потратить на более творческую работу;
обеспечить равномерное покрытие тестами всех устройств.
Да, рутинные задачи — неотъемлемая часть работы QA. Но они не должны мешать главной цели — обеспечению качества. Автоматизируя процессы, мы открываем больше возможностей для роста команды и улучшения продукта.
Больше полезного про QA — в Telegram-канале Surf Tech Team.
Кейсы, лучшие практики, новости и вакансии в команду QA в одном месте. Присоединяйтесь!
Paczuk
Спасибо, интересный подход! Главное ещё не забывать проверять актуальность вашего парка устройств / ОС в целом.