Всем привет! Я Лид тестирования в одной из компаний и поделюсь своей историей решения проблемы, когда регрессионное тестирование становится бутылочным горлышком всего процесса.
Предыстория. В этом году направление получило взрывной рост и количество команд утроилось (стало 15 команд), а количество QA- специалистов стало превышать 20+ человек. Довольно быстро выявились следующие проблемы:
Увеличение сложности управления. Большие команды сложно контролировать. Без прозрачности работы растут лишние затраты времени, коммуникации или 1:1 стали отнимать запредельное количество времени.
Нестабильность результатов. Чем больше людей, тем сложнее синхронизировать действия, начали просачиваться баги в релиз, общее количество багов вырастало от квартала к кварталу.
Увеличился регресс. Регрессионное тестирование становится узким местом: множество тест-кейсов выполняется медленно, а что еще хуже его тормозят сами владельцы команд, пропихивая вперед регресса бизнес-фичи – отнимая время QA.
Полноценный регресс. Полное регрессионное тестирование стало занимать время больше, чем было отведено времени на спринт(2 недели). В таком случае для QA это все превращалось в один бесконечный регресс.
Давай примем, что регресс у нас занимает 14 дней, а в конце решения буду приводить сколько оно позволило сэкономить дней.
Первые приседания
Для получения того, чтобы процесс релизов не встал, а люди не выгорали от бесконечных регрессов была внедрена практика “Анализ влияний изменений на проект”. Суть его заключается в том, что зная архитектуру приложения и внутренние зависимости, можно определить какие модули были затронуты, а следовательно определить объем требуемого регресса.
Как это выглядит на практике. Команда А сделала, доработку Кнопки Продолжить. Значит в регрессе будут участвовать тест-кейсы, где есть экраны с данной кнопкой, а остальной функционал достаточно закрыть смоук-тестами. Особенно этот анализ выручает, когда элементы задевают несколько команд, и объем регресса можно перекрыть тестами нескольких команд.
Такой подход помог особенно нагруженным командам, чей объем тест-кейсов превышает более 1к тестов.
Регресс стал занимать около 10 дней. Пункт 4 вычеркиваю.
Удивительные приседания
Общее количество тест-кейсов в регрессе уменьшилось, а понимание почему отдельные команды регресс выполняют удивительно медленно, остался. Лезем под капот и удивляемся.
Как задумывалось
QA инженер получает от Лида тестирования задачу о том, что можно приступать к регрессу, т.к. артефакт тестирования доступен. QA знакомится с Эпиком на регресс, в котором присутствует описание что и в каком объеме требуется протестировать, какие модули затронуты или новые фичи добавлены. На этом основании формируется набор тест-кейсов на регресс и QA-приступает к задаче.
Как оказалось
QA‑сформировал набор тест‑кейсов и ушел выполнять бизнес‑задачи, т.к их приоритизировал владелец команды.
QA — сформировал набор тест‑кейсов и ушел заниматься делами не связанными с работой.
Сразу появляется простое решение в голове идти ругаться с РО и QA, но оно конечно не приведет ни к каким результатам. Наше решение — это получение метрик, на основании которых уже можно принимать решения, в том числе и управленческие.
Для того, чтобы оценить в среднем сколько времени у отдельного QA уходит на регресс, мы определяем среднее время прохождения тест-кейса, для того чтобы получить первые значения, от которых можно оттолкнуться. По каждой из тематик проходим тест кейс руками, и прибавляем условные х2 времени, в дальнейшем мы сможем это отрегулировать куда точнее.
Пример расчёта
Среднее время прохождения тест-кейса: 4 минуты.
Регресс: 40 тест-кейсов.
Общее время: 40×4=160 минут=2,67 часа
В это же время история регрессов показывает, что сотрудник выполнял регресс около 4 дней или 32 часа, а также регулярно жаловался на загрузку и объем работы. Уже как минимум повод для проведения беседы появился.
Ситуация, когда РО приоритизировал задачу и оторвал QA от регресса решил следующим образом. Вводится термин “Украденное время”, и во время регресса в Jira можно отфильтровать задачи, которые поменяли статус “В Тестирование” на статус “К релизу”. У каждого “Украденного часа” есть своя стоимость, рассчитанная совместно с экспертами. Условно приложение могло выйти 20 числа и заработать за день Х количество денег, но вышло 22 числа и недозаработало – сумму за 2 дня. Готов поспорить, что полученная сумма может оказать больше годовой зарплаты хитрого РО. Обычно, при демонстрации таких данных, вопрос отвлечения QA инженеров сразу отпадает.
Регресс стал занимать около 6 дней. Пункт 3 вычеркиваю.
Заключение
Проблемы 1 и 2 я разберу в следующей статье.
Рассказываю интересные истории в своем Telegram-канале.
Комментарии (6)
aasokovykh
05.01.2025 11:20Зашёл почитать интересную статью о новых методах тестирования или администрирования, которые позволили бы сократить время тестирования или покрыть большее количество кейсов, а тут обычная жалоба на некомпетентность сотрудников.
Мой совет как QA, который уже миллион раз упоминался в статьях и книгах - автоматизируйте процессы, хотя бы кейсы по регрессии. И покажите разработчикам как с ними работать.
titus04 Автор
05.01.2025 11:20Привет. Спасибо за комментарий. Автоматизацию я оставил за рамкой, она есть и её покрытие растёт. На сотрудников жалобы нет, скорее есть фокус на то,что из-за увеличения количества инженеров и команд, регресс стал узким горлышком всего продукта, и методы как это починить в тех рамках и тех инструментах, которые есть.
Aquahawk
05.01.2025 11:20По заголовку обещалась нормальная статья, а тут просто начните замерять время на задачу, да ещё и с тупым умножением которое работает разве что на конвейере. Перефразируя старую фразу про то, что 9 женщин не рожают ребёнка за месяц, также одна женщина не рожает 10 детей за 90 месяцев.
djglukbh
05.01.2025 11:20К сожалению, уровень задачи явно выше квалификации автора статьи... Отсутствует системный подход и общее понимание процессов поставки ПО, т.е. мы имеем классическую ситуацию, когда контроль качества болтается отдельно от остальных процессов, отсутствует связь и договоренность, а самое главное - понимание того что делать, кому и когда - между участниками. Не хватает структуры и правильного применения практик контроля качества ПО. В общем, плохо всё.
Как улучшить? Структурировать описание текущих процессов, проанализировать состояние с помощью адекватных метрик, оценить текущие ресурсы. Потом составить план действий из разряда квик винов и долгосрочных инициатив, заручиться поддержкой остальных участников процесса и понять каким образом и в какие сроки мы придем к желаемому состоянию, которое так же можно будет оценить с помощью объективных метрик
teka_d
Что закладывается в понятие «QA — сформировал набор тест‑кейсов и ушел заниматься делами не связанными с работой?»
Звучит как «Ушел пить кофе, с собакой погулять, забрать посылочку с маркетплейса»
titus04 Автор
Да, все верно.