
Улучшение навигации и рост производительности: что изменилось в системе управления тестированием TestY 2.0

В конце 2023 года разработчики YADRO запустили самописную тест-менеджмент систему TestY. За два года систему установили несколько десятков средних и крупных компаний, а также большинство команд внутри компании. Недавно команда TestY выпустила значительное обновление TMS — TestY 2.0.
В TestY 2.0 была проделана огромная работа над UX-дизайном и производительностью, а также заложен фундамент для будущих изменений. Из статьи вы узнаете о процессе, как инженеры пришли к необходимости изменений, что удалось сделать и как это теперь выглядит в интерфейсе.
Если вы уже пользуетесь TestY, переходите по ссылке в конце статьи и делитесь обратной связью. Ваши комментарии помогают TestY работать лучше.

- показатели работы TestY — и как они изменились за год
- как выглядит обновленный дашборд
- как работают сайдбары и древовидная структура
- как установить систему
Как родилась идея обновления
Стать достойной заменой TestRail, ушедшей с российского рынка, — так звучала главная задача TestY в 2022 году. Мы пытались найти платное или open source-решение вовне, но они не отвечали тем или иным требованиям большой команды YADRO. В итоге оказалось, что разработать собственную TMS для нас выгоднее, чем приобрести готовое решение.
В конце 2023 года приложение, которое мы делали в сжатые сроки для ограниченного количества команд и понятной нагрузки, стали использовать все больше команд в YADRO, появились внешние пользователи. Чем больше инженеров подключались к TestY, тем больше требований к системе появлялось.

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

У нас был роадмап по функциональности, которую запрашивали пользователи (так появились релизы 1.3.x). Но также мы понимали, что для комфортного использования системы нам нужно работать не только над ее функциональными возможностями. Так родилась идея переработать интерфейс и выпустить версию TestY 2.0.
Как развивалась тест-менеджмент система до релиза 2.0:
От идеи — к плану и реализации
Чтобы понять, как сделать TMS действительно удобной, мы пошли по единственно верному, на наш взгляд, пути — спросили у пользователей. Наш UX-инженер провел с ними встречи, выявил основные пути использования приложения, собрал замечания и предложения.
Параллельно с этим мы структурировали и проанализировали уже созданные в трекере фича-реквесты, разложили их по компонентам системы и, таким образом, выявили наиболее проблемные места.
В итоге самой «больной» точкой для наших пользователей оказалась работа с вложенными сущностями (тест-планы, наборы, кейсы), их создание и редактирование, а также навигация, поиск и фильтрация вложенных сущностей. Меньше всего вопросов было к дашборду на главной странице, но многие хотели работать с табличным представлением.
Помимо UX, нам предстояло увеличить наши возможности по производительности. Например, один из наших проектов в перспективе предполагает регулярную загрузку миллионов результатов тестов.
В одной известной книжке говорят, что слона надо мыть по частям. Руководствуясь этим принципом, архитектурный комитет TestY составил план действий. Что предстояло реализовать:
- Переработать навигацию внутри приложения.
- Русифицировать интерфейс.
- По максимуму использовать рабочее пространство.
- Пересмотреть структуру данных в пользу меньшей связности, чтобы выиграть в производительности.
- Изменить представление уровней вложенности и реализовать на стороне UI древовидную структуру.
- Переработать фильтры.
- Уйти от модальных окон при создании и редактировании элементов.
- Переработать добавление результатов.
- Доработать статистику в части прогресса по дочерним планам.
Давайте узнаем, что удалось реализовать в новой версии.
Переработка дашборда и навигации
Что осталось прежним
Сохранили общий принцип навигации после входа в приложение. Пользователь попадает на борду, где ему доступен переход на овервью, тестовые сьюты и тестовые планы. Сохранили возможность фильтрации по избранному, показ архива, статистику по проектам.

Что изменилось
В Testy 2.0 можно выбрать, на каком языке будет работать система. Раньше интерфейс TMS был полностью англоязычным, теперь пользователям доступен русский язык — как часть плана поддержки локализации.
Добавили поиск по проектам и табличное представление, в котором доступно то же самое, что и на карточках: переходы, добавление в избранное, переключатели Only Favorites и Show Archive.


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

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

Сайдбар представляет собой дерево тест-сьютов в проекте. Можно разворачивать уровни вложенности и открывать сьюты по клику на элемент. Или выбрать элемент рутом, тогда дерево построится от него вниз, а наверху появится крамб-трейл для возврата. Можно сортировать сьюты, искать по ним, создавать дочерние и родительские элементы прямо в рамках сайдбара. Там же можно посмотреть архивированные сьюты.

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


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

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

Мы не дошли до изменения добавления результатов. Все еще открывается шторка справа.Но сделали минорные правки по размеру шрифтов и изменению расположения блоков. Вынесли лейблы наверх, убрали дублирование названия теста. Плюс теперь можно выбирать следующий (или не следующий) тест, кликая по нему слева, потому что шторка не гасит рабочую область — она не затемняется и остается кликабельной.

Все еще можно менять ширину шторки (и она запоминается для конкретного пользователя). В дополнение к этому можно менять ширину сайдбара слева или вообще его спрятать.

На скриншоте видно, что практически вся рабочая область занята тестами и доступна для использования. На наш взгляд, это довольно круто, особенно для ручного прохода тестов.
Обновили систему фильтрации
В версии 2.0.4 мы переработали систему фильтрации. В прошлых версиях у нас были колоночные фильтры, в новой мы вынесли фильтр в отдельную панель. В выбранной реализации фильтр доступен на вкладках Test Plans & Results и Test Suites & Cases, работает в обоих представлениях (табличном и древовидном).
Строка поиска интегрирована в фильтр и по сути является одним из его сегментов. Доступен поиск и по имени, и по ID.
Можно фильтровать тесты и тест-кейсы по сочетанию условий, условия не зависят друг от друга, то есть фильтр не иерархический.

Когда пользователь выбирает селектор планов и сьютов, он видит переключатель Show full tree. Если он включен, будут видны все сьюты и планы, независимо от выбранного фильтра. Если фильтр открыт в конкретном сьюте или плане, в селекторе будут доступны все сьюты и планы проекта.
Фильтры можно сохранять, редактировать и удалять. Количество кастомных фильтров не ограничено, а сохраненные фильтры доступны в рамках проекта.
На вкладке Test Plans все сегменты фильтра, кроме фильтра по лейблам, в текущей реализации не влияют на статистику.
Доработали создание кастомных атрибутов
С версии TestY 1.3 пользователи могли создавать кастомные атрибуты для тестовых кейсов и тестовых результатов. Мы несколько раз дорабатывали эту функциональность и расширили ее в версии

Это значительно расширяет возможности использования тестовых планов и наборов в рамках TestY. Пользователь может создать атрибуты — различные разделы классического тестового плана:
- описание объекта тестирования,
- лимиты,
- предположения,
- допущения,
- требования к окружению,
- критерии входа и выхода.
Созданные атрибуты будут доступны для заполнения при создании или редактировании тест-плана или набора. Атрибуты, заполненные для созданного плана, отображаются на отдельной вкладке Custom Attributes.

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

Немного инсайдерской информации
Хотите опробовать TestY на своем проекте? Дальше — инструкция по установке.
Как локально опробовать систему
Развернуть TestY можно за несколько шагов:
1. Перед установкой TMS убедитесь, что у вас есть Git, Docker и Docker Compose.
2. Клонируйте репозиторий.
3. Перейдите в директорию репозитория и скопируйте переменные окружения (cp .env.template .env).
4. Перейдите в директорию /nginx и запустите скрипт make_ssl.sh, который создаст самоподписанные сертификаты.
5. Вернитесь в корневую директорию проекта и запустите docker-compose up.
6. После запуска всех контейнеров TMS TestY будет доступна по этому адресу: https://127.0.0.1
7. Для входа администратора можно использовать дефолтные пароли admin: password (их можно переопределить в .env).
Подробная инструкцию лежит в README репозитория.
Напишите отзыв о TestY
Мы подготовили форму обратной связи: если вы пользуетесь TestY, переходите по ссылке и отвечайте на вопросы. Опрос займет 5−7 минут, но мы получим важное знание о вашем опыте работы с TMS, даже если он оказался неудачным.
Почему важна обратная связь
Когда TestY запустился, мы думали, что основными пользователями будут небольшие компании, которые хотят опробовать какую-либо TMS или мигрировать с TestRail. Но теперь мы видим запросы от компаний с сотнями инженеров. Они уже встроили TestY в процесс разработки и тестирования, и интересуются вопросами другого масштаба: документацией, удобным UX-дизайном, улучшением производительности.
Так что мнение пользователей — основной двигатель для обновлений, поэтому не бойтесь написать о проблемах и пожеланиях, а мы учтем их в следующих релизах или предложим вариант решения на базе нашей функциональности.