Как ускорить релизный флоу с помощью одного системного QA

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

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Всем привет! Я Head of QA в компании Scalable Solutions. Так как компания разрабатывает высоконагруженную платформу для управления цифровыми активами и онбордит преимущественно middle+ и senior специалистов с глубокими знаниями трейдинга, финансов и high-load разработки, команды внутри компании строятся по компонентному принципу. Расскажу, как мы выстроили наболевшее кросс-командное взаимодействие между такими командами и ускорили релизный флоу на 20%.

Несмотря на то, что мы являемся классической продуктовой компанией, команды разделены не по продуктовому признаку, а по компонентному. Благодаря чему, с одной стороны, нам удалось сформировать действительно сильные команды с носителями глубинных, специализированных знаний. Но, с другой стороны, роли внутри команд достаточно изолированы, и разные наборы хард-скиллов и экспертизы накладывают свои ограничения. Например, я не могу безболезненно переместить тестировщика из команды backend в команду frontend, или обратно. 

Это и привело к тому, что встал вопрос эффективной оркестрации внутри QA команд и управления кросс-командным взаимодействием. Что, в конечном счете, конечно отразилось на релизном флоу.

Релизный флоу

До изменений наш релизный флоу выглядел так:

Под каждую фичу мы делаем три основных документа – BRS, SRS, QAP.

BRS, Business Requirements Specification – это бизнес-требования по фиче. В них описана бизнес-логика самой фичи, для кого мы ее разрабатываем и какую задачу решаем. Также в каждой BRS есть пользовательские сценарии. 

Ниже пример BRS по фиче Hidden order [“Скрытый ордер”].  Обычно он используется для того чтобы скрыть заявку с большим объемом покупки или продажи актива, которая при обычной видимости может существенно повлиять на биржевую цену. За написание бизнес требований у нас отвечает Feature Owner (далее – FO).

SRS, Software Requirements Specification – технические требования по фиче. Например, как и какие команды взаимодействуют друг с другом, по какому протоколу, какие данные будут передавать. Если команда, которая работает над фичей, использует графический интерфейс, то в SRS должны быть нарисованы макеты разрабатываемой фичи. За написание SRS отвечает Feature Architect.

QAP, Quality Action Plan – набор кейсов, по которым FO будет принимать фичу у команд. За написание QAP отвечает FO.

После того, как документы описаны и зааппрувлены всеми хедами разработки, мы переходим к реализации фичи.

Когда первая команда заканчивает с разработкой и тестированием своей части фичи, она передается второй команде. Вторая команда проводит интеграцию/разработку/тестирование и передает следующей команде. И так до тех пор, пока все компонентные команды, которые участвуют в разработке фичи, не пройдут по этому флоу. FO валидирует фичу, и она отправляется в релиз. 

Проблемы релизного флоу

Итак, кажется все очень даже неплохо – документы, аппрувы, приемочные кейсы. Но по факту в таком процессе мы сталкивались со следующими сложностями:

Проблемы со стороны QA:

  • Тестирование требований начинается только после разработки. То есть в QA команды приходят уже реализованные разработчиками задачи с требованиями. Но, как мы знаем, в требованиях могут содержаться ошибки. 

  • Поиск ответственной за баг команды отнимает немало времени. Однако не потому что команды шифруются, а потому что не всегда понятно, какие кейсы уже были протестированы другими командами.

  • Отсутствие переиспользования тестовых артефактов. В рамках тестирования одной фичи QA команды подготавливают похожие наборы тестовых данных. Но по причине изолированности и узкой специализации команд они не могли передавать эти данные друг другу.

Проблемы со стороны FO:

  • Из-за большого количества фичей написание QAP занимает много времени.

  • Валидация фичи происходит после разработки всеми командами. В нашем случае это сильно удлиняет релизный флоу из-за большого количества интеграционных вопросов.

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

Системный QA в обновленном релизном флоу

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

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

Онбординг системного QA

Чтобы системный QA понимал полный релизный цикл, ему необходимо понимать как устроен конкретный релизный цикл в каждой из команд (в каждой он свой). Поэтому в рамках онбординга системный QA проводит в каждой команде 2-3 недели, за которые он релизит минимум одну задачу. В среднем такой онбординг занимает около 3 месяцев.

Результаты перестройки

  • Теперь мы тестируем требования BRS/SRS от feature owners и feature architects. Чем раньше мы находим баги, тем дешевле это обходится бизнесу.

  • Появился кросс-командный QA спейс, где к каждой фиче прикрепляется тестовые артефакты – бизнес требования, технические требования, приемочные кейсы, кейсы других команд, тестовые данные. Это существенно помогло всем QA командам быть в едином контексте и эффективно переиспользовать данные. 

  • Ускорили процесс локализации багов благодаря тому, что у системного QA есть наборы тест-кейсов от всех команд.

  • Так как системный QA занимается написанием приемочных кейсов для каждой команды, это выступает отличной подсказкой для ускорения и улучшения качества тестирования.

  • Процесс интеграции стал безболезненным, так как фича валидируется по приемочным кейсам после каждой из команд. 

  • Сняв существенную часть нагрузки с FO, ускорилась приемка фичей и подготовка интеграционного стенда с тестовыми данными. 

Все это суммарно ускорило релизный флоу на 15-20%, а количество багов уменьшило почти вдвое, так как теперь мы их отлавливаем как на стадии написания требований BRS и SRS, так и в ходе интеграций команд в рамках разработки фичи. 


Ещё по теме:

Тестирование финтех бэкенда: как мы дошли до 20 тыс. тест-кейсов

Телеграм-канал Scalable Insights, где мы делимся аналитикой и инсайтами в new fintech

Источник: https://habr.com/ru/company/scalablesolutions/blog/668270/


Интересные статьи

Интересные статьи

Мы привыкли слышать, что Angular это фреймворк, который решает массу задач из коробки: свой cli, встроенная сборка приложений, автоматическая миграция на новые версии с помощью schematic, работа с htt...
В среде «взрослых» разработчиков есть предубеждение, что проекты, которые сделаны школьниками  несерьёзные и вообще не дело это — давать детям настоящую разработку. Так вот у ВТБ другое мнение. М...
Просидев на одном предприятии несколько лет, я решил поискать альтернативы. Специально не привожу детали по моей должности, квалификации и стажу, чтобы не создавать предвзятое впечатление и не влиять ...
Aqua-Fi — это новая технология для скоростного беспроводного интернета под водой. Обычный Wi-Fi в этих условиях бессилен. Подводные телекоммуникации всегда были проблемой. Радиосиг...
Сложно найти человека, не знакомого с игрой "Жизнь", придуманной английским математиком Джоном Конвеем еще в 1970 году, и до сих пор не теряющей своей популярности. Многие...