agentic-qe 1.9.4 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/agents/qe-api-contract-validator.md +95 -1336
- package/.claude/agents/qe-chaos-engineer.md +152 -1211
- package/.claude/agents/qe-code-complexity.md +144 -707
- package/.claude/agents/qe-coverage-analyzer.md +147 -743
- package/.claude/agents/qe-deployment-readiness.md +143 -1496
- package/.claude/agents/qe-flaky-test-hunter.md +132 -1529
- package/.claude/agents/qe-fleet-commander.md +12 -12
- package/.claude/agents/qe-performance-tester.md +150 -886
- package/.claude/agents/qe-production-intelligence.md +155 -1396
- package/.claude/agents/qe-quality-analyzer.md +6 -6
- package/.claude/agents/qe-quality-gate.md +151 -648
- package/.claude/agents/qe-regression-risk-analyzer.md +132 -1150
- package/.claude/agents/qe-requirements-validator.md +149 -932
- package/.claude/agents/qe-security-scanner.md +157 -797
- package/.claude/agents/qe-test-data-architect.md +96 -1365
- package/.claude/agents/qe-test-executor.md +8 -8
- package/.claude/agents/qe-test-generator.md +145 -1540
- package/.claude/agents/qe-visual-tester.md +153 -1257
- package/.claude/agents/qx-partner.md +248 -0
- package/.claude/agents/subagents/qe-code-reviewer.md +40 -136
- package/.claude/agents/subagents/qe-coverage-gap-analyzer.md +40 -480
- package/.claude/agents/subagents/qe-data-generator.md +41 -125
- package/.claude/agents/subagents/qe-flaky-investigator.md +55 -411
- package/.claude/agents/subagents/qe-integration-tester.md +53 -141
- package/.claude/agents/subagents/qe-performance-validator.md +54 -130
- package/.claude/agents/subagents/qe-security-auditor.md +56 -114
- package/.claude/agents/subagents/qe-test-data-architect-sub.md +57 -548
- package/.claude/agents/subagents/qe-test-implementer.md +58 -551
- package/.claude/agents/subagents/qe-test-refactorer.md +65 -722
- package/.claude/agents/subagents/qe-test-writer.md +63 -726
- package/.claude/skills/accessibility-testing/SKILL.md +144 -692
- package/.claude/skills/agentic-quality-engineering/SKILL.md +176 -529
- package/.claude/skills/api-testing-patterns/SKILL.md +180 -560
- package/.claude/skills/brutal-honesty-review/SKILL.md +113 -603
- package/.claude/skills/bug-reporting-excellence/SKILL.md +116 -517
- package/.claude/skills/chaos-engineering-resilience/SKILL.md +127 -72
- package/.claude/skills/cicd-pipeline-qe-orchestrator/SKILL.md +209 -404
- package/.claude/skills/code-review-quality/SKILL.md +158 -608
- package/.claude/skills/compatibility-testing/SKILL.md +148 -38
- package/.claude/skills/compliance-testing/SKILL.md +132 -63
- package/.claude/skills/consultancy-practices/SKILL.md +114 -446
- package/.claude/skills/context-driven-testing/SKILL.md +117 -381
- package/.claude/skills/contract-testing/SKILL.md +176 -141
- package/.claude/skills/database-testing/SKILL.md +137 -130
- package/.claude/skills/exploratory-testing-advanced/SKILL.md +160 -629
- package/.claude/skills/holistic-testing-pact/SKILL.md +140 -188
- package/.claude/skills/localization-testing/SKILL.md +145 -33
- package/.claude/skills/mobile-testing/SKILL.md +132 -448
- package/.claude/skills/mutation-testing/SKILL.md +147 -41
- package/.claude/skills/performance-testing/SKILL.md +200 -546
- package/.claude/skills/quality-metrics/SKILL.md +164 -519
- package/.claude/skills/refactoring-patterns/SKILL.md +132 -699
- package/.claude/skills/regression-testing/SKILL.md +120 -926
- package/.claude/skills/risk-based-testing/SKILL.md +157 -660
- package/.claude/skills/security-testing/SKILL.md +199 -538
- package/.claude/skills/sherlock-review/SKILL.md +163 -699
- package/.claude/skills/shift-left-testing/SKILL.md +161 -465
- package/.claude/skills/shift-right-testing/SKILL.md +161 -519
- package/.claude/skills/six-thinking-hats/SKILL.md +175 -1110
- package/.claude/skills/skills-manifest.json +683 -0
- package/.claude/skills/tdd-london-chicago/SKILL.md +131 -448
- package/.claude/skills/technical-writing/SKILL.md +103 -154
- package/.claude/skills/test-automation-strategy/SKILL.md +166 -772
- package/.claude/skills/test-data-management/SKILL.md +126 -910
- package/.claude/skills/test-design-techniques/SKILL.md +179 -89
- package/.claude/skills/test-environment-management/SKILL.md +136 -91
- package/.claude/skills/test-reporting-analytics/SKILL.md +169 -92
- package/.claude/skills/testability-scoring/README.md +71 -0
- package/.claude/skills/testability-scoring/SKILL.md +245 -0
- package/.claude/skills/testability-scoring/resources/templates/config.template.js +84 -0
- package/.claude/skills/testability-scoring/resources/templates/testability-scoring.spec.template.js +532 -0
- package/.claude/skills/testability-scoring/scripts/generate-html-report.js +1007 -0
- package/.claude/skills/testability-scoring/scripts/run-assessment.sh +70 -0
- package/.claude/skills/visual-testing-advanced/SKILL.md +155 -78
- package/.claude/skills/xp-practices/SKILL.md +151 -587
- package/CHANGELOG.md +110 -0
- package/README.md +55 -21
- package/dist/agents/QXPartnerAgent.d.ts +146 -0
- package/dist/agents/QXPartnerAgent.d.ts.map +1 -0
- package/dist/agents/QXPartnerAgent.js +1831 -0
- package/dist/agents/QXPartnerAgent.js.map +1 -0
- package/dist/agents/index.d.ts +1 -0
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +82 -2
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/lifecycle/AgentLifecycleManager.d.ts.map +1 -1
- package/dist/agents/lifecycle/AgentLifecycleManager.js +34 -31
- package/dist/agents/lifecycle/AgentLifecycleManager.js.map +1 -1
- package/dist/cli/commands/debug/agent.d.ts.map +1 -1
- package/dist/cli/commands/debug/agent.js +19 -6
- package/dist/cli/commands/debug/agent.js.map +1 -1
- package/dist/cli/commands/debug/health-check.js +20 -7
- package/dist/cli/commands/debug/health-check.js.map +1 -1
- package/dist/cli/commands/init-claude-md-template.d.ts +1 -0
- package/dist/cli/commands/init-claude-md-template.d.ts.map +1 -1
- package/dist/cli/commands/init-claude-md-template.js +18 -3
- package/dist/cli/commands/init-claude-md-template.js.map +1 -1
- package/dist/cli/commands/workflow/cancel.d.ts.map +1 -1
- package/dist/cli/commands/workflow/cancel.js +4 -3
- package/dist/cli/commands/workflow/cancel.js.map +1 -1
- package/dist/cli/commands/workflow/list.d.ts.map +1 -1
- package/dist/cli/commands/workflow/list.js +4 -3
- package/dist/cli/commands/workflow/list.js.map +1 -1
- package/dist/cli/commands/workflow/pause.d.ts.map +1 -1
- package/dist/cli/commands/workflow/pause.js +4 -3
- package/dist/cli/commands/workflow/pause.js.map +1 -1
- package/dist/cli/init/claude-config.d.ts.map +1 -1
- package/dist/cli/init/claude-config.js +3 -8
- package/dist/cli/init/claude-config.js.map +1 -1
- package/dist/cli/init/claude-md.d.ts.map +1 -1
- package/dist/cli/init/claude-md.js +44 -2
- package/dist/cli/init/claude-md.js.map +1 -1
- package/dist/cli/init/database-init.js +1 -1
- package/dist/cli/init/index.d.ts.map +1 -1
- package/dist/cli/init/index.js +13 -6
- package/dist/cli/init/index.js.map +1 -1
- package/dist/cli/init/skills.d.ts.map +1 -1
- package/dist/cli/init/skills.js +2 -1
- package/dist/cli/init/skills.js.map +1 -1
- package/dist/core/SwarmCoordinator.d.ts +180 -0
- package/dist/core/SwarmCoordinator.d.ts.map +1 -0
- package/dist/core/SwarmCoordinator.js +473 -0
- package/dist/core/SwarmCoordinator.js.map +1 -0
- package/dist/core/memory/AgentDBIntegration.d.ts +24 -6
- package/dist/core/memory/AgentDBIntegration.d.ts.map +1 -1
- package/dist/core/memory/AgentDBIntegration.js +66 -10
- package/dist/core/memory/AgentDBIntegration.js.map +1 -1
- package/dist/core/memory/UnifiedMemoryCoordinator.d.ts +341 -0
- package/dist/core/memory/UnifiedMemoryCoordinator.d.ts.map +1 -0
- package/dist/core/memory/UnifiedMemoryCoordinator.js +986 -0
- package/dist/core/memory/UnifiedMemoryCoordinator.js.map +1 -0
- package/dist/core/memory/index.d.ts +5 -0
- package/dist/core/memory/index.d.ts.map +1 -1
- package/dist/core/memory/index.js +23 -1
- package/dist/core/memory/index.js.map +1 -1
- package/dist/core/metrics/MetricsAggregator.d.ts +228 -0
- package/dist/core/metrics/MetricsAggregator.d.ts.map +1 -0
- package/dist/core/metrics/MetricsAggregator.js +482 -0
- package/dist/core/metrics/MetricsAggregator.js.map +1 -0
- package/dist/core/metrics/index.d.ts +5 -0
- package/dist/core/metrics/index.d.ts.map +1 -0
- package/dist/core/metrics/index.js +11 -0
- package/dist/core/metrics/index.js.map +1 -0
- package/dist/core/optimization/SwarmOptimizer.d.ts +190 -0
- package/dist/core/optimization/SwarmOptimizer.d.ts.map +1 -0
- package/dist/core/optimization/SwarmOptimizer.js +648 -0
- package/dist/core/optimization/SwarmOptimizer.js.map +1 -0
- package/dist/core/optimization/index.d.ts +9 -0
- package/dist/core/optimization/index.d.ts.map +1 -0
- package/dist/core/optimization/index.js +25 -0
- package/dist/core/optimization/index.js.map +1 -0
- package/dist/core/optimization/types.d.ts +53 -0
- package/dist/core/optimization/types.d.ts.map +1 -0
- package/dist/core/optimization/types.js +6 -0
- package/dist/core/optimization/types.js.map +1 -0
- package/dist/core/orchestration/AdaptiveScheduler.d.ts +190 -0
- package/dist/core/orchestration/AdaptiveScheduler.d.ts.map +1 -0
- package/dist/core/orchestration/AdaptiveScheduler.js +460 -0
- package/dist/core/orchestration/AdaptiveScheduler.js.map +1 -0
- package/dist/core/orchestration/PriorityQueue.d.ts +54 -0
- package/dist/core/orchestration/PriorityQueue.d.ts.map +1 -0
- package/dist/core/orchestration/PriorityQueue.js +122 -0
- package/dist/core/orchestration/PriorityQueue.js.map +1 -0
- package/dist/core/orchestration/WorkflowOrchestrator.d.ts +189 -0
- package/dist/core/orchestration/WorkflowOrchestrator.d.ts.map +1 -0
- package/dist/core/orchestration/WorkflowOrchestrator.js +845 -0
- package/dist/core/orchestration/WorkflowOrchestrator.js.map +1 -0
- package/dist/core/orchestration/index.d.ts +7 -0
- package/dist/core/orchestration/index.d.ts.map +1 -0
- package/dist/core/orchestration/index.js +11 -0
- package/dist/core/orchestration/index.js.map +1 -0
- package/dist/core/orchestration/types.d.ts +96 -0
- package/dist/core/orchestration/types.d.ts.map +1 -0
- package/dist/core/orchestration/types.js +6 -0
- package/dist/core/orchestration/types.js.map +1 -0
- package/dist/core/recovery/CircuitBreaker.d.ts +176 -0
- package/dist/core/recovery/CircuitBreaker.d.ts.map +1 -0
- package/dist/core/recovery/CircuitBreaker.js +382 -0
- package/dist/core/recovery/CircuitBreaker.js.map +1 -0
- package/dist/core/recovery/RecoveryOrchestrator.d.ts +186 -0
- package/dist/core/recovery/RecoveryOrchestrator.d.ts.map +1 -0
- package/dist/core/recovery/RecoveryOrchestrator.js +476 -0
- package/dist/core/recovery/RecoveryOrchestrator.js.map +1 -0
- package/dist/core/recovery/RetryStrategy.d.ts +127 -0
- package/dist/core/recovery/RetryStrategy.d.ts.map +1 -0
- package/dist/core/recovery/RetryStrategy.js +314 -0
- package/dist/core/recovery/RetryStrategy.js.map +1 -0
- package/dist/core/recovery/index.d.ts +8 -0
- package/dist/core/recovery/index.d.ts.map +1 -0
- package/dist/core/recovery/index.js +27 -0
- package/dist/core/recovery/index.js.map +1 -0
- package/dist/core/skills/DependencyResolver.d.ts +99 -0
- package/dist/core/skills/DependencyResolver.d.ts.map +1 -0
- package/dist/core/skills/DependencyResolver.js +260 -0
- package/dist/core/skills/DependencyResolver.js.map +1 -0
- package/dist/core/skills/DynamicSkillLoader.d.ts +96 -0
- package/dist/core/skills/DynamicSkillLoader.d.ts.map +1 -0
- package/dist/core/skills/DynamicSkillLoader.js +353 -0
- package/dist/core/skills/DynamicSkillLoader.js.map +1 -0
- package/dist/core/skills/ManifestGenerator.d.ts +114 -0
- package/dist/core/skills/ManifestGenerator.d.ts.map +1 -0
- package/dist/core/skills/ManifestGenerator.js +449 -0
- package/dist/core/skills/ManifestGenerator.js.map +1 -0
- package/dist/core/skills/index.d.ts +9 -0
- package/dist/core/skills/index.d.ts.map +1 -0
- package/dist/core/skills/index.js +24 -0
- package/dist/core/skills/index.js.map +1 -0
- package/dist/core/skills/types.d.ts +118 -0
- package/dist/core/skills/types.d.ts.map +1 -0
- package/dist/core/skills/types.js +7 -0
- package/dist/core/skills/types.js.map +1 -0
- package/dist/core/transport/QUICTransport.d.ts +320 -0
- package/dist/core/transport/QUICTransport.d.ts.map +1 -0
- package/dist/core/transport/QUICTransport.js +711 -0
- package/dist/core/transport/QUICTransport.js.map +1 -0
- package/dist/core/transport/index.d.ts +40 -0
- package/dist/core/transport/index.d.ts.map +1 -0
- package/dist/core/transport/index.js +46 -0
- package/dist/core/transport/index.js.map +1 -0
- package/dist/core/transport/quic-loader.d.ts +123 -0
- package/dist/core/transport/quic-loader.d.ts.map +1 -0
- package/dist/core/transport/quic-loader.js +293 -0
- package/dist/core/transport/quic-loader.js.map +1 -0
- package/dist/core/transport/quic.d.ts +154 -0
- package/dist/core/transport/quic.d.ts.map +1 -0
- package/dist/core/transport/quic.js +214 -0
- package/dist/core/transport/quic.js.map +1 -0
- package/dist/mcp/server.d.ts +9 -9
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +1 -2
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
- package/dist/mcp/services/AgentRegistry.js +4 -1
- package/dist/mcp/services/AgentRegistry.js.map +1 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/qx.d.ts +429 -0
- package/dist/types/qx.d.ts.map +1 -0
- package/dist/types/qx.js +71 -0
- package/dist/types/qx.js.map +1 -0
- package/dist/visualization/api/RestEndpoints.js +2 -2
- package/dist/visualization/api/RestEndpoints.js.map +1 -1
- package/dist/visualization/api/WebSocketServer.d.ts +44 -0
- package/dist/visualization/api/WebSocketServer.d.ts.map +1 -1
- package/dist/visualization/api/WebSocketServer.js +144 -23
- package/dist/visualization/api/WebSocketServer.js.map +1 -1
- package/dist/visualization/core/DataTransformer.d.ts +10 -0
- package/dist/visualization/core/DataTransformer.d.ts.map +1 -1
- package/dist/visualization/core/DataTransformer.js +60 -5
- package/dist/visualization/core/DataTransformer.js.map +1 -1
- package/dist/visualization/emit-event.d.ts +75 -0
- package/dist/visualization/emit-event.d.ts.map +1 -0
- package/dist/visualization/emit-event.js +213 -0
- package/dist/visualization/emit-event.js.map +1 -0
- package/dist/visualization/index.d.ts +1 -0
- package/dist/visualization/index.d.ts.map +1 -1
- package/dist/visualization/index.js +7 -1
- package/dist/visualization/index.js.map +1 -1
- package/docs/reference/skills.md +63 -1
- package/package.json +16 -58
|
@@ -1,137 +1,214 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: test-reporting-analytics
|
|
3
|
-
description: Advanced test reporting, quality dashboards, predictive analytics, trend analysis, and executive reporting for QE metrics. Use when communicating quality status, tracking trends, or making data-driven decisions.
|
|
3
|
+
description: "Advanced test reporting, quality dashboards, predictive analytics, trend analysis, and executive reporting for QE metrics. Use when communicating quality status, tracking trends, or making data-driven decisions."
|
|
4
|
+
category: analytics
|
|
5
|
+
priority: high
|
|
6
|
+
tokenEstimate: 850
|
|
7
|
+
agents: [qe-quality-analyzer, qe-quality-gate, qe-deployment-readiness]
|
|
8
|
+
implementation_status: optimized
|
|
9
|
+
optimization_version: 1.0
|
|
10
|
+
last_optimized: 2025-12-03
|
|
11
|
+
dependencies: []
|
|
12
|
+
quick_reference_card: true
|
|
13
|
+
tags: [reporting, analytics, dashboards, metrics, trends, predictive]
|
|
4
14
|
---
|
|
5
15
|
|
|
6
16
|
# Test Reporting & Analytics
|
|
7
17
|
|
|
8
|
-
|
|
18
|
+
<default_to_action>
|
|
19
|
+
When building test reports:
|
|
20
|
+
1. DEFINE audience (dev team vs executives)
|
|
21
|
+
2. CHOOSE key metrics (max 5-7)
|
|
22
|
+
3. SHOW trends (not just snapshots)
|
|
23
|
+
4. HIGHLIGHT actions (what to do about it)
|
|
24
|
+
5. AUTOMATE generation
|
|
9
25
|
|
|
10
|
-
**
|
|
26
|
+
**Dashboard Quick Setup:**
|
|
27
|
+
```
|
|
28
|
+
+------------------+------------------+------------------+
|
|
29
|
+
| Tests Passed | Code Coverage | Flaky Tests |
|
|
30
|
+
| 1,247/1,250 ✅ | 82.3% ⬆️ +2.1% | 1.2% ⬇️ -0.3% |
|
|
31
|
+
+------------------+------------------+------------------+
|
|
32
|
+
| Critical Bugs | Deploy Freq | MTTR |
|
|
33
|
+
| 0 open ✅ | 12x/day ⬆️ | 2.3h ⬇️ |
|
|
34
|
+
+------------------+------------------+------------------+
|
|
35
|
+
```
|
|
11
36
|
|
|
12
|
-
|
|
37
|
+
**Key Metrics by Audience:**
|
|
38
|
+
- **Dev Team**: Pass rate, flaky %, execution time, coverage gaps
|
|
39
|
+
- **QE Team**: Defect detection rate, test velocity, automation ROI
|
|
40
|
+
- **Leadership**: Escaped defects, deployment frequency, quality cost
|
|
41
|
+
</default_to_action>
|
|
13
42
|
|
|
14
|
-
##
|
|
43
|
+
## Quick Reference Card
|
|
15
44
|
|
|
16
|
-
###
|
|
17
|
-
- Pass/Fail rate
|
|
18
|
-
- Flaky test percentage
|
|
19
|
-
- Execution time (total, per test)
|
|
20
|
-
- Test coverage (code, requirements)
|
|
45
|
+
### Essential Metrics
|
|
21
46
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
47
|
+
| Category | Metric | Target |
|
|
48
|
+
|----------|--------|--------|
|
|
49
|
+
| **Execution** | Pass Rate | >98% |
|
|
50
|
+
| **Execution** | Flaky Test % | <2% |
|
|
51
|
+
| **Execution** | Suite Duration | <10 min |
|
|
52
|
+
| **Coverage** | Line Coverage | >80% |
|
|
53
|
+
| **Coverage** | Branch Coverage | >70% |
|
|
54
|
+
| **Quality** | Escaped Defects | <5/release |
|
|
55
|
+
| **Quality** | MTTR | <4 hours |
|
|
56
|
+
| **Efficiency** | Automation Rate | >90% |
|
|
28
57
|
|
|
29
|
-
###
|
|
30
|
-
- Automation rate
|
|
31
|
-
- Test maintenance cost
|
|
32
|
-
- ROI of automation
|
|
33
|
-
- Velocity (features tested/sprint)
|
|
58
|
+
### Trend Indicators
|
|
34
59
|
|
|
35
|
-
|
|
60
|
+
| Symbol | Meaning | Action |
|
|
61
|
+
|--------|---------|--------|
|
|
62
|
+
| ⬆️ | Improving | Continue current approach |
|
|
63
|
+
| ⬇️ | Declining | Investigate root cause |
|
|
64
|
+
| ➡️ | Stable | Maintain or improve |
|
|
65
|
+
| ⚠️ | Threshold breach | Immediate attention |
|
|
36
66
|
|
|
37
|
-
|
|
38
|
-
```
|
|
39
|
-
+------------------+------------------+------------------+
|
|
40
|
-
| Tests Passed | Code Coverage | Flaky Tests |
|
|
41
|
-
| 1,247 / 1,250 | 82.3% | 1.2% |
|
|
42
|
-
| 99.76% ✅ | ⬆️ +2.1% | ⬇️ -0.3% |
|
|
43
|
-
+------------------+------------------+------------------+
|
|
67
|
+
---
|
|
44
68
|
|
|
45
|
-
|
|
46
|
-
| Critical Bugs | Test Velocity | Deploy Freq |
|
|
47
|
-
| 0 open | 47 tests/sprint | 12x/day |
|
|
48
|
-
| ✅ | ⬆️ +5 | ⬆️ +2x |
|
|
49
|
-
+------------------+------------------+------------------+
|
|
69
|
+
## Report Types
|
|
50
70
|
|
|
51
|
-
|
|
52
|
-
|
|
71
|
+
### Real-Time Dashboard
|
|
72
|
+
```
|
|
73
|
+
Live quality status for CI/CD
|
|
74
|
+
- Build status (green/red)
|
|
75
|
+
- Test results (pass/fail counts)
|
|
76
|
+
- Coverage delta
|
|
77
|
+
- Flaky test alerts
|
|
53
78
|
```
|
|
54
79
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
80
|
+
### Sprint Summary
|
|
81
|
+
```markdown
|
|
82
|
+
## Sprint 47 Quality Summary
|
|
83
|
+
|
|
84
|
+
### Metrics
|
|
85
|
+
| Metric | Value | Trend |
|
|
86
|
+
|--------|-------|-------|
|
|
87
|
+
| Tests Added | +47 | ⬆️ |
|
|
88
|
+
| Coverage | 82.3% | ⬆️ +2.1% |
|
|
89
|
+
| Bugs Found | 12 | ➡️ |
|
|
90
|
+
| Escaped | 0 | ✅ |
|
|
91
|
+
|
|
92
|
+
### Highlights
|
|
93
|
+
- ✅ Zero escaped defects
|
|
94
|
+
- ⚠️ E2E suite now 45min (target: 30min)
|
|
95
|
+
|
|
96
|
+
### Actions
|
|
97
|
+
1. Optimize slow E2E tests
|
|
98
|
+
2. Add coverage for payment module
|
|
99
|
+
```
|
|
60
100
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
}
|
|
101
|
+
### Executive Report
|
|
102
|
+
```markdown
|
|
103
|
+
## Monthly Quality Report - Oct 2025
|
|
65
104
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
105
|
+
### Executive Summary
|
|
106
|
+
✅ Production uptime: 99.97% (target: 99.95%)
|
|
107
|
+
✅ Deploy frequency: 12x/day (up from 8x)
|
|
108
|
+
⚠️ Coverage: 82.3% (target: 85%)
|
|
109
|
+
|
|
110
|
+
### Business Impact
|
|
111
|
+
- Automation saves 120 hrs/month
|
|
112
|
+
- Bug cost: $150/bug found vs $5,000 escaped
|
|
113
|
+
- Estimated annual savings: $450K
|
|
114
|
+
|
|
115
|
+
### Recommendations
|
|
116
|
+
1. Invest in performance testing tooling
|
|
117
|
+
2. Hire senior QE for mobile coverage
|
|
70
118
|
```
|
|
71
119
|
|
|
120
|
+
---
|
|
121
|
+
|
|
72
122
|
## Predictive Analytics
|
|
73
123
|
|
|
74
124
|
```typescript
|
|
75
125
|
// Predict test failures
|
|
76
|
-
const prediction = await
|
|
77
|
-
historicalData: testResults,
|
|
126
|
+
const prediction = await Task("Predict Failures", {
|
|
78
127
|
codeChanges: prDiff,
|
|
79
|
-
|
|
80
|
-
|
|
128
|
+
historicalData: last90Days,
|
|
129
|
+
model: 'gradient-boosting'
|
|
130
|
+
}, "qe-quality-analyzer");
|
|
81
131
|
|
|
82
132
|
// Returns:
|
|
83
133
|
// {
|
|
84
|
-
//
|
|
85
|
-
// likelyFailingTests: ['payment.test.ts'
|
|
86
|
-
// suggestedAction: 'Review payment module
|
|
134
|
+
// failureProbability: 0.73,
|
|
135
|
+
// likelyFailingTests: ['payment.test.ts'],
|
|
136
|
+
// suggestedAction: 'Review payment module carefully',
|
|
87
137
|
// confidence: 0.89
|
|
88
138
|
// }
|
|
139
|
+
|
|
140
|
+
// Trend analysis with anomaly detection
|
|
141
|
+
const trends = await Task("Analyze Trends", {
|
|
142
|
+
metrics: ['passRate', 'coverage', 'flakyRate'],
|
|
143
|
+
period: '30d',
|
|
144
|
+
detectAnomalies: true
|
|
145
|
+
}, "qe-quality-analyzer");
|
|
89
146
|
```
|
|
90
147
|
|
|
91
|
-
|
|
148
|
+
---
|
|
92
149
|
|
|
93
|
-
|
|
94
|
-
```markdown
|
|
95
|
-
## Quality Report - October 2025
|
|
150
|
+
## Agent Integration
|
|
96
151
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
### ROI
|
|
113
|
-
- Automation saves 120 hours/month
|
|
114
|
-
- Bug detection cost: $150/bug vs $5,000 in production
|
|
115
|
-
- Estimated annual savings: $450k
|
|
152
|
+
```typescript
|
|
153
|
+
// Generate comprehensive quality report
|
|
154
|
+
const report = await Task("Generate Quality Report", {
|
|
155
|
+
period: 'sprint',
|
|
156
|
+
audience: 'executive',
|
|
157
|
+
includeROI: true,
|
|
158
|
+
includeTrends: true
|
|
159
|
+
}, "qe-quality-analyzer");
|
|
160
|
+
|
|
161
|
+
// Real-time quality gate check
|
|
162
|
+
const gateResult = await Task("Quality Gate Check", {
|
|
163
|
+
metrics: currentMetrics,
|
|
164
|
+
thresholds: qualityPolicy,
|
|
165
|
+
environment: 'production'
|
|
166
|
+
}, "qe-quality-gate");
|
|
116
167
|
```
|
|
117
168
|
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Agent Coordination Hints
|
|
172
|
+
|
|
173
|
+
### Memory Namespace
|
|
174
|
+
```
|
|
175
|
+
aqe/reporting/
|
|
176
|
+
├── dashboards/* - Dashboard configurations
|
|
177
|
+
├── reports/* - Generated reports
|
|
178
|
+
├── trends/* - Trend analysis data
|
|
179
|
+
└── predictions/* - Predictive model outputs
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Fleet Coordination
|
|
183
|
+
```typescript
|
|
184
|
+
const reportingFleet = await FleetManager.coordinate({
|
|
185
|
+
strategy: 'quality-reporting',
|
|
186
|
+
agents: [
|
|
187
|
+
'qe-quality-analyzer', // Metrics aggregation
|
|
188
|
+
'qe-quality-gate', // Threshold validation
|
|
189
|
+
'qe-deployment-readiness' // Release readiness
|
|
190
|
+
],
|
|
191
|
+
topology: 'parallel'
|
|
192
|
+
});
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
118
197
|
## Related Skills
|
|
198
|
+
- [quality-metrics](../quality-metrics/) - Metric definitions
|
|
199
|
+
- [shift-right-testing](../shift-right-testing/) - Production metrics
|
|
200
|
+
- [consultancy-practices](../consultancy-practices/) - Client reporting
|
|
119
201
|
|
|
120
|
-
|
|
121
|
-
- [agentic-quality-engineering](../agentic-quality-engineering/)
|
|
122
|
-
- [continuous-testing-shift-left](../continuous-testing-shift-left/)
|
|
202
|
+
---
|
|
123
203
|
|
|
124
204
|
## Remember
|
|
125
205
|
|
|
126
|
-
**
|
|
127
|
-
|
|
128
|
-
Report:
|
|
129
|
-
- Test results (pass/fail trends)
|
|
130
|
-
- Code coverage (gaps and trends)
|
|
131
|
-
- Flaky test rate (reliability)
|
|
132
|
-
- Defect metrics (escaped bugs)
|
|
133
|
-
- ROI of testing (business value)
|
|
206
|
+
**Measure to improve. Report to communicate.**
|
|
134
207
|
|
|
135
|
-
|
|
208
|
+
Good reports:
|
|
209
|
+
- Answer "so what?" (actionable insights)
|
|
210
|
+
- Show trends (not just snapshots)
|
|
211
|
+
- Match audience needs
|
|
212
|
+
- Automate where possible
|
|
136
213
|
|
|
137
|
-
**
|
|
214
|
+
**Data without action is noise. Action without data is guessing.**
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Testability Scoring Skill
|
|
2
|
+
|
|
3
|
+
Quick reference for AI-powered testability assessment using 10 principles of intrinsic testability.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# Run assessment
|
|
9
|
+
.claude/skills/testability-scoring/scripts/run-assessment.sh https://example.com/
|
|
10
|
+
|
|
11
|
+
# Generate HTML report from JSON
|
|
12
|
+
AUTO_OPEN=false node .claude/skills/testability-scoring/scripts/generate-html-report.js tests/reports/testability-results-*.json
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## 10 Principles
|
|
16
|
+
|
|
17
|
+
1. **Observability** (15%) - Can we see what's happening?
|
|
18
|
+
2. **Controllability** (15%) - Can we control the application?
|
|
19
|
+
3. **Algorithmic Simplicity** (10%) - Are behaviors simple?
|
|
20
|
+
4. **Algorithmic Transparency** (10%) - Can we understand it?
|
|
21
|
+
5. **Algorithmic Stability** (10%) - Does it stay consistent?
|
|
22
|
+
6. **Explainability** (10%) - Is the interface clear?
|
|
23
|
+
7. **Unbugginess** (10%) - How error-free is it?
|
|
24
|
+
8. **Smallness** (10%) - Are components appropriate size?
|
|
25
|
+
9. **Decomposability** (5%) - Can we test parts separately?
|
|
26
|
+
10. **Similarity** (5%) - How familiar is the tech?
|
|
27
|
+
|
|
28
|
+
## Scoring
|
|
29
|
+
|
|
30
|
+
- **90-100 (A)**: Excellent
|
|
31
|
+
- **80-89 (B)**: Good
|
|
32
|
+
- **70-79 (C)**: Adequate
|
|
33
|
+
- **60-69 (D)**: Below average
|
|
34
|
+
- **0-59 (F)**: Poor
|
|
35
|
+
|
|
36
|
+
## Files
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
.claude/skills/testability-scoring/
|
|
40
|
+
├── SKILL.md # Complete documentation
|
|
41
|
+
├── scripts/
|
|
42
|
+
│ ├── run-assessment.sh # Main runner
|
|
43
|
+
│ └── generate-html-report.js # Report generator
|
|
44
|
+
└── resources/templates/ # Templates
|
|
45
|
+
|
|
46
|
+
tests/testability-scoring/
|
|
47
|
+
├── testability-scoring.spec.js # Test implementation
|
|
48
|
+
└── config.js # Configuration
|
|
49
|
+
|
|
50
|
+
tests/reports/
|
|
51
|
+
├── testability-results-*.json # Results
|
|
52
|
+
└── testability-report-*.html # Reports
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Common Commands
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# Disable auto-open
|
|
59
|
+
AUTO_OPEN=false ./scripts/run-assessment.sh https://example.com/
|
|
60
|
+
|
|
61
|
+
# With timeout
|
|
62
|
+
timeout 180 ./scripts/run-assessment.sh https://example.com/
|
|
63
|
+
|
|
64
|
+
# Specific browser
|
|
65
|
+
./scripts/run-assessment.sh https://example.com/ firefox
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Credits
|
|
69
|
+
|
|
70
|
+
Based on James Bach and Michael Bolton's *Heuristics for Software Testability*
|
|
71
|
+
Implementation: https://github.com/fndlalit/testability-scorer
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: testability-scoring
|
|
3
|
+
description: "AI-powered testability assessment using 10 principles of intrinsic testability with Playwright. Evaluates web applications against Observability, Controllability, Algorithmic Simplicity, Transparency, Stability, Explainability, Unbugginess, Smallness, Decomposability, and Similarity. Use when assessing software testability, evaluating test readiness, identifying testability improvements, or generating testability reports."
|
|
4
|
+
category: testing-methodologies
|
|
5
|
+
priority: high
|
|
6
|
+
tokenEstimate: 1100
|
|
7
|
+
agents: [qe-quality-analyzer, qx-partner, qe-visual-tester]
|
|
8
|
+
implementation_status: optimized
|
|
9
|
+
optimization_version: 2.1
|
|
10
|
+
last_optimized: 2025-12-03
|
|
11
|
+
dependencies: []
|
|
12
|
+
quick_reference_card: true
|
|
13
|
+
tags: [testability, scoring, playwright, assessment, 10-principles, intrinsic-testability, james-bach, michael-bolton]
|
|
14
|
+
contributor: "@fndlalit"
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Testability Scoring
|
|
18
|
+
|
|
19
|
+
<default_to_action>
|
|
20
|
+
When assessing testability:
|
|
21
|
+
1. RUN assessment against target URL
|
|
22
|
+
2. ANALYZE all 10 principles automatically
|
|
23
|
+
3. GENERATE HTML report with radar chart
|
|
24
|
+
4. PRIORITIZE improvements by impact/effort
|
|
25
|
+
5. INTEGRATE with QX Partner for holistic view
|
|
26
|
+
|
|
27
|
+
**Quick Assessment:**
|
|
28
|
+
```bash
|
|
29
|
+
# Run assessment on any URL
|
|
30
|
+
TEST_URL='https://example.com/' npx playwright test tests/testability-scoring/testability-scoring.spec.js --project=chromium --workers=1
|
|
31
|
+
|
|
32
|
+
# Or use shell script wrapper
|
|
33
|
+
.claude/skills/testability-scoring/scripts/run-assessment.sh https://example.com/
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**The 10 Principles at a Glance:**
|
|
37
|
+
| Principle | Weight | Key Question |
|
|
38
|
+
|-----------|--------|--------------|
|
|
39
|
+
| **Observability** | 15% | Can we see what's happening? |
|
|
40
|
+
| **Controllability** | 15% | Can we control the application? |
|
|
41
|
+
| **Algorithmic Simplicity** | 10% | Are behaviors predictable? |
|
|
42
|
+
| **Algorithmic Transparency** | 10% | Can we understand what it does? |
|
|
43
|
+
| **Algorithmic Stability** | 10% | Does behavior remain consistent? |
|
|
44
|
+
| **Explainability** | 10% | Is the interface understandable? |
|
|
45
|
+
| **Unbugginess** | 10% | How error-free is it? |
|
|
46
|
+
| **Smallness** | 10% | Are components appropriately sized? |
|
|
47
|
+
| **Decomposability** | 5% | Can we test parts in isolation? |
|
|
48
|
+
| **Similarity** | 5% | Is the tech stack familiar? |
|
|
49
|
+
|
|
50
|
+
**Grade Scale:**
|
|
51
|
+
- **A (90-100)**: Excellent testability
|
|
52
|
+
- **B (80-89)**: Good testability
|
|
53
|
+
- **C (70-79)**: Adequate testability
|
|
54
|
+
- **D (60-69)**: Below average
|
|
55
|
+
- **F (0-59)**: Poor testability
|
|
56
|
+
</default_to_action>
|
|
57
|
+
|
|
58
|
+
## Quick Reference Card
|
|
59
|
+
|
|
60
|
+
### Running Assessments
|
|
61
|
+
|
|
62
|
+
| Method | Command | When to Use |
|
|
63
|
+
|--------|---------|-------------|
|
|
64
|
+
| Shell Script | `./scripts/run-assessment.sh URL` | One-time assessment |
|
|
65
|
+
| ENV Override | `TEST_URL='URL' npx playwright test...` | CI/CD integration |
|
|
66
|
+
| Config File | Update `tests/testability-scoring/config.js` | Repeated runs |
|
|
67
|
+
|
|
68
|
+
### Principle Details
|
|
69
|
+
|
|
70
|
+
#### High Weight (15% each)
|
|
71
|
+
| Principle | Measures | Indicators |
|
|
72
|
+
|-----------|----------|------------|
|
|
73
|
+
| **Observability** | State visibility, logging, monitoring | Console output, network tracking, error visibility |
|
|
74
|
+
| **Controllability** | Input control, state manipulation | API access, test data injection, determinism |
|
|
75
|
+
|
|
76
|
+
#### Medium Weight (10% each)
|
|
77
|
+
| Principle | Measures | Indicators |
|
|
78
|
+
|-----------|----------|------------|
|
|
79
|
+
| **Simplicity** | Predictable behavior | Clear I/O relationships, low complexity |
|
|
80
|
+
| **Transparency** | Understanding what system does | Visible processes, readable code |
|
|
81
|
+
| **Stability** | Consistent behavior | Change resilience, maintainability |
|
|
82
|
+
| **Explainability** | Interface understanding | Good docs, semantic structure, help text |
|
|
83
|
+
| **Unbugginess** | Error-free operation | Console errors, warnings, runtime issues |
|
|
84
|
+
| **Smallness** | Component size | Element count, script bloat, page complexity |
|
|
85
|
+
|
|
86
|
+
#### Low Weight (5% each)
|
|
87
|
+
| Principle | Measures | Indicators |
|
|
88
|
+
|-----------|----------|------------|
|
|
89
|
+
| **Decomposability** | Isolation testing | Component separation, modular design |
|
|
90
|
+
| **Similarity** | Technology familiarity | Standard frameworks, known patterns |
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Assessment Workflow
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
1. Navigate to URL → 2. Collect Metrics → 3. Score Principles
|
|
98
|
+
↓
|
|
99
|
+
4. Generate JSON ← 5. Calculate Grades ← 6. Apply Weights
|
|
100
|
+
↓
|
|
101
|
+
7. Generate HTML Report with Radar Chart
|
|
102
|
+
↓
|
|
103
|
+
8. Open in Browser (auto-opens)
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Output Files
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
tests/reports/
|
|
110
|
+
├── testability-results-<timestamp>.json # Raw data
|
|
111
|
+
├── testability-report-<timestamp>.html # Visual report
|
|
112
|
+
└── latest.json # Symlink
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Integration Examples
|
|
118
|
+
|
|
119
|
+
### CI/CD Integration
|
|
120
|
+
```yaml
|
|
121
|
+
# GitHub Actions
|
|
122
|
+
- name: Testability Assessment
|
|
123
|
+
run: |
|
|
124
|
+
timeout 180 .claude/skills/testability-scoring/scripts/run-assessment.sh ${{ env.APP_URL }}
|
|
125
|
+
|
|
126
|
+
- name: Upload Reports
|
|
127
|
+
uses: actions/upload-artifact@v3
|
|
128
|
+
with:
|
|
129
|
+
name: testability-reports
|
|
130
|
+
path: tests/reports/testability-*.html
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### QX Partner Integration
|
|
134
|
+
```typescript
|
|
135
|
+
// Combine testability with QX analysis
|
|
136
|
+
const qxAnalysis = await Task("QX Analysis", {
|
|
137
|
+
target: 'https://example.com',
|
|
138
|
+
integrateTestability: true
|
|
139
|
+
}, "qx-partner");
|
|
140
|
+
|
|
141
|
+
// Returns combined insights:
|
|
142
|
+
// - QX Score: 78/100
|
|
143
|
+
// - Testability Integration: Observability 72/100
|
|
144
|
+
// - Combined Insight: Low observability may mask UX issues
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Programmatic Usage
|
|
148
|
+
```typescript
|
|
149
|
+
import { runTestabilityAssessment } from './testability';
|
|
150
|
+
|
|
151
|
+
const results = await runTestabilityAssessment('https://example.com');
|
|
152
|
+
console.log(`Overall: ${results.overallScore}/100 (${results.grade})`);
|
|
153
|
+
console.log('Recommendations:', results.recommendations);
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## Agent Integration
|
|
159
|
+
|
|
160
|
+
```typescript
|
|
161
|
+
// Run testability assessment
|
|
162
|
+
const assessment = await Task("Testability Assessment", {
|
|
163
|
+
url: 'https://example.com',
|
|
164
|
+
generateReport: true,
|
|
165
|
+
openBrowser: true
|
|
166
|
+
}, "qe-quality-analyzer");
|
|
167
|
+
|
|
168
|
+
// Use with QX Partner for holistic analysis
|
|
169
|
+
const qxReport = await Task("Full QX Analysis", {
|
|
170
|
+
target: 'https://example.com',
|
|
171
|
+
integrateTestability: true,
|
|
172
|
+
detectOracleProblems: true
|
|
173
|
+
}, "qx-partner");
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## Agent Coordination Hints
|
|
179
|
+
|
|
180
|
+
### Memory Namespace
|
|
181
|
+
```
|
|
182
|
+
aqe/testability/
|
|
183
|
+
├── assessments/* - Assessment results by URL
|
|
184
|
+
├── historical/* - Historical scores for trend analysis
|
|
185
|
+
├── recommendations/* - Improvement recommendations
|
|
186
|
+
└── integration/* - QX integration data
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### Fleet Coordination
|
|
190
|
+
```typescript
|
|
191
|
+
const testabilityFleet = await FleetManager.coordinate({
|
|
192
|
+
strategy: 'testability-assessment',
|
|
193
|
+
agents: [
|
|
194
|
+
'qe-quality-analyzer', // Primary assessment
|
|
195
|
+
'qx-partner', // UX integration
|
|
196
|
+
'qe-visual-tester' // Visual validation
|
|
197
|
+
],
|
|
198
|
+
topology: 'sequential'
|
|
199
|
+
});
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## Common Issues & Solutions
|
|
205
|
+
|
|
206
|
+
| Issue | Solution |
|
|
207
|
+
|-------|----------|
|
|
208
|
+
| Tests timing out | Increase timeout: `timeout 300 ./scripts/run-assessment.sh URL` |
|
|
209
|
+
| Partial results | Check console errors, increase network timeout |
|
|
210
|
+
| Report not opening | Use `AUTO_OPEN=false`, open manually |
|
|
211
|
+
| Config not updating | Use `TEST_URL` env var instead |
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## Related Skills
|
|
216
|
+
- [accessibility-testing](../accessibility-testing/) - WCAG compliance (overlaps with Explainability)
|
|
217
|
+
- [visual-testing-advanced](../visual-testing-advanced/) - UI consistency
|
|
218
|
+
- [performance-testing](../performance-testing/) - Load time metrics
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## Credits & References
|
|
223
|
+
|
|
224
|
+
### Framework Origin
|
|
225
|
+
- **Heuristics for Software Testability** by James Bach and Michael Bolton
|
|
226
|
+
- Available at: https://www.satisfice.com/download/heuristics-of-software-testability
|
|
227
|
+
|
|
228
|
+
### Implementation
|
|
229
|
+
- Based on https://github.com/fndlalit/testability-scorer (contributed by [@fndlalit](https://github.com/fndlalit))
|
|
230
|
+
- Playwright v1.49.0+ with AI capabilities
|
|
231
|
+
- Chart.js for radar visualizations
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
## Remember
|
|
236
|
+
|
|
237
|
+
**Testability is an investment, not an afterthought.**
|
|
238
|
+
|
|
239
|
+
Good testability:
|
|
240
|
+
- Reduces debugging time
|
|
241
|
+
- Enables faster feedback loops
|
|
242
|
+
- Makes defects easier to find
|
|
243
|
+
- Supports continuous testing
|
|
244
|
+
|
|
245
|
+
**Low scores = High risk. Prioritize improvements by weight × impact.**
|