Skip to content

Контекст выполнения и окружение

В Complex QA окружение — это не одна строка в поле бага и не произвольный комментарий к прогону. Это согласованный набор условий, в которых тестировщик выполнял работу или в которых был найден дефект.

Ниже — концепция модели и то, что уже доступно в интерфейсе (раздел Контекст выполнения в проекте).


Зачем это нужно

Без фиксированного контекста теряется воспроизводимость: «баг на стейдже» через полгода не отвечает на вопросы, какой браузер, какая сборка и какой URL имелись в виду. Контекст связывает ручное тестирование, результаты прогонов и баги одним языком: одни и те же оси окружения, а не разные свободные поля в каждой сущности.


Два слоя: справочник и снимок

Справочники — общие «оси» окружения: браузер, ОС, разрешение экрана, класс устройства, локаль, целевая среда развёртывания. Часть значений поставляется сервисом; проект может добавлять свои записи.

Снимок контекста выполнения (execution_context) — запись о том, что именно было в момент события: выбранные пункты справочников, хост, базовый URL, протокол, версия сборки в снимке. История не должна «плыть», если позже переименуют пункт каталога: в API отдаётся гидрированное значение (объект справочника), а не только ID.


Оси окружения (справочники)

ОсьПоле в снимкеПримеры значений
Браузерbrowser_context_idChrome, Firefox, Safari, …
ОСos_context_idWindows, macOS, Linux, Android, iOS
Разрешение экранаscreen_resolution_context_id1920×1080, 390×844, …
Устройствоdevice_context_idDesktop, Mobile, Tablet
Локальlocale_context_idru-RU, en-US, …
Среда развёртыванияdeployment_target_context_idstaging, production, preview, …

Справочники общие для сервиса (не привязаны к project_id при поиске в селекте). В снимке контекста при этом хранится project_id — снимок принадлежит проекту.

Дополнительные текстовые поля снимка:

ПолеНазначение
context_titleКраткое имя снимка (заголовок)
context_descriptionОписание (HTML)
protocolHTTP или HTTPS
hostХост без схемы
base_urlПолный базовый URL
build_versionВерсия сборки в момент снимка

Интерфейс: раздел «Контекст выполнения»

Доступ из карточки проекта и бокового меню проекта.

Listing (список)

  • Таблица снимков текущего проекта.
  • Создать — новая пустая запись в проекте.
  • Редактирование в ячейках (в т.ч. оси окружения через reference-селекты).
  • Переход в детали по клику на строку.

Детали снимка

  • Редактируемый заголовок (context_title).
  • Вкладка Details: pivot-таблица полей + блок описания.
  • Оси окружения — выпадающие справочники с поиском (live search по имени context_name).
  • Действия: Клонировать (копия снимка), Удалить.

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

Reference-селекты

  • Пустой поиск загружает полный каталог оси (с кешированием на клиенте для повторных открытий).
  • Ввод текста — фильтр на бекенде (LIKE по context_name).
  • Значение «Не назначено» — очистка связи (null).

Где используется контекст

СущностьСейчасПлан
Снимок в проектеListing + детали, CRUD
Результат тест-ранаВ модели данныхПривязка в UI
БагОтдельные поля версий продуктаСсылка на снимок воспроизведения
АвтотестыТе же справочники в APIЗаполнение runner при старте

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


Версии продукта vs окружение

Версия сборки в баге (bug_build_version, affected/fixed) — про релиз продукта.
build_version в снимке — что было зафиксировано в окружении в момент события.
Поля не дублируют справочники браузера/ОС.


Чего ждать дальше

  • Пресеты («типовой desktop Chrome на staging»).
  • Привязка снимка к failed результату и создание бага с переносом контекста.
  • Проектные дополнительные атрибуты в снимке.
  • Интеграция с CI и автозаполнение из runner.

См. также


Версия1.1
Последнее изменение2026-06-13

Complex QA — test management system