Как мы в «Приватбанке» пришли к разработке своей системы TestManager

Меня зовут Вадим Гулич, я руководитель департамента тестирования Front-end и Mobіle в «ПриватБанке». Имею опыт в тестировании более 7 лет.

Эта статья посвящена решению проблемы, которая возникает во многих компаниях в процессе управления тестированием и выбора инструментария. Будет полезна QA, Team Lead и всем участникам разработки, которые хоть как-то вовлекаются в тестирование.

В самом начале, когда тестирование только развивалось в «ПриватБанке», а библией тестирования была книга Романа Савина «Тестирование DOT COM», мы использовали TestLink — бесплатное open source решение, мастодонт среди современных TMS. Но тестирование не стояло на месте, и гибкие методологии разработки все ближе подкрадывалась в наши ІТ-ряды. Тогда и ушли громадные и трудоемкие в поддержке тест-кейсы, за что спасибо Agile (принцип 2: «Работающий продукт важнее исчерпывающей документации»), и устаревший TestLink просил замены.

Анализ тестирования

Когда мы проанализировали, что изменилось и чего нам недостаточно для работы, обнаружили ряд артефактов, которыми оброс наш процесс тестирования:

TestLinkхранилище тест-кейсов
прогон тест-кейсов
метрики по регрессу
Google Sheets критический функционал
чек-лист по тестированию новых фич
дополнительная информация по проекту
статистика по работе
метрики по проекту
постановка целей по SMART
Google Docsотчет о тестировании
Система управления проектами и задачамибаг-репорты
работа с задачами версии/патча
Внутренние комплексы банкасотрудники
внутренние метрики и другое

В целом не так много артефактов, если говорить о небольшой команде и 1–2 проектах. Но когда в команде тестирования более 70 человек, а проектов больше 200, то картинка становиться не такой радужной и грамотно управлять всем этим смог бы только Чак Норрис. Но он настолько крут, что деплой в прод проходит без тестирования, у него нет регрессионного тестирования, есть только прогрессивное :)

У нас было желание что-то менять и этим помочь тестированию. Собрав команду инноваторов с горящими глазами, мы начали brainstorming на тему «лучшая TMS для тестировщиков».

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

Что у нас из этого вышло (краткий список без детализации):

ФункционалПроблематика
Создание чек-листа по новому функционалу отсутствие информации о глубине тестирования задач версии
Доступ к чек-листу в режиме просмотра для заинтересованных лицотсутствие консолидированной информации
Автоматическая генерация отчета о тестировании версии/патчаручное копирование результатов из чек-листов и других артефактов в отчет
Перенос проверок по чек-листу нового функционала в бэклогудаление проверки после переноса задачи в версии
Чек-лист по критическому функционалусложное ранжирование проектов; чек-листы хранятся в Google-таблицах
Перенос проверок по чек-листу нового функционала в чек-лист по критическому функционалусложная актуализация покрытия регрессионного набора кейсов
Добавление теговотсутствует детализация тестовых сценариев и удобная фильтрация для выбора тестовых наборов
Авторизация LDAPбанковская система авторизации по LDAP
Хранение отчетов о тестированииотчеты по тестированию хранятся на Google Drive
Автоматическое проставление статусов и затраченного времени по задачам в PPработа со статусами задач в разных комплексах
Профиль проектовотсутствие единого полного хранилища информации о тестируемом проекте; сложность сбора метрик
Заведение ошибок из TMSработа с задачами в разных комплексах
Получение информации по прогону автотестов из Jenkinsинформация по результатам тестирования отображается в разных комплексах, нет связки в мануальных/автоматизированных кейсах
Дополнительно
Возможно развернуть систему на своих мощностях и ее администрирование
Интеграция с внутренними комплексами
Поддержка инструмента, чтобы быть уверенным в «завтрашнем дне» (зависимость от изменения условий, уход с рынка и так далее)

Определив функционал, который решал бы наши проблемы, мы принялись проводить анализ внешнего рынка уже существующих систем. Для этого были выбраны следующие системы*:

HP Quality CenterXQualXStudio
Agile Central LabsPractiTest
Squash TMTest Collab
QMetry Test ManagementQACoverage
QACompleteStryka
TestRailTestMonitor
Test PADSitechco
TestLodgeTestLink

*На текущий момент появились новые и есть достойные внимания, можно ознакомиться по ссылке.

Но, к сожалению или к счастью, ни одна из систем не покрыла требования, а те, что хоть как-то были близко к нашему набору желаемых фич, кусались в цене и были завязаны на свой «зоопарк» систем. Оценив все за и против, мы решили написать свою TMS под названием TestManager.

Начало пути TestManager. Пилот

Путь был не прост, первая версия была написана все теми же инноваторами, разворачивалась на локальном сервачке, обкатывали этот инструмент часть специалистов по тестированию департамента Front-end и Mobile. Была боль, были муки, но оно того стоило.

Боли и муки

Лого TestManager

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

Примером одной из таких болей стало удаление всего чек-листа после нажатия кнопки «сохранить». Причина — сессия обрывалась до момента завершения заполнения чек-листа, и запрос на сохранение не отрабатывал, сообщение об ошибке на фронт было только в мечтах, а последующее обновление страницы отображало пустоту чек-листа и души тестировщика. Если увидите седого тестировщика, есть вероятность, что это ветеран пилота по ТМ :)

В-третьих, перестройка, поддержка прошлых артефактов и работа в новых давались непросто.

Коллеги тяжело переживали все эти неприятные моменты, как говорится, все новое чуждо, а тут еще и инновационное. Мы прошли все 5 стадий эмоционального реагирования: отрицание, гнев, торг, депрессия и принятие. На каждой мы улучшали и улучшали продукт, было много фидбэка.

Как только поняли, что инструмент начал приносить пользу и тестировщики больше не зарывались в миллионах артефактов, приняли решение развивать этот инструмент и масштабировать на другие департаменты и команды.

Подготовив ряд презентаций по новому инструменту, указав проблематику/анализ рынка/решение и готовые результаты пилотного использования, мы получили approve от руководителя направления ІТ для выделения команды специалистов и его разработки. На этом этапе началась трансформация всего тестирования...

Коротко о самой системе TestManager

TestManager — это инструмент для управления тестированием на всех этапах борьбы за качество продукта: Testing, Quality Control, Quality Assurance.

Построена система на базе основного workflow по работе с проектами, которое обросло артефактами и другими активностями тестировщика.

Чек-лист новых доработок

Чтобы не проходить по всем узлам процесса тестирования и сопутствующему функционалу, выделю несколько интересных фич инструмента.

Это перерождение артефакта с Google Sheets, где описывали кейсы и проверки для задач, которые со временем терялись в системе управления проектами или аккаунтах почты.

Сейчас же это интерфейс с интеграцией для получения задач версии, удобная работа со статусами проверок, CKEditor, дополнительные поля и теги, что дали больше гибкости в описании проверки, заведение ошибок по определенному шаблону (чтобы для разработчиков не был каждый баг как ребус).

Актуализация критического функционала

В прошлом это Ctrl + С и Ctrl + V с одного чек-листа в Google Sheets в другой. Но, к сожалению, часто не было откуда сделать Ctrl + С, а понять статус актуализации можно было лишь после похода к мудрейшему тестировщику на проекте :)

В TestManager мы реализовали удобный функционал актуализации. В общей таблице всех версий (которые прошли процесс тестирования нового функционала) добавлен статус по ней.

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

Метрики по проектам

Это еще одна крутая фича, которая нужна в любом процессе. Как сказал Том Демарко: «Ты не можешь контролировать то, что ты не можешь измерить». И не только контролировать. Нет возможности определить, где проблема, как исправилась ситуация после внесения изменений и так далее.

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

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

Еще есть фичи, которые остались за кадром, и много запланированных, но о них расскажу в следующей статье, если будет к этому интерес.

Итог

Из этого смелого пилота мы получили профит:

  • Систему управления процессом тестирования, которую можно кастомизировать под свои потребности.
  • Интеграцию с внутренними банковскими комплексами.
  • Единое хранилище тестовых артефактов проектов (а это более 200 проектов), которые доступно всем участникам разработки.
  • Фоновый сбор метрик всего процесса тестирования.
  • Баг-репорты в одном виде, что упрощает разбор ошибок командой разработки и не только.
  • Стандартизированное workflow по тестированию с учетом всех важных этапов.
  • Экономию времени на работу с артефактами.
  • И очень важно — опыт построения, внедрения и трансформации в тестировании.

Были ли трудности при запуске одной системы на такое количество проектов и команд? Да, были, но это совсем другая история...

Все про українське ІТ в телеграмі — підписуйтеся на канал DOU

👍ПодобаєтьсяСподобалось11
До обраногоВ обраному3
LinkedIn



46 коментарів

Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.

Ой, как же бесят комменты, зачем я из полез читать. Статья про програмное решение, а тут и ЕСВ кто-то оплатить не может, кому-то русский не нравится. И никто даже вам не скажет что вы молодци. Поэтому я скажу: «молодцы», а если еще удастся договорится и выложить на гитхаб, то вообще «молодцы ребята»

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

Те що ви написали свою програму це звичайно добре, молодці. Але от особисто мене більше цікавить коли дороблять новий інтерфейс на сайті Приват24? Бо перемикання під час роботи між старим і новим інтерфейсом виглядає якось трохи дикувато.

Господа разрабочики Приватбанка, прошу прощения за оффтопик. Не знаю куда уже писать, дважды обращался в поддержку, общался вживую с начальником отделения. Полнейшее безразличие. Возможно, вы каким-то образом сообщите разработчикам про проблему. Столкнулся с невозможностью оллатить ЕСВ для ФОП в privat24. Дело в том, что с 2021 года действуют новые счета и новые способ формирования назначения платежа. (Вот актуальный способ — biz.ligazakon.net/...​ya-uplaty-esv-na-2021-god и taxer.ua показывает правильно). В приложении privat24 до сих пор остался старый неправильный способ формирования назначения платежа, при котором платежи не будут приняты получателем. При этом вручную отредактировать назначение платежа возможности нет.

Сейчас начнут платить сотни тысяч ФОП-предпринимателей по всей стране и может случиться большой скандал. Как по мне — очень странно наплевательское отношение банка к этой проблеме. Заплатить нужно до 19 января, осталась всего неделя. Надеюсь, что все же IT департаменту Приватбанка будет интересна эта ситуация. Еще раз извините, пишу сюда от безысходности.

Воспользуйтесь приложением Приват24Бизнес Android/iOS — там назначение формируется корректно. После установки сможете прокинуть сессию из физиков нажав на странице авторизации «Войти через Приват24», не тратя время на создание отдельного логина или регистрацию. Ну далее выбираете в списке свой ФОП — Создать — В бюджет — заполняете и нажимаете Подписать. При подписи сгенерируйте прямо в приложении ключ ЭЦП или SmartID.

* проблема в Приват24 для физиков известна и находится на стадии решения.

Артем, спасибо за ваш совет. Я еще нашел вариант в старой версии privat24 создать платеж вручную, он правда в корзине показывался как Коммунальные платежи, но в итоге оплатилось, вроде, правильно (так как в taxer квитанция). Хорошо, что в стадии решения.

панове з Привату, у вас там якийсь джуніор-архітектор вирішив, що 16символів на пароль — цього вистачить для усих.
А ще, що обмежити введення спецсимволів — то є правильною ідеєю. Я не розумію, яке вам діло до довжини та типу пароля, хіба що закінчилось місце на хардах, під їхне зберішнання у відкритому вигляді. Чи може думаєте, що усі айтішники повтікали у моно і лише бабки з маразмом залишились у вас?

Але у вас там одного не урахували, шо у купи людей були довгі паролі зі спецсиволами, і вони одного дня не змогли ввести існуючі паролі у додатках-вебі. У тому числі змінити пароль теж не вийшло — бо там така сама валідація.
Чим викликали втрати не однієї сотні людино-годин на заміну неправильних паролей. Бо єдиний шлях змінити тепер пароль — це вхід через «я забув пароль». Особисто мій кейс — мені було потрібно щось швидко сплатити, а зайти я не зміг. На моє ім’я є кілька скарг у вас там десь. Змінити пароль я теж не зміг.

Я не знаю хто у вас там такий розумний унікум, але я б до його рекомендацій більше не прислуховувався. Може на курси якісь відправити треба?
Я вам ще звернень паперових накатаю. Може наступного разу почнете головою думати, а не чимось іншим.

А процесінг у Приватбанку теж за аджайлом і «краще швидше, ніж документовано»? :)

мастодонт среди современных TMS.

это TestRail. А TestLink это кусок коричневой субстанции.

есть ли планы выложить данный продукт в опен сорс ?

За open source сложно сейчас сказать, пока разрабатывается для внутреннего использования

Вадим, привет :)
С интересом прочитал статью!

Мне как разработчику было бы интересно узнать
как этот продукт разрабатывался:

* выделили на разработку отдельный департамент или это дело рук группы энтузиастов тестировщиков?
* сколько времени потратили на разработку, до того как начали пользоваться продуктом?
* на чем писали? ЯП, фреймворки, БД и так далее

Привет, Рома!
Спасибо за комментарий.

После успешного пилота мы передали разработку с департамента тестирования в департамент разработки, где нам выделили front-end / back-end разработчиков. Сейчас это уже зрелый инструмент, который улучшается и обрастает дополнительными фичами.

Если говорить о пилоте, то 2-3 месяца разработки (усилиями энтузиастов) до получения MVP.

Начали пилот c angular, spring, mysql, когда стал вопрос дизайна, то material design. К сожалению, мы не можем дать исходники, этот продукт пока разрабатывается для внутреннего использования, но если будет интерес, то с командой напишем обзор о технических решениях при построении инструмента.

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

Здесь с интересом читал о проблемах с общепринятыми системами, которые вы раньше использовали.

А якого чорта в державному банку UI російською мовою? Зрада:-(

В першу чергу, це інструмент, який виконує свої функції на будь-якій мові.
ТMS має багатомовність, але ще не всих сторінок.
«Зради» точно немає :)

zakon.rada.gov.ua/laws/show/2704-19

Це в першу чергу державний банк, який підпорядковується законам України.

Стаття 27. Державна мова у сфері користувацьких інтерфейсів комп’ютерних програм та веб-сайтів
3. У роботі органів державної влади, органів місцевого самоврядування, підприємств, установ і організацій державної і комунальної форм власності використовуються винятково комп’ютерні програми з користувацьким інтерфейсом державною мовою.
До створення користувацького інтерфейсу державною мовою для відповідної комп’ютерної програми може використовуватися комп’ютерна програма з користувацьким інтерфейсом англійською мовою.

Не позортесь, будь ласка.

До Вашого питання була відповідь, що є багатомовність (якщо Вас тільки це цікавить).
Дякую, що звертаєте увагу на наявність державної мови, але сама стаття про інструмен і шлях його розвитку.

була відповідь, що є багатомовність

Читайте закон, я ж вам конкретний пункт вказав: винятково комп’ютерні програми з користувацьким інтерфейсом державною мовою

Действитєльно, «какая разніца на каком язике».

Я повторюю: є закон, якого ви повинні дотримуватися. Натомість, ви публічно ним нехтуєте і не бачите в цьому проблеми. Ви там взагалі адекватні? Замість того, щоб спокійно вибачитися і пообіцяти виправитися, починаєте з’їжджати з теми. Так дорослі люди себе не поводять.

Якщо ви дозволяєте собі порушувати цей закон, то де гарантія, що ви так само не закриваєте очі на більш серйозні речі?

спокійно вибачитися і пообіцяти виправитися

Перед ким вибачатися?

Донос напишите, как шпрехенфюрер рекомендовал.

Чего?
Командная строка Линукса тоже украинским? И названия команд попереводить?
Или Линуксом не пользоваться?

Ви, здається, неуважно читали мій коментар. Там є таке:

До створення користувацького інтерфейсу державною мовою для відповідної комп’ютерної програми може використовуватися комп’ютерна програма з користувацьким інтерфейсом англійською мовою.

То вони свою програму використовують для створення користувацького інтерфейсу документообліку державною мовою.

Впевнений, в Криму в 2013 у військових частинах теж подекуди послугувались російською мовою.
До чого це може призвести, думаю, ви встигли оцінити.

Ад.
Котёл. Возле котла черти с вилами, стерегут.
-Кто тут?
— Армяне. Один выскочит, всех за собой вытянет.
А тут?
-Евреи. Один выскочит, всех за собой...
А тут, без охраны?
-А тут украинцы. Один выскочит, его свои же назад затянут.

Чуваки сделали систему, сравнимую с современными коммерческими из других стран. Вместо того, чтобы сказать «так держать! молодцы!» украинцы требуют извинений.

Индустрия не будет лучше, чем люди в ней. Если людям главное — язык локализации, то и суждено этой стране шлепать формочки с локализациями.

Это сэр позориться вставляя напоказ свою несостоятельность. Казалось бы, какое ему дело до программы если он ею НЕ пользуется? Но нет, нужно влезть со своей укрмовой.
Дядя, украинским не пользуются не потому, что имеют претензии к его носителям — это язык части нищей страны с паттерналистки настроенным населением. Полезность украинского за пределами Украины стремится к нулю потому, что его носители не богаты. Денег на украинском не заработаешь, вот и всё! Ты же не хочешь сказать, что отсутствие желания изучать хинди в Индии, где можно обойтись английским есть какое-то оскорбление? Не нравится, ну не или работать в этот приват!

Полезность украинского за пределами Украины стремится к нулю

Как и бол-ва других языков. Ибо их носители, либо бедны, либо их мало и в конечном счете, с вероятностью 99% они являются билингвами и знают какой-то язык из топ десятки.
Но некоторые считают что потеря языка — это потеря государственности и прочий булщит. И гос-во типо должно защищать и всячески навязывать свой язык.
Хотя в мире было бы намного проще жить, будь один язык. Ибо это всего лишь инструмент, при этом вне зависимости от языка, он выполняет лишь одну функцию — коммуникативную.

Вітаю. Ви щойно поспілкувалися з доволі примітивним AI.

Написал человек, работающий в Ignited.it, сайт которого имеет интерфейсы только на английском и русском...

Попахивает троллем..

Я не працюю в державній компанії. На приватний бізнес вищезгаданий закон не розповсюджується. Ти давно букви в слова збирати навчився?

Я не працюю в державній компанії.

Это не мешает выдвигать претензии человеку, никак не связанным с внутренней кухней госпредприятий.
А если бы там интерфейс был в виде командной строки линукса или XML, то тоже возникло бы негодование «кошмар-нарушение-закона-зрада».

Я ж вище написав витяг з закону з конкретни пунктом. Спочатку вивчи питання, а потім сідай за клавіатуру.

До створення користувацького інтерфейсу державною мовою для відповідної комп’ютерної програми може використовуватися комп’ютерна програма з користувацьким інтерфейсом англійською мовою.
не связанным с внутренней кухней госпредприятий

Мене подібна поведінка обурює не як користувача цим софтом, а як платника податків, у якого не очах нехтують законами, що 8 років тому уже дало про себе знати. Якщо ти не бачиш тут зв’язку, то можу тебе привітати з таким безтурботним життям. Кільком мільйонам людей пощастило трошки менше.

Можеш уявити, щоб в Гуглі зібралась команда з латиносів і почала впроваджувати софт іспанською, а не англійською? Ні? Я теж.

8 років тому уже дало про себе знати

Как раз наоборот — языковая инициатива от Фарион и привела к волнениям среди граждан 8 лет назад.

а як платника податків, у якого не очах нехтують законами

У нормального плательщика налогов должны возникать другие вопросы, связанные с приобретённым богатством чиновников, непрозрачных гос тендерах, работой разнообразных бюджетников и дурацких законах, а не то, что люди для себя, в своё личное свободное время (никак не оплаченное налогами), делают софт с интерфейсом на родном/удобном/выгодном языке.

У нормального плательщика налогов должны возникать другие вопросы, связанные с приобретённым богатством

Без тебе розберуся, які питання у мене повинні виникати. Ти хто такий, щоб за мене вирішувати?

Є закон. І є факт його порушення. Ну, і твоє балабольство про високі матерії хто там і що повинен думати.

Отличная демонстрация промытых мозгов.

Молодці! Але міг бути варіант заюзати TCL testcaselab.com від Gera-IT.

у них там максимальная подписка на 9к тесткейсов. Не всем подойдет.

Максимальная на 50.000 — Enterprise.
Так что покрывает большинство запросов :)

Человеку было скучно и он такой, ну, э-э, нам ничего не подходит, щас свое напишем.

Интересно:
1. сколько человек потенциально могут работать над этой штукой, всмысле 1, несколько, кто угодно из команды, насколько они заменяемы.
2. Если встречаются баги в тестманагере в каком порядке и насколько оперативно они фиксятся
3.Оценка стоимости( дешевле, так же, в 2/10/100500 раз дороже) написать и поддерживать это дело по сравнению с покупкой готовых похожих систем. Например, если пересчитать в потраченные человекочасы*их зарплата поделенные на стоимость суммы сервисов из которых вы могли бы собрать то же самое.

Как же в Привате любят писать все свое! Мне говорили в 12м году, что так дешевле чем покупать продукт. Ну если брать джунов, то да. Но и проекты деградируют в разы быстрее

Не знаю, как насчёт «все», но написание своего в случае TCM вполне может иметь смысл. Проблема в том, что бесплатные ужасны до безобразия, а платные и хоть как-то кастомизируемые зачастую имеют совершенно неадекватные цены, при этом вы все равно потратите кучу времени на их настройку и будете все время мириться с оригинальными решениями конкретной , а так же радоваться их отвратительной производительности, потому что большинство из них работает, мягко говоря, «небыстро».

Ожидал в конце ссылку на гит с исходником проекта

Выглядит как система сбора метрик, нужная только руководству.

Підписатись на коментарі