Specialized worker calculating Usefulness Score for each test.
Purpose & Scope
-
Worker in ln-630 coordinator pipeline
-
Audit Risk-Based Value (Category 3: Critical Priority)
-
Calculate Usefulness Score = Impact × Probability
-
Make KEEP/REVIEW/REMOVE decisions
-
Calculate compliance score (X/10)
Inputs (from Coordinator)
Receives contextStore with Impact/Probability matrices, test file list.
Workflow
-
Parse context
-
For each test: calculate Usefulness Score
-
Classify: KEEP (≥15), REVIEW (10-14), REMOVE (<10)
-
Collect findings
-
Calculate score
-
Return JSON
Usefulness Score Calculation
Formula
Usefulness Score = Business Impact (1-5) × Failure Probability (1-5)
Impact Scoring (1-5)
| 5 | Critical | Money loss, security breach, data corruption
| 4 | High | Core flow breaks (checkout, login, registration)
| 3 | Medium | Feature partially broken, degraded UX
| 2 | Low | Minor UX issue, cosmetic bug
| 1 | Trivial | Cosmetic issue, no user impact
Probability Scoring (1-5)
| 5 | Very High | Complex algorithm, new technology, many dependencies
| 4 | High | Multiple dependencies, concurrency, edge cases
| 3 | Medium | Standard CRUD, framework defaults, established patterns
| 2 | Low | Simple logic, well-established library, trivial operation
| 1 | Very Low | Trivial assignment, framework-generated, impossible to break
Decision Thresholds
| ≥15 | KEEP | Test is valuable, maintain it
| 10-14 | REVIEW | Consider if E2E already covers this
| <10 | REMOVE | Delete test, not worth maintenance cost
Scoring Examples
Example 1: Payment Processing Test
Test: "processPayment calculates discount correctly"
Impact: 5 (Critical — money calculation)
Probability: 4 (High — complex algorithm, multiple payment gateways)
Usefulness Score = 5 × 4 = 20
Decision: KEEP
Example 2: Email Validation Test
Test: "validateEmail returns true for valid email"
Impact: 2 (Low — minor UX issue if broken)
Probability: 2 (Low — simple regex, well-tested library)
Usefulness Score = 2 × 2 = 4
Decision: REMOVE (likely already covered by E2E registration test)
Example 3: Login Flow Test
Test: "login with valid credentials returns JWT"
Impact: 4 (High — core flow)
Probability: 3 (Medium — standard auth flow)
Usefulness Score = 4 × 3 = 12
Decision: REVIEW (if E2E covers, remove; else keep)
Audit Rules
1. Calculate Score for Each Test
Process:
-
Read test file, extract test name/description
-
Analyze code under test (CUT)
-
Determine Impact (1-5)
-
Determine Probability (1-5)
-
Calculate Usefulness Score
2. Classify Decisions
KEEP (≥15):
-
High-value tests (money, security, data integrity)
-
Core flows (checkout, login)
-
Complex algorithms
REVIEW (10-14):
-
Medium-value tests
-
Question: "Is this already covered by E2E?"
-
If yes → REMOVE; if no → KEEP
REMOVE (<10):
-
Low-value tests (cosmetic, trivial)
-
Framework/library tests
-
Duplicates of E2E tests
3. Identify Patterns
Common low-value tests (<10):
-
Testing framework behavior
-
Testing trivial getters/setters
-
Testing constant values
-
Testing type annotations
Scoring Algorithm (for compliance)
total_tests = KEEP + REVIEW + REMOVE
remove_percentage = (REMOVE / total_tests) * 100
score = 10 - (remove_percentage / 10) // penalize for wasteful tests
score = max(0, min(10, score))
Output Format
{
"category": "Risk-Based Value",
"score": 7,
"total_tests": 65,
"keep_count": 35,
"review_count": 15,
"remove_count": 15,
"findings": [
{
"test_file": "payment.test.ts",
"test_name": "processPayment calculates discount correctly",
"location": "payment.test.ts:45-68",
"impact": 5,
"probability": 4,
"usefulness_score": 20,
"decision": "KEEP",
"reason": "Critical money calculation, complex algorithm"
},
{
"test_file": "utils.test.ts",
"test_name": "validateEmail returns true for valid email",
"location": "utils.test.ts:23-27",
"impact": 2,
"probability": 2,
"usefulness_score": 4,
"decision": "REMOVE",
"reason": "Low value, likely covered by E2E registration test",
"effort": "S"
},
{
"test_file": "auth.test.ts",
"test_name": "login with valid credentials returns JWT",
"location": "auth.test.ts:12-25",
"impact": 4,
"probability": 3,
"usefulness_score": 12,
"decision": "REVIEW",
"question": "Is this already covered by E2E login test?",
"effort": "S"
}
]
}
Version: 3.0.0 Last Updated: 2025-12-23