QE Run Workflow
Standalone QE test execution — runs all 6 test layers, classifies failures, and publishes results to Jira with auto-created bug tickets.
Invocation
# From a Jira ticket
/qe-run PROJ-1234
# Single test layer
/qe-run PROJ-1234 --layer e2e
# From an explicit test plan
/qe-run --from-plan ./TEST_PLAN.md
# Discovery mode (no ticket)
/qe-run "test the search API"
# Re-execute only previous failures
/qe-run --rerun
# Dry run (skip Jira publishing)
/qe-run PROJ-1234 --no-publish
# Commit + PR for new test files
/qe-run PROJ-1234 --prPipeline
Phase Summary
Hover over any phase name to see what it does in detail.
| # | Phase | Purpose | Key Output |
|---|---|---|---|
| 1 | INTAKE | Parse input, fetch ticket, locate test plans | INTAKE.md |
| 2 | DISCOVER | Map test landscape, validate plans, identify layers | DISCOVERY.md |
| 3 | PLAN | Convert plans into executable commands per layer | EXECUTION_PLAN.md |
| 4 | SETUP | Create/update test files, test data, capture baseline | SETUP_RESULT.md |
| 5 | EXEC_FUNCTIONAL | Run unit + functional tests (no server) | EXEC_FUNCTIONAL_RESULT.md |
| 6 | EXEC_INTEGRATION | Start server, run integration/API tests | EXEC_INTEGRATION_RESULT.md |
| 7 | EXEC_E2E | Start server, run E2E + cross-browser tests | EXEC_E2E_RESULT.md |
| 8 | EXEC_NONFUNCTIONAL | Performance, security audit, accessibility scan | EXEC_NONFUNCTIONAL_RESULT.md |
| 9 | ANALYZE | Aggregate results, classify failures, determine verdict | ANALYSIS.md |
| 10 | REPORT | Generate comprehensive QE report | QE_REPORT.md |
| 11 | PUBLISH | Post to Jira, create bug tickets, add labels | PUBLISH_RESULT.md |
| 12 | LEARN | Persist patterns to shared knowledge stores | — |
6 Test Layers
Each layer executes independently. Missing frameworks are recommended, never blocking. Use --layer to run a single layer.
| Layer | Scope | Server | Tools | Speed |
|---|---|---|---|---|
| Functional | Unit + component tests | No | Jest / Vitest / pytest | Fast |
| Integration | API contracts, service integration | Yes | Supertest / Pact / httpx | Medium |
| E2E | User journeys, cross-browser | Yes | Playwright / Cypress | Slow |
| Performance | Load, response time, throughput | Yes | k6 / autocannon / artillery | Medium |
| Security | Dependency audit, static analysis | No | npm audit / Snyk / ESLint security | Fast |
| Accessibility | WCAG compliance, ARIA validation | Yes | axe-core / pa11y / Lighthouse | Medium |
Failure Classification
The ANALYZE phase classifies every failure by comparing against the baseline captured in SETUP.
Passed in baseline, fails now. Real issue.
Newly created test fails. Bug or test issue.
Already failing in baseline. Not new.
Inconsistent results across runs.
Server timeout, missing service. Not code.
Verdicts
| Verdict | Meaning | Jira Action |
|---|---|---|
| ALL_PASS | Zero failures across all layers | Add qe-verified label |
| PASS_WITH_KNOWN | Only pre-existing or flaky failures | Add qe-verified label with caveat |
| REGRESSIONS_FOUND | Tests that passed before now fail | Create Bug tickets, add qe-issues-found label |
| CRITICAL_FAILURE | Test infrastructure broken | Flag environment issues for investigation |
| NONFUNCTIONAL_ISSUES | Functional tests pass, NFR findings exist | Create tickets for critical NFR findings |
What Gets Posted to Jira
The PUBLISH phase posts a QE report comment, creates Bug tickets for regressions, and adds labels.
## QE Execution Results
**Verdict:** REGRESSIONS_FOUND
**Run date:** 2026-03-06
### Test Summary
- Functional: 48/50 passed (2 regressions)
- Integration: 12/12 passed
- E2E: 8/9 passed (1 flaky)
- Performance: PASS — p95 < 200ms
- Security: WARN — 1 moderate vulnerability
- Accessibility: PASS — 0 critical violations
### Regression Bugs Created
- [PROJ-201] QE Regression: auth.test.ts login returns 401
- [PROJ-202] QE Regression: cart.test.ts total calculation off by 1
**Label added:** qe-issues-found
Story-QA Integration
/qe-run picks up where /story-qa left off. If a TEST_PLAN.md exists from a story-qa run, the PLAN phase converts it into executable commands instead of generating from scratch.
Signal Flow
| Signal | Type | Meaning |
|---|---|---|
| PHASE_COMPLETE | Advance | Phase done, advance to next in pipeline |
| SETUP_FAILED | Loopback | Setup failed, retry up to 3 times |
| BLOCKED_NEEDS_HUMAN | Block | Setup failed 3 times, needs human intervention |
| EXEC_*_COMPLETE | Advance | Execution layer done (always advances, even with failures) |
| QE_RUN_COMPLETE | Terminal | Workflow complete, knowledge stores updated |