Overview
The E2E Test Visualizer tracks test execution across complex system landscapes. Think of it as a board game: your grid is the playing field, swimlanes divide it into system areas, and marbles are test data items that roll through the grid along defined paths.
Key Concepts
Grid
A grid represents one test cycle or test phase (e.g. "SIT Cycle 1", "UAT Round 2"). It's a table of rows and columns. Each cell (called a field) can be one of three types:
- Step — a test activity that marbles pass through
- Interface — a handoff point between systems
- Empty — unused space
Swimlanes
Swimlanes are horizontal bands that group rows together. Each swimlane typically represents a system, organization, or team (e.g. "Vendor Portal", "Backend API", "Partner Org"). Swimlanes are important for branches because a branch always targets a specific swimlane.
Marbles
A marble is a piece of test data that moves through the grid. For example, if you're testing an order processing system, each marble could be a different order type ("Standard Order", "Rush Order", "Cancellation"). Each marble has:
- A path — the ordered sequence of fields it visits
- A position — where it currently is on that path
- A color — for visual identification on the grid
Statuses
Each step in a marble's path has a status:
| Status | Meaning | Next |
|---|---|---|
| Pending | Not started yet | In Progress, or Irrelevant |
| In Progress | Currently being tested | Passed, Defect, or Blocking |
| Passed | Test successful — marble advances | — |
| Defect | Bug found, needs fixing | Passed (after fix) |
| Blocking | Cannot proceed, blocker | In Progress (when unblocked) |
| Irrelevant | Step doesn't apply — marble skips it | — |
Full Workflow
1. Create a Project
A project groups related test grids together (e.g. "Release 2.5 Testing").
- On the Projects page, click + New Project
- Enter a name, market, and optional description
- Click Create — you'll land on the project dashboard
2. Build a Grid
A grid is your test playing field. You define its structure in the Grid Editor.
- From the project dashboard, click + New Grid
- Enter a grid name and choose the test phase (SIT, E2E, UAT)
- In the Grid Editor, add rows and columns using the + Row / + Col buttons
- Click cells to cycle their type: empty → step → interface → empty
- Double-click row/column headers to rename them
- Create swimlanes in the sidebar: give each a name, type, and the row range it covers
- Click Save Changes
3. Add Marbles
Marbles are the test data items that travel across the grid.
- From the grid view, click Marbles in the header nav
- Click + New Marble
- Enter an external ID (e.g. "ORD-001"), a name, and pick a color
- The marble is created with no path — you need to define one next
4. Define a Path
A path tells the marble which fields to visit and in what order.
- In the Marble Manager, click Edit Path on the marble you want to configure
- The grid enters Path Definition Mode — cells become clickable
- Click cells in order to add them to the path. Each click adds a numbered step. Click again to remove.
- The path bar at the top shows your sequence: Step 1 → Step 2 → Step 3 ...
- When done, click Save Path
5. Execute
Execution is where you advance marbles through their paths step by step.
- From the grid view, click Execute in the header nav
- Select a marble from the list
- The current step is highlighted. Use the status buttons to update it.
- When you mark a step as Passed or Irrelevant, the marble automatically advances to the next step
- The mini-grid on the right shows the marble's position in context
Branches
Why branch?
In real E2E testing, a test data item often needs to be processed by multiple systems in parallel. For example, an order might flow through the main portal, then simultaneously trigger processing in Organization A and Organization B. Branches model this:
When the parent marble passes "Submit", a child marble is automatically created in the target swimlane. The child follows its own path independently.
Setting up a branch
Branches are configured during path definition:
- Enter Path Definition Mode (click "Edit Path" on a marble)
- Click cells to build the path as usual
- On the step where you want the branch to happen, right-click the cell
- Select "Set branch target" from the context menu
- Choose the target swimlane — this is where the child marble will be created
- The cell now shows a ⛂ branch indicator
- Optionally, right-click another step further along and select "Toggle merge point" — this adds a ⊕ indicator
- Click Save Path
How branching executes
During execution, when the parent marble reaches a branch step:
- You mark the branch step as Passed (or Irrelevant)
- The system automatically creates a child marble in the target swimlane
- The child gets its own path: all step/interface fields in the target swimlane from that column onward
- The child has a shifted color and its ID is
parent-id / swimlane-name - The parent marble continues advancing along its own path
- You can switch to the child marble in the Execution view to advance it independently
Merge points
A merge point is a synchronization gate on the parent's path. When the parent reaches a merge step, the Execution view shows the status of all child marbles. This lets you see at a glance whether the children have completed their paths before the parent proceeds.
Merge points are informational — they show you the child status but don't hard-block advancement. It's up to you to decide when the parent should continue.
Full example
Let's walk through a concrete scenario:
Setup: You have a grid with two swimlanes:
- Vendor Portal (rows 0–2) — steps: Login, Create Order, Submit, Review, Done
- Partner Org (rows 3–4) — steps: Receive, Validate, Approve
Path definition for marble "ORD-001":
- Click: Login → Create Order → Submit → Review → Done
- Right-click Submit → Set branch target → select Partner Org
- Right-click Review → Toggle merge point
- Save Path
Execution:
- Advance ORD-001: Login → Passed, advances to Create Order
- Advance ORD-001: Create Order → Passed, advances to Submit
- Advance ORD-001: Submit → Passed. This is a branch step, so a child marble "ORD-001/Partner Org" is automatically created with path: Receive → Validate → Approve
- ORD-001 advances to Review (merge point). You can see the child's status here.
- Switch to child marble "ORD-001/Partner Org" and advance it: Receive → Validate → Approve
- Switch back to ORD-001. The merge point now shows all children passed. Advance through Review → Done.