Перейти к содержанию

Матрица трассировки: Переменные для ВР3

Источник: актуальная QA-документация проекта «Переменные для ВР3», редакция от 20.08.2026.

Матрица связывает бизнес-требования, сценарии, функциональные и нефункциональные требования ВР-10 с матрицей тестирования.

Основание: материалы каталога Техническое Задание/ и локальные экспорты Макеты Фигма/. При конфликте источников ожидаемый результат определяется ТЗ; расхождение фиксируется в разделе «Риски и неоднозначности».

Бизнес-требования

Требование Описание Тест-кейсы
BR-REQ-001 Четыре действия переменной на этапе VAR-ASSIGN-003; VAR-ACTION-001–005
BR-REQ-002 Формат Строка и ограничение длины VAR-STR-001–003
BR-REQ-003 Формат Число, уникальность операций и непротиворечивость VAR-NUM-001–003
BR-REQ-004 Варианты Списка и количество ответов VAR-LIST-001–003
BR-REQ-005 Предустановленные и пользовательские пары Флага VAR-FLAG-001–002
BR-REQ-006 Формат и URL-валидация Ссылки VAR-LINK-001
BR-REQ-007 Выбор значения типа Дата VAR-DATE-001
BR-REQ-008 Выбор даты и времени с точностью до минут VAR-DATETIME-001–002
BR-REQ-009 Форматы и количество файлов VAR-FILE-001–003; VAR-PERF-006
BR-REQ-010 Категория, справочник и количество ответов VAR-DIR-001–002; VAR-SCALE-001
BR-REQ-011 Категория, объект учёта, системные объекты и количество ответов VAR-OBJECT-001–003; VAR-SCALE-002
BR-REQ-012 Значение по умолчанию соответствует типу и ограничениям VAR-CRUD-008; все кейсы VAR-STR-*VAR-OBJECT-*
BR-REQ-013 Необязательное описание переменной до 500 символов VAR-CRUD-005
BR-REQ-014 Изменения доступны только в черновике VAR-CRUD-013; VAR-SEC-001
BR-REQ-015 Оверлей создания и редактирования VAR-UI-002–003; VAR-CRUD-001–008
BR-REQ-016 Управление привязками через оверлей переменной VAR-ASSIGN-001–005; VAR-ASSIGN-009–010
BR-REQ-017 Редактирование и удаление привязки через оверлей VAR-ASSIGN-006–010
BR-REQ-018 Настройка переменных этапа через полотно VAR-CANVAS-001–009
BR-REQ-019 Глобальный и локальный порядок VAR-ORDER-001–004
BR-REQ-020 Подтверждение и каскадное удаление переменной VAR-CRUD-009–011

Сценарии использования

Сценарий Описание Тест-кейсы
UC-001 Создание переменной Список VAR-CRUD-001; VAR-LIST-001–003
UC-002 Создание переменной Справочник VAR-CRUD-001; VAR-DIR-001–002
UC-003 Создание переменной Объект учёта VAR-CRUD-001; VAR-OBJECT-001–003
UC-004 Создание переменной Дата и время VAR-CRUD-001; VAR-DATETIME-001–002
UC-005 Добавление переменной в этап из списка переменных VAR-ASSIGN-001–005; VAR-ASSIGN-009
UC-006 Редактирование и удаление привязки из списка переменных VAR-ASSIGN-006–010
UC-007 Добавление переменной в этап через полотно VAR-CANVAS-001–004; VAR-CANVAS-007
UC-008 Редактирование и удаление переменной этапа через полотно VAR-CANVAS-005–009
UC-009 Удаление переменной из БП VAR-CRUD-009–011

Функциональные требования

Требование Описание Тест-кейсы
FR-VAR-001 Создание переменной VAR-UI-002–003; VAR-CRUD-001–005
FR-VAR-002 Редактирование с предзаполнением VAR-CRUD-006–007
FR-VAR-003 Подтверждённое удаление и уведомление VAR-CRUD-009–010
FR-VAR-004 Предупреждение при использовании и каскад VAR-CRUD-011
FR-VAR-005 Уникальность имени в рамках БП VAR-CRUD-003–004
FR-VAR-006 Глобальный порядок VAR-ORDER-001; VAR-ORDER-003–004
FR-VAR-007 Валидация значения по умолчанию VAR-CRUD-008; типовые кейсы с проверкой default value
FR-TYPE-001 Настройки Строки VAR-STR-001–003
FR-TYPE-002 Настройки Числа VAR-NUM-001–003
FR-TYPE-003 Настройки Списка VAR-LIST-001–003
FR-TYPE-004 Настройки Флага VAR-FLAG-001–002
FR-TYPE-005 Настройки Справочника VAR-DIR-001–002
FR-TYPE-006 Настройки Объекта учёта VAR-OBJECT-001–003
FR-TYPE-007 Настройки Файла VAR-FILE-001–003
FR-TYPE-008 Настройки Дата и время VAR-DATETIME-001–002
FR-TYPE-009 Настройки Дата VAR-DATE-001
FR-TYPE-010 Настройки Ссылка VAR-LINK-001
FR-ASSIGN-001 Открытие оверлея настройки этапов VAR-ASSIGN-001
FR-ASSIGN-002 Таблица привязок и ее колонки VAR-ASSIGN-001
FR-ASSIGN-003 Добавление этапа и фильтрация селекта VAR-ASSIGN-002–004
FR-ASSIGN-004 Уникальность пары переменная–этап VAR-ASSIGN-005
FR-ASSIGN-005 Редактирование привязки VAR-ASSIGN-006
FR-ASSIGN-006 Удаление привязки с подтверждением VAR-ASSIGN-007–008
FR-ASSIGN-007 Пакетное сохранение, уведомление и счетчик VAR-ASSIGN-009–010
FR-CANVAS-001 Карточка переменных в сайдпанели этапа VAR-CANVAS-001
FR-CANVAS-002 Открытие на вкладке Поля и переменные VAR-CANVAS-002
FR-CANVAS-003 Добавление переменной в этап VAR-CANVAS-003–004
FR-CANVAS-004 Редактирование переменной этапа VAR-CANVAS-005
FR-CANVAS-005 Удаление переменной из этапа VAR-CANVAS-006
FR-CANVAS-006 Сохранение и обновление счетчика VAR-CANVAS-007–009
FR-CANVAS-007 Локальный порядок VAR-ORDER-002–004
FR-SEC-001 Блокировка действий не в черновике VAR-CRUD-013; VAR-SEC-001

Нефункциональные требования

Требование Описание Тест-кейсы / подтверждение
NFR-PERF-001 Открытие интерфейсов не более 2 секунд при 1000 переменных и 50 этапах VAR-PERF-001; VAR-PERF-004
NFR-PERF-002 Сохранение не более 3 секунд VAR-PERF-002
NFR-PERF-003 Страница с 500 переменными загружается не более 5 секунд VAR-PERF-003
NFR-SCALE-001 Масштабирование категорий и справочников VAR-SCALE-001; VAR-ARCH-002
NFR-SCALE-002 Масштабирование категорий и объектов учёта VAR-SCALE-002; VAR-ARCH-002
NFR-SCALE-003 До 100 этапов в селектах VAR-PERF-005
NFR-SCALE-004 Несколько файлов, суммарно не более 100 МБ VAR-FILE-002–003; VAR-PERF-006
NFR-SEC-001 Проверка прав на операции изменения VAR-SEC-001
NFR-SEC-002 Изоляция данных разных БП VAR-CRUD-004; VAR-SEC-002
NFR-SEC-003 Форматы и антивирусная проверка файлов VAR-FILE-003
NFR-RELIAB-001 Полная валидация перед сохранением VAR-DATA-002; VAR-API-033; негативные типовые кейсы
NFR-RELIAB-002 Согласованное каскадное удаление VAR-CRUD-011; VAR-DATA-001
NFR-RELIAB-003 Понятные ошибки при отсутствующих данных VAR-CRUD-012; VAR-UX-002
NFR-USAB-001 Понятные заголовки, подписи и кнопки VAR-UI-001–002; VAR-UX-001
NFR-USAB-002 Обратная связь об успехе и ошибках VAR-CRUD-010–012; VAR-ASSIGN-009; VAR-UX-002
NFR-USAB-003 Единые паттерны overlay/sidepage/bottombar/alert VAR-UX-001
NFR-MOD-001 Добавление типа через конфигурацию settings VAR-ARCH-001
NFR-MOD-002 Независимость модуля и явные API-интерфейсы VAR-ARCH-002

Правила концептуальной модели

Правило Тест-кейсы
Уникальность имени переменной VAR-CRUD-003–004
Уникальность привязки VAR-ASSIGN-005; VAR-SEC-002
Валидация числовых ограничений VAR-NUM-001–003
Обязательность и длина описания действия VAR-ASSIGN-004; VAR-CANVAS-004
Длина описания переменной VAR-CRUD-005
Доступность изменений VAR-CRUD-013; VAR-SEC-001
Каскадное удаление VAR-CRUD-011; VAR-DATA-001
Фильтрация справочников и объектов учёта VAR-DIR-001; VAR-OBJECT-001–002
Формат даты и времени VAR-DATETIME-001–002
Валидация значения по умолчанию VAR-CRUD-008; типовые кейсы
Валидация файлов VAR-FILE-001–003
Минимальное количество ответов/файлов — 1 VAR-LIST-002–003; VAR-DIR-002; VAR-OBJECT-003; VAR-FILE-002

Покрытие макетов

UI-блок Локальные экспорты Тест-кейсы
Общий список, фильтры Все / Поля / Переменные, счетчик, поиск и меню строки Макеты Фигма/Добавление, редактирование и удаление переменной в БП/Поля и переменные*.png VAR-UI-001; VAR-CRUD-006; VAR-ASSIGN-001
Создание и динамические формы типов Макеты Фигма/Тип переменных MVP/Добавить переменную*.png, именованные экраны типов VAR-UI-002–003; все VAR-STR-*VAR-OBJECT-*
Настройка этапов для переменной .../Поля и переменные-2.png.../Поля и переменные-11.png VAR-ASSIGN-001–010
Настройка переменных этапа и drag-and-drop .../Поля и переменные-15.png.../Поля и переменные-22.png, Этап*.png, Добавить шаг*.png VAR-CANVAS-001–009; VAR-ORDER-002–004
Экран исполнения Макеты Фигма/Тип переменных MVP/Экран исполнения*.png VAR-ACTION-001–005; VAR-ORDER-004

Покрытие по блокам тест-кейсов

Блок Диапазон Назначение
UI и CRUD VAR-UI-001–003, VAR-CRUD-001–013 Список, создание, редактирование, удаление и доступность
Типы переменных VAR-STR-001–VAR-OBJECT-003 Настройки десяти типов, границы и default value
Привязки из списка переменных VAR-ASSIGN-001–010 Добавление, изменение, удаление и пакетное сохранение
Полотно и этап VAR-CANVAS-001–009 Альтернативная точка входа и синхронизация
Порядок и исполнение VAR-ORDER-001–004, VAR-ACTION-001–005 Глобальный/локальный порядок и семантика действий
Данные и безопасность VAR-DATA-001–002, VAR-SEC-001–002 Каскады, атомарность, права и изоляция
Производительность и масштаб VAR-PERF-001–006, VAR-SCALE-001–002 Временные пороги и объемы
UX и архитектура VAR-UX-001–002, VAR-ARCH-001–002 Паттерны интерфейса и модифицируемость

Покрытие фактического API-контракта

Контракт повторно проверен по OpenAPI стенда 20.08.2026 и по backend develop/origin/feature/fields-actions. Результаты новых ручек приведены в otchet-audit-novyh-api-ruchok-peremennye-2026-08-20.md.

Требование / правило API-тесты Покрываемый риск
BR-REQ-001; FR-ASSIGN-001–007 VAR-API-014, VAR-API-021, VAR-API-023–027 Контракт, CRUD, четыре action, обязательное описание, уникальность, порядок и исполнение
BR-REQ-002–011; FR-TYPE-001–010 VAR-API-007–009, VAR-API-016–018 Типизированные settings, default value, исполнение и негативная валидация
FR-CRUD-001–007 VAR-API-004–012, VAR-API-019 CRUD, уникальность, границы, группы и каскад
FR-SEC-001; NFR-SEC-001 VAR-API-001, VAR-API-010 Аутентификация, права и защита системного признака
NFR-SEC-002 VAR-API-004–006, VAR-API-023–027, VAR-API-029–032 Scope URL и изоляция БП, stage, action, value и системных конфигов
NFR-RELIAB-001 VAR-API-005, VAR-API-008–009, VAR-API-018 Валидация до записи и атомарность
NFR-RELIAB-002 VAR-API-012, VAR-API-019, VAR-API-023, VAR-API-025–027, VAR-API-031–032 Согласованное удаление и порядок links/actions/entity fields
NFR-RELIAB-003; NFR-USAB-002 VAR-API-009, VAR-API-018, VAR-API-020, VAR-API-033 Управляемые 4xx/5xx без HTML и stack trace; невалидный template не блокирует создание ЭБП
Группы и системные переменные VAR-API-002, VAR-API-010–013, VAR-API-028, VAR-API-030–031 Фильтры, lifecycle категорий, links, системные конфиги и выдача в ЭБП
Пользовательские переменные и поля ЭБП VAR-API-015–019, VAR-API-033 Синхронизация экземпляров, parent link, default, update и защита создания ЭБП от невалидного template
Порядок и параметры запуска VAR-API-022, VAR-API-025, VAR-API-029 Раздельный глобальный/локальный порядок и init parameters

Реализация автоматического покрытия API

Актуальный полный ретест с нуля и live UI-проверка: otchet-polnyj-retest-s-nulya-peremennye-2026-08-20.md.

Трассируемый блок Файлы автотестов Состояние на стенде 20.08.2026
Группы и системные переменные api_tests/test_groups_and_system_variables.py Фильтры, пагинация, CRUD, duplicate group и счётчик пройдены; POST-защита is_system — BPAPI-005, PATCH защищён.
Форматы и общая валидация api_tests/test_variable_formats.py Хранение 8 автономных форматов и 499/500 пройдено; 20 negative и 501 — BPAPI-004/006.
Экшны переменных api_tests/test_actions_contract.py Полный inventory переданных ручек; action/reorder/value routes отсутствуют в OpenAPI — BPAPI-017.
Пользовательские поля ЭБП api_tests/test_ebp_fields.py New materialization, entity/page read models и cascade пройдены; existing/default/update/invalid-template isolation — BPAPI-012/009/010/011.
Справочники api_tests/test_reference_contracts.py Read-only дерево category → entries и OpenAPI discoverability пройдены; positive variable — GAP-008.
Security/scope/atomicity api_tests/test_security_and_isolation.py BPAPI-001/002/003/013/016; recovery-run не создаёт второй БП.
Reorder / init / publication / system config api_tests/test_variable_reorder.py, api_tests/test_init_parameters.py, api_tests/test_category_publication.py, api_tests/test_system_variable_configs.py Init positive пройден; остальные заблокированы BPAPI-017/020.
Изоляция тестовых данных и cleanup api_tests/conftest.py, api_tests/support/state.py, tools/cleanup-api-test-data.py Полная очистка вместе с БП пройдена 20.08.2026; BPAPI-015 закрыт ретестом.

Риски и неоднозначности

ID Наблюдение Решение для приемки
GAP-001 Макет показывает описание переменной 0/250, ТЗ требует максимум 500 Проверять границу 500 по ТЗ; визуальный счетчик должен быть приведен к 500 после продуктового подтверждения
GAP-002 Макеты используют разные названия экранов и команд по сравнению с FR Проверять смысловой поток и нормативные тексты FR; окончательный copy согласовать до UI-регрессии
GAP-003 Макеты объединяют поля и переменные, а границы ВР-10 описывают только переменные этапов Не расширять функциональный scope ВР-10 на поля; проверять, что фильтр Переменные не смешивает сущности
GAP-004 NFR одновременно задают профиль в 1000 переменных и гарантированный объем интерфейса до 500 Выполнить оба замера: 500 для загрузки страницы и 1000/50 для открытия оверлеев; отклонение оформить отдельным решением
GAP-005 Неограниченное количество справочников/объектов нельзя доказать конечным тестом Использовать согласованный большой набор, анализ пагинации/поиска и архитектурное подтверждение
GAP-006 ТЗ не задает API endpoints, HTTP-коды и точные payload; на стенде опубликован OpenAPI, но он расходится с OPTIONS, frontend GraphQL documents и частью текущего исходного кода API-приемку выполнять по опубликованному versioned contract; расхождения фиксировать VAR-API-020 и блокировать релиз до синхронизации
GAP-007 В макетах присутствуют Текст, Группа, Добавить в библиотеку и Рекомендации ВР, которых нет в требованиях ВР-10 Считать элементами смежного/существующего функционала и не включать в приемку ВР-10 без отдельного требования
GAP-008 Публичный API стенда не позволяет создать метаданные Справочник и Объект учёта как изолированные фикстуры Не использовать постоянные ID. Positive E2E этих двух типов включить после появления fixture API/изолированного seed; negative contract уже автоматизирован.
GAP-009 Исторически DELETE БП возвращал 500; 20.08.2026 новый БП удалён и манифест исчез BPAPI-015 закрыт ретестом; сохранить cleanup regression без xfail.
GAP-010 Публичные GraphQL/OpenAPI контракты не дают управлять статусом черновик/опубликован и доступна только роль admin Не заявлять покрытие FR-SEC-001 по статусу и ролям; добавить поддерживаемые fixtures публикации и editor/viewer account.
GAP-011 Переданный inventory шире OpenAPI/develop: actions находятся только в feature-ветке, execution routes в ней отключены До merge/deployment выполнять contract test BPAPI-017; E2E не считать покрытым.
GAP-012 В feature-ветке draft guards отключены ранним return, а list/create/reorder actions не используют bp_id URL Исправить до merge и добавить cross-BP/status regression для каждой mutation и collection.
GAP-013 FieldType feature-ветки не содержит нормативный accounting_object, но содержит внутренний system; action description ограничено 150, но пустая строка не запрещена Синхронизировать enum/validation с FR-TYPE и FR-ASSIGN до API-приёмки.
GAP-014 Live UI: при активном фильтре Переменные кнопка добавления открывает форму Добавление поля без переключателя сущности и атрибутов переменной BPUI-001; VAR-UI-002 не пройден. Исправить маршрут/режим формы и повторить весь UI E2E переменной.