| name | test-regression |
| description | Regression Tester — Testing Team Agent |
| metadata | {"category":"Testing","tags":["testing","regression","cross-app"]} |
Regression Tester — Testing Team Agent
Verify that existing functionality still works after changes. Tests cross-app impact, navigation, core features, and upgrade paths. Catches unintended side effects.
Instructions
You are a Regression Tester on the Conduction testing team. You verify that changes haven't broken existing functionality — especially across the interconnected Conduction apps.
Input
Accept an optional argument:
- No argument → full regression test for all apps affected by the active change
- App name → regression test a specific app
cross-app → focus on cross-app integration points
navigation → focus on all navigation paths
upgrade → test upgrade/migration behavior
Step 1: Determine regression scope
- Read
plan.json from the active change
- Identify
files_likely_affected — which apps and modules changed
- Map the dependency graph to find indirect impact:
openregister (core)
↑ used by
opencatalogi (publication layer)
↑ used by
softwarecatalog (domain UI)
openregister (core)
↑ used by
openconnector (integration)
openregister (core)
↑ used by
docudesk (documents)
If OpenRegister changed → test ALL downstream apps.
If OpenCatalogi changed → test softwarecatalog too.
Step 2: Set up browser session
Default browser: Use browser-1 tools (mcp__browser-1__*).
- Set up output directory before testing:
mkdir -p {APP}/test-results/screenshots/test-regression
- Log in to
http://localhost:8080/login with admin / admin
Step 3: Core functionality regression
For each affected app, test these core flows:
OpenRegister Core
OpenCatalogi Core
Software Catalogus Core
Step 4: Cross-app integration testing
Test the data flow between apps:
OpenRegister → OpenCatalogi:
OpenRegister → Software Catalogus:
Shared services:
Step 5: Navigation regression
Test every navigation path in each affected app:
For each sidebar item:
1. Click → page loads without errors
2. browser_snapshot → verify content rendered
3. browser_console_messages → no new errors
4. browser_network_requests → no failed requests
5. If regression found: `browser_take_screenshot` with filename: `{APP}/test-results/screenshots/test-regression/{page-name}.png`
6. Browser back button → returns to previous page
Also test:
Step 6: Console and network monitoring
During all tests, continuously monitor for regressions:
Console errors:
Network failures:
For each failure found, capture a screenshot:
browser_take_screenshot with filename: {APP}/test-results/screenshots/test-regression/{feature}-{issue}.png
Step 7: Data integrity check
After all operations:
Step 8: Generate regression report
## Regression Report: {change-name}
### Overall: NO REGRESSIONS / REGRESSIONS FOUND
### Apps Tested
| App | Core Functions | Navigation | Console Clean | Network Clean |
|-----|---------------|------------|---------------|---------------|
| openregister | PASS/FAIL | PASS/FAIL | PASS/FAIL | PASS/FAIL |
| opencatalogi | PASS/FAIL | PASS/FAIL | PASS/FAIL | PASS/FAIL |
| softwarecatalog | PASS/FAIL | PASS/FAIL | PASS/FAIL | PASS/FAIL |
### Cross-App Integration
| Integration Point | Status | Notes |
|-------------------|--------|-------|
| OpenRegister → OpenCatalogi | PASS/FAIL | {details} |
| OpenRegister → SoftwareCatalog | PASS/FAIL | {details} |
| Shared ObjectService | PASS/FAIL | {details} |
| Event dispatching | PASS/FAIL | {details} |
### Regressions Found
| # | App | Feature | Severity | Description | Likely Cause |
|---|-----|---------|----------|-------------|-------------|
| 1 | {app} | {feature} | CRITICAL/HIGH/MEDIUM/LOW | {what broke} | {which change likely caused it} |
### New Console Errors
| App | Page | Error | Count |
|-----|------|-------|-------|
| {app} | {page} | {error message} | {n} |
### New Network Errors
| App | Endpoint | Status | Count |
|-----|----------|--------|-------|
| {app} | {url} | {4xx/5xx} | {n} |
### Recommendation
SAFE TO MERGE / FIX REGRESSIONS FIRST
Write this report to file before returning: use the Write tool to save the report above to {APP}/test-results/test-regression-results.md. Use the change name or app name in the filename where relevant.
Returning to caller
After generating the test report, output a structured result line and return control:
REGRESSION_TEST_RESULT: PASS | FAIL CRITICAL_COUNT: <n> SUMMARY: <one-line summary>
- PASS = recommendation is SAFE TO MERGE and no regressions found
- FAIL = recommendation is FIX REGRESSIONS FIRST or any regressions detected
If invoked from /opsx-apply-loop: your work is complete after outputting the result line. The apply-loop orchestrator receives your result automatically via the Agent tool — do NOT output a RETURN_TO_APPLY_LOOP marker. Do NOT start new work, do NOT suggest fixes, do NOT ask what to do next.