QA Деск. Функциональные характеристики
- Общие сведения
- Архитектура и технологии
- Учётные записи и рабочие пространства
- Роли и права доступа
- Проекты
- Учёт дефектов
- Библиотека тест-кейсов
- Тест-планы и прогоны
- Приём отчётов автотестов
- Интеграция с Битрикс24
- Доступ для ИИ-агентов (MCP)
- Интеграция с Sentry
- ИИ-помощник на своём LLM
- Экспорт и перенос данных
- Требования к среде
1. Общие сведения
«QA Деск» — система управления тестированием программного обеспечения: учёт дефектов, библиотека тест-кейсов, тест-планы и прогоны, приём отчётов автоматизированных тестов из CI, интеграция с корпоративным порталом Битрикс24 и доступ для ИИ-агентов по протоколу MCP.
Правообладатель и разработчик — ООО «Эм Си Арт». Система предоставляется
как облачный сервис (адрес кабинета — app.qadesk.ru) и как
экземпляр для развёртывания на инфраструктуре заказчика. Интерфейс и
документация — на русском языке.
2. Архитектура и технологии
QA Деск состоит из 5 компонентов: веб-кабинет на TypeScript, сервер приложения на Node.js/NestJS, сервис приёма отчётов на Go, СУБД PostgreSQL 16 и обратный прокси Caddy. Компоненты поставляются контейнерами для Docker Compose.
| Компонент | Назначение | Технологии |
|---|---|---|
| Веб-кабинет | Одностраничное приложение пользователя | TypeScript, Vite |
| Сервер приложения (API) | Бизнес-логика, аутентификация, права | Node.js, NestJS, Prisma |
| Сервис приёма отчётов | Разбор отчётов JUnit XML и Allure | Go |
| СУБД | Хранение данных | PostgreSQL 16 |
| Обратный прокси | TLS, маршрутизация, раздача статики | Caddy |
Компоненты поставляются в виде контейнеров и разворачиваются средствами
Docker Compose. Готовность экземпляра проверяется служебной точкой
/health/ready, которая возвращает состояние подсистем в теле ответа.
3. Учётные записи и рабочие пространства
В QA Деск входят по почте и паролю, через Яндекс ID, сквозным входом с портала Битрикс24, по OpenID Connect и — в экземпляре заказчика — через LDAP / Active Directory. Данные разделены по рабочим пространствам; пользователь состоит в нескольких.
- Регистрация по адресу электронной почты и паролю с обязательным подтверждением почты по ссылке из письма.
- Восстановление пароля по одноразовой ссылке из письма.
- Вход через Яндекс ID (OAuth 2.0) и сквозной вход с портала Битрикс24.
- Корпоративный вход: OpenID Connect (Keycloak, ADFS) и — в экземпляре на своей инфраструктуре — LDAP / Active Directory с назначением ролей по группам каталога.
- Рабочие пространства: личное пространство создаётся автоматически; командные пространства — приглашениями по электронной почте. Пользователь состоит в нескольких пространствах и переключается между ними в кабинете.
- Управление участниками: смена роли, исключение из пространства, самостоятельный выход.
4. Роли и права доступа
Права проверяются на сервере единой матрицей «роль → разрешения». Роли участника пространства:
| Роль | Назначение |
|---|---|
Администратор (admin) | Полное управление пространством, участниками и данными |
Тестировщик (qa) | Работа с дефектами, кейсами, планами и прогонами |
Разработчик (dev) | Работа с назначенными дефектами, комментарии |
Менеджер (manager) | Управление составом работ, дефекты и планы |
Аналитик (analyst) | Кейсы, планы, прогоны, заведение дефектов, комментарии |
Наблюдатель (viewer) | Просмотр без изменения данных |
При установке на портал Битрикс24 роли назначаются автоматически по настраиваемым правилам соответствия должностей портала.
Орг-структура портала импортируется вместе с каталогом: в настройках интеграции (вкладка «Битрикс24») отображается дерево подразделений с численностью — своей и с вложенными, — руководителями и датой последнего импорта. Ночная сверка ежедневно сличает зеркало с порталом и показывает расхождения. Правила ролей действуют и по ветке орг-структуры: роль подразделению с вложенными или только его руководителям, с предпросмотром «кто что получит» по данным последнего импорта.
Предпросмотр отдельно показывает тех, у кого текущая роль расходится с правилом: автоматика роль не сужает — кадровая перестановка на портале не должна отнимать права у человека, который ведёт прогон прямо сейчас. Привести такие роли к орг-структуре можно кнопкой «Привести в соответствие»: это отдельное решение администратора, оно не трогает роли, назначенные вручную, и каждое изменение попадает в журнал с прежней ролью и основанием. Последняя ступень раскладки — «состоит в рабочей группе портала → тестировщик» — отключается галочкой: тогда роли раздают только правила, а все прочие остаются наблюдателями.
На странице «Участники» — поиск по имени и почте, фильтр по роли и по подразделению портала (ветка с вложенными или только сам узел), сортировка по дате вступления, имени или роли. В строке участника — должность, подразделения и метка руководителя из зеркала портала.
5. Проекты
Данные группируются по проектам. У каждого проекта — буквенный ключ
(например, QAD); дефекты получают сквозные номера вида
QAD-17, по которым доступны прямой поиск и обращение через API.
6. Учёт дефектов
Учёт дефектов QA Деск ведётся карточками с обязательными окружением и платформой, серьёзностью, приоритетом и вложениями. Дефект проходит 5 основных стадий от «Новый» до «Закрыт» с переходами «Не баг», «Отложен» и «Переоткрыт» по правилам воркфлоу.
6.1. Карточка
- Тип записи: дефект, вопрос, предложение.
- Обязательные атрибуты «где воспроизведено»: окружение
(
prod/stage/dev/local) и платформа (web/ios/android/desktop/api). Значения не подставляются по умолчанию — заполняются осознанно. - Серьёзность (блокирующий, критичный, значительный, незначительный, тривиальный) и приоритет — необязательные атрибуты. Для блокирующих и критичных дефектов вложение (снимок экрана, лог) обязательно.
- Комментарии, вложения, полная история изменений по событиям.
6.2. Жизненный цикл
Стадии и допустимые переходы заданы единой матрицей воркфлоу; недопустимый переход отклоняется сервером. Переходы «Не баг», «Отложен» и возвраты требуют указания причины.
| Стадия | Допустимые переходы |
|---|---|
| Новый | В работе · Не баг · Отложен |
| В работе | Устранён · Отложен · Не баг |
| Устранён | На повторной проверке · В работе |
| На повторной проверке | Закрыт · В работе |
| Переоткрыт | В работе · Не баг |
| Закрыт | Переоткрыт |
| Не баг | Переоткрыт |
| Отложен | В работе · Не баг |
Для перехода «Не баг» причина выбирается из типизированного списка: задумано так, не воспроизводится, дубликат, проблема окружения, устарело.
Пометить дефект «Не баг» могут администратор, тестировщик и менеджер. Разработчик может отклонить как «Не баг» дефект, который он уже взял в работу (стадия «В работе»), — с той же обязательной причиной, а для дубликата — со ссылкой на исходный дефект; в карточке дубликата и в его истории исходный дефект показан ссылкой.
6.3. Представления и операции
- Доска по стадиям с перетаскиванием карточек; счётчики панели и колонок кликабельны и открывают список ровно из этих дефектов.
- Список с фильтрами и постраничной навигацией; глобальный поиск с подсказками.
- Связывание дубликатов, связь дефектов с тест-кейсами.
- Удаление выполняется архивированием: ключи дефектов сохраняются для внешних ссылок (задачи Битрикс24, ссылки на дубликаты).
- Экспорт списка в CSV.
6.4. Расширение браузера
Расширение для Chrome и Яндекс Браузера заводит дефект из открытой страницы: снимок видимой области, адрес, браузер, размер окна и время попадают в карточку сами, а после «Начать запись» — действия, ошибки консоли и неудачные запросы (в шаги и во вложение-журнал). Значения полей ввода не записываются. Архив и инструкция по установке — qadesk.ru/extension/; подключение — кодом из кабинета: Настройки → Интеграции → Расширение → «Выпустить код подключения». Расширение работает строго в правах пользователя его персональным токеном; отзыв токена во вкладке «MCP» выключает его сразу.
7. Библиотека тест-кейсов
Библиотека тест-кейсов QA Деск хранит кейсы с шагами, ожидаемыми результатами и версиями, в 3 статусах и дереве папок. Импорт и экспорт — CSV, перенос из Test IT — XLSX/CSV.
- Тест-кейсы с шагами и ожидаемыми результатами; версии кейса сохраняются, прогоны ссылаются на конкретную версию.
- Статусы кейса: черновик, актуален, архив.
- Дерево папок для организации библиотеки; дублирование кейсов.
- Импорт и экспорт CSV с построчным отчётом об ошибках; перенос библиотеки из Test IT (XLSX/CSV).
- Связь кейсов с дефектами.
8. Тест-планы и прогоны
Прогоны в QA Деск бывают 2 видов — ручные и автоматические из CI. Ручной прогон стартует из тест-плана по одному на каждую конфигурацию среды, хранит снимок конфигурации и учитывает время исполнения.
- Составление плана из кейсов библиотеки.
- Экран ручного прогона: результат по каждому шагу, заведение дефекта из упавшего шага с автоматическим связыванием.
- Сводный экран прогона с метриками: пройдено, упало, пропущено.
- Конфигурации среды (браузер, ОС, стенд): один план стартует по прогону на каждую конфигурацию; прогон хранит снимок конфигурации.
- Учёт времени исполнения: таймер по строке прогона, сумма по прогону в карточке, списке и динамике.
- Строки прогона группируются по папкам библиотеки на момент старта.
- Прогоны двух видов: ручные и автоматические (из CI).
9. Приём отчётов автотестов
QA Деск принимает отчёты JUnit XML и Allure по HTTP с токеном проекта, идемпотентно по запуску CI и номеру попытки, и сопоставляет результаты с кейсами библиотеки по ключам.
- Форматы: JUnit XML и Allure (результаты в NDJSON).
- Приём по HTTP:
POST /ingest/v1/junitиPOST /ingest/v1/allureс токеном проекта. - Повторная отправка того же отчёта (тот же запуск CI и номер попытки) не создаёт дублей — приём идемпотентен.
- Сопоставление результатов с кейсами библиотеки по ключам.
- Консольная утилита
qadesk-cliдля отправки отчётов из конвейера CI: находит файлы JUnit XML или Allure в каталоге, склеивает их в один отчёт, берёт ключ идемпотентности из переменных CI (GitHub Actions, GitLab, GitFlic, Jenkins, TeamCity), печатает несматченные тесты поимённо и ссылку на прогон; коды выхода 0 / 1 / 2 (принят / не дошёл / ошибка данных),--strict— 3 при несматченных. Бинарники для Linux, macOS и Windows — qadesk.ru/cli.
10. Интеграция с Битрикс24
Интеграция QA Деск с Битрикс24 — приложение портала: синхронизация сотрудников и орг-структуры, сквозной вход, вкладка «Баги» в карточке задачи и двусторонняя связь «дефект — задача».
- Установка приложения на портал с мастером выбора рабочих групп.
- Синхронизация каталога сотрудников портала; сквозной вход (SSO).
- Вкладка «Баги» в карточке задачи портала: список связанных дефектов и форма заведения нового; исполнитель выбирается из участников задачи.
- Двусторонняя связь «дефект — задача» и прямые ссылки из портала в кабинет.
11. Доступ для ИИ-агентов (MCP)
QA Деск — сервер Model Context Protocol по адресу POST /mcp (Streamable HTTP, версии протокола 2025-06-18, 2025-03-26, 2024-11-05). Агент ищет, заводит, переводит и комментирует дефекты в правах выданного токена.
- Сервер Model Context Protocol (Streamable HTTP) по адресу
POST /mcp; поддерживаются версии протокола 2025-06-18, 2025-03-26 и 2024-11-05. - Инструменты: список проектов, поиск дефектов, карточка дефекта по ключу, заведение дефекта, перевод по стадиям, комментарий.
- Аутентификация — персональными токенами, выпускаемыми в кабинете; агент действует строго в правах владельца токена.
- Совместимо с Claude Code, Claude Desktop, Cursor и другими MCP-клиентами.
- Агент как самостоятельный участник пространства: без почты и пароля, с обязательным владельцем-человеком, любой ролью кроме администратора; не считается редактором тарифа; не удаляется, а выключается с сохранением подписи в истории. Токены MCP и приёма отчётов выпускаются на агента.
- Учёт мест пространства: редакторы, наблюдатели и агенты отдельно.
12. Интеграция с Sentry
Интеграция с Sentry превращает ошибку уровня error или fatal в один дефект QA Деск со ссылкой на issue, без дублей при повторных срабатываниях. Подключение — Auth Token с правом project:read, облачный Sentry или собственная установка.
- Подключение проекта Sentry (облачного или собственной установки) к
пространству по Auth Token с правом
project:read; подключение сохраняется только после проверки токена и проекта живым запросом. - Ошибка уровня
error/fatalстановится дефектом выбранного проекта: через вебхук Sentry по адресу с секретом, с маркером источника, ссылкой на issue, типом исключения и местом возникновения. Одна ошибка — один дефект: повторные срабатывания дефект не дублируют. - Поддерживаются плагин WebHooks (правило оповещений) и Internal Integration с проверкой подписи доставки по Client Secret.
- Привязка существующей ошибки к дефекту из карточки по id или ссылке; блок «Ошибки Sentry» и события в истории дефекта.
- Токен и Client Secret хранятся в зашифрованном виде и не отображаются.
13. ИИ-помощник на своём LLM
ИИ-помощник QA Деск работает на модели заказчика через любой OpenAI-совместимый API — DeepSeek, OpenAI, vLLM, Ollama, LM Studio — с ключом владельца пространства и без посредничества в расчётах.
- Подключение к пространству любого сервиса с OpenAI-совместимым API
(
POST {адрес}/chat/completions): DeepSeek, OpenAI, локальные vLLM, Ollama, LM Studio. Ключ API принадлежит владельцу пространства, расчёты с поставщиком модели — напрямую, без посредничества системы. - Подключение сохраняется только после пробного запроса, на который модель ответила; ответ на пробный запрос отображается на карточке.
- Форма дефекта: предложение вариантов названия по описанию, шагам и результатам; выбранный вариант подставляется в поле, отправку выполняет пользователь.
- Форма тест-кейса: черновик кейса по тексту требования — название, предусловия и шаги. Результат раскладывается по полям формы и доступен для правки до создания кейса.
- Ответ модели проверяется по схеме до попадания в форму; несоответствие формату возвращается как ошибка запроса, а не как повреждённые данные.
- Права на генерацию совпадают с правами на ручное действие: заведение дефекта и запись тест-кейса соответственно.
- Ключ хранится в зашифрованном виде и не отображается. Тексты запросов и ответов не сохраняются; учитываются вид операции, модель, число токенов и длительность. Пока провайдер не подключён, обращения к внешним сервисам не выполняются.
14. Экспорт и перенос данных
Дефекты и тест-кейсы QA Деск выгружаются в CSV; кейсы загружаются из CSV и переносятся из Test IT в формате XLSX/CSV.
- Экспорт дефектов и тест-кейсов в CSV.
- Импорт кейсов из CSV; миграция из Test IT (XLSX/CSV).
15. Требования к среде
Для пользователей облачного сервиса: современный браузер (Chrome, Firefox, Safari, Edge, Яндекс Браузер актуальных версий), доступ в интернет.
Для развёртывания экземпляра: сервер под управлением Linux с Docker Engine и Docker Compose v2; рекомендуется от 2 vCPU и 4 ГБ ОЗУ; СУБД PostgreSQL 16 входит в состав поставки. Подробнее — в Инструкции по установке.