Skip to content

Execution context and environment

In Complex QA, environment is not a single free-text field on a bug or an informal note on a run. It is a consistent set of conditions under which a tester executed work or where a defect was found.

Below: the data model concept and what is already available in the UI (the project Execution context area).


Why it matters

Without fixed context, reproducibility fades: “bug on staging” six months later does not answer which browser, build, or URL was meant. Context links manual testing, run results, and bugs through one vocabulary—the same environment dimensions—not separate ad hoc fields per entity.


Two layers: catalog and snapshot

Catalogs are shared dimensions: browser, OS, screen resolution, device class, locale, deployment target. Some values ship with the service; a project can add its own entries.

An execution context snapshot (execution_context) records what actually applied at the moment: chosen catalog entries, host, base URL, protocol, build version on the snapshot. History should not “drift” if a catalog label is renamed later: the API returns hydrated reference objects, not bare IDs only.


Environment axes (catalogs)

AxisSnapshot fieldExample values
Browserbrowser_context_idChrome, Firefox, Safari, …
OSos_context_idWindows, macOS, Linux, Android, iOS
Screen resolutionscreen_resolution_context_id1920×1080, 390×844, …
Devicedevice_context_idDesktop, Mobile, Tablet
Localelocale_context_idru-RU, en-US, …
Deployment targetdeployment_target_context_idstaging, production, preview, …

Catalogs are service-wide (reference search is not scoped by project_id). The snapshot still stores project_id—it belongs to a project.

Additional snapshot text fields:

FieldPurpose
context_titleShort snapshot name (title)
context_descriptionDescription (HTML)
protocolHTTP or HTTPS
hostHost without scheme
base_urlFull base URL
build_versionBuild version at snapshot time

UI: Execution context area

Available from the project card and project sidebar.

Listing

  • Table of snapshots for the current project.
  • Create — new empty row in the project.
  • Inline edit in cells (including environment axes via reference selects).
  • Open details from a row click.

Snapshot details

  • Editable title (context_title).
  • Details tab: pivot field table + description block.
  • Environment axes — searchable reference dropdowns (live search on context_name).
  • Actions: Clone, Delete.

When saving a reference field, the UI shows the catalog label, not a raw ID. While the API request runs, the table shows a loading overlay.

Reference selects

  • Empty search loads the full catalog for that axis (client cache on repeat opens).
  • Typed search hits the backend (LIKE on context_name).
  • “Not assigned” clears the link (null).

Where context is used

EntityTodayPlanned
Project snapshotListing + details, CRUD
Test run resultIn data modelUI linking
BugSeparate product version fieldsReproduction snapshot link
AutomationSame catalogs in APIRunner fills snapshot at start

Test accounts stay a separate entity; a snapshot may reference an account when run flows support it.


Product versions vs environment

Build version on a bug (bug_build_version, affected/fixed) is about the product release.
build_version on a snapshot is what was recorded in the environment at event time.
These do not replace browser/OS catalogs.


What’s next

  • Presets (“typical desktop Chrome on staging”).
  • Linking snapshots to failed results and creating bugs with context carried over.
  • Project custom attributes on snapshots.
  • CI integration and runner auto-fill.

See also


Version1.1
Last updated2026-06-13

Complex QA — test management system