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.
Files changed (262) hide show
  1. package/.claude/agents/qe-api-contract-validator.md +95 -1336
  2. package/.claude/agents/qe-chaos-engineer.md +152 -1211
  3. package/.claude/agents/qe-code-complexity.md +144 -707
  4. package/.claude/agents/qe-coverage-analyzer.md +147 -743
  5. package/.claude/agents/qe-deployment-readiness.md +143 -1496
  6. package/.claude/agents/qe-flaky-test-hunter.md +132 -1529
  7. package/.claude/agents/qe-fleet-commander.md +12 -12
  8. package/.claude/agents/qe-performance-tester.md +150 -886
  9. package/.claude/agents/qe-production-intelligence.md +155 -1396
  10. package/.claude/agents/qe-quality-analyzer.md +6 -6
  11. package/.claude/agents/qe-quality-gate.md +151 -648
  12. package/.claude/agents/qe-regression-risk-analyzer.md +132 -1150
  13. package/.claude/agents/qe-requirements-validator.md +149 -932
  14. package/.claude/agents/qe-security-scanner.md +157 -797
  15. package/.claude/agents/qe-test-data-architect.md +96 -1365
  16. package/.claude/agents/qe-test-executor.md +8 -8
  17. package/.claude/agents/qe-test-generator.md +145 -1540
  18. package/.claude/agents/qe-visual-tester.md +153 -1257
  19. package/.claude/agents/qx-partner.md +248 -0
  20. package/.claude/agents/subagents/qe-code-reviewer.md +40 -136
  21. package/.claude/agents/subagents/qe-coverage-gap-analyzer.md +40 -480
  22. package/.claude/agents/subagents/qe-data-generator.md +41 -125
  23. package/.claude/agents/subagents/qe-flaky-investigator.md +55 -411
  24. package/.claude/agents/subagents/qe-integration-tester.md +53 -141
  25. package/.claude/agents/subagents/qe-performance-validator.md +54 -130
  26. package/.claude/agents/subagents/qe-security-auditor.md +56 -114
  27. package/.claude/agents/subagents/qe-test-data-architect-sub.md +57 -548
  28. package/.claude/agents/subagents/qe-test-implementer.md +58 -551
  29. package/.claude/agents/subagents/qe-test-refactorer.md +65 -722
  30. package/.claude/agents/subagents/qe-test-writer.md +63 -726
  31. package/.claude/skills/accessibility-testing/SKILL.md +144 -692
  32. package/.claude/skills/agentic-quality-engineering/SKILL.md +176 -529
  33. package/.claude/skills/api-testing-patterns/SKILL.md +180 -560
  34. package/.claude/skills/brutal-honesty-review/SKILL.md +113 -603
  35. package/.claude/skills/bug-reporting-excellence/SKILL.md +116 -517
  36. package/.claude/skills/chaos-engineering-resilience/SKILL.md +127 -72
  37. package/.claude/skills/cicd-pipeline-qe-orchestrator/SKILL.md +209 -404
  38. package/.claude/skills/code-review-quality/SKILL.md +158 -608
  39. package/.claude/skills/compatibility-testing/SKILL.md +148 -38
  40. package/.claude/skills/compliance-testing/SKILL.md +132 -63
  41. package/.claude/skills/consultancy-practices/SKILL.md +114 -446
  42. package/.claude/skills/context-driven-testing/SKILL.md +117 -381
  43. package/.claude/skills/contract-testing/SKILL.md +176 -141
  44. package/.claude/skills/database-testing/SKILL.md +137 -130
  45. package/.claude/skills/exploratory-testing-advanced/SKILL.md +160 -629
  46. package/.claude/skills/holistic-testing-pact/SKILL.md +140 -188
  47. package/.claude/skills/localization-testing/SKILL.md +145 -33
  48. package/.claude/skills/mobile-testing/SKILL.md +132 -448
  49. package/.claude/skills/mutation-testing/SKILL.md +147 -41
  50. package/.claude/skills/performance-testing/SKILL.md +200 -546
  51. package/.claude/skills/quality-metrics/SKILL.md +164 -519
  52. package/.claude/skills/refactoring-patterns/SKILL.md +132 -699
  53. package/.claude/skills/regression-testing/SKILL.md +120 -926
  54. package/.claude/skills/risk-based-testing/SKILL.md +157 -660
  55. package/.claude/skills/security-testing/SKILL.md +199 -538
  56. package/.claude/skills/sherlock-review/SKILL.md +163 -699
  57. package/.claude/skills/shift-left-testing/SKILL.md +161 -465
  58. package/.claude/skills/shift-right-testing/SKILL.md +161 -519
  59. package/.claude/skills/six-thinking-hats/SKILL.md +175 -1110
  60. package/.claude/skills/skills-manifest.json +683 -0
  61. package/.claude/skills/tdd-london-chicago/SKILL.md +131 -448
  62. package/.claude/skills/technical-writing/SKILL.md +103 -154
  63. package/.claude/skills/test-automation-strategy/SKILL.md +166 -772
  64. package/.claude/skills/test-data-management/SKILL.md +126 -910
  65. package/.claude/skills/test-design-techniques/SKILL.md +179 -89
  66. package/.claude/skills/test-environment-management/SKILL.md +136 -91
  67. package/.claude/skills/test-reporting-analytics/SKILL.md +169 -92
  68. package/.claude/skills/testability-scoring/README.md +71 -0
  69. package/.claude/skills/testability-scoring/SKILL.md +245 -0
  70. package/.claude/skills/testability-scoring/resources/templates/config.template.js +84 -0
  71. package/.claude/skills/testability-scoring/resources/templates/testability-scoring.spec.template.js +532 -0
  72. package/.claude/skills/testability-scoring/scripts/generate-html-report.js +1007 -0
  73. package/.claude/skills/testability-scoring/scripts/run-assessment.sh +70 -0
  74. package/.claude/skills/visual-testing-advanced/SKILL.md +155 -78
  75. package/.claude/skills/xp-practices/SKILL.md +151 -587
  76. package/CHANGELOG.md +110 -0
  77. package/README.md +55 -21
  78. package/dist/agents/QXPartnerAgent.d.ts +146 -0
  79. package/dist/agents/QXPartnerAgent.d.ts.map +1 -0
  80. package/dist/agents/QXPartnerAgent.js +1831 -0
  81. package/dist/agents/QXPartnerAgent.js.map +1 -0
  82. package/dist/agents/index.d.ts +1 -0
  83. package/dist/agents/index.d.ts.map +1 -1
  84. package/dist/agents/index.js +82 -2
  85. package/dist/agents/index.js.map +1 -1
  86. package/dist/agents/lifecycle/AgentLifecycleManager.d.ts.map +1 -1
  87. package/dist/agents/lifecycle/AgentLifecycleManager.js +34 -31
  88. package/dist/agents/lifecycle/AgentLifecycleManager.js.map +1 -1
  89. package/dist/cli/commands/debug/agent.d.ts.map +1 -1
  90. package/dist/cli/commands/debug/agent.js +19 -6
  91. package/dist/cli/commands/debug/agent.js.map +1 -1
  92. package/dist/cli/commands/debug/health-check.js +20 -7
  93. package/dist/cli/commands/debug/health-check.js.map +1 -1
  94. package/dist/cli/commands/init-claude-md-template.d.ts +1 -0
  95. package/dist/cli/commands/init-claude-md-template.d.ts.map +1 -1
  96. package/dist/cli/commands/init-claude-md-template.js +18 -3
  97. package/dist/cli/commands/init-claude-md-template.js.map +1 -1
  98. package/dist/cli/commands/workflow/cancel.d.ts.map +1 -1
  99. package/dist/cli/commands/workflow/cancel.js +4 -3
  100. package/dist/cli/commands/workflow/cancel.js.map +1 -1
  101. package/dist/cli/commands/workflow/list.d.ts.map +1 -1
  102. package/dist/cli/commands/workflow/list.js +4 -3
  103. package/dist/cli/commands/workflow/list.js.map +1 -1
  104. package/dist/cli/commands/workflow/pause.d.ts.map +1 -1
  105. package/dist/cli/commands/workflow/pause.js +4 -3
  106. package/dist/cli/commands/workflow/pause.js.map +1 -1
  107. package/dist/cli/init/claude-config.d.ts.map +1 -1
  108. package/dist/cli/init/claude-config.js +3 -8
  109. package/dist/cli/init/claude-config.js.map +1 -1
  110. package/dist/cli/init/claude-md.d.ts.map +1 -1
  111. package/dist/cli/init/claude-md.js +44 -2
  112. package/dist/cli/init/claude-md.js.map +1 -1
  113. package/dist/cli/init/database-init.js +1 -1
  114. package/dist/cli/init/index.d.ts.map +1 -1
  115. package/dist/cli/init/index.js +13 -6
  116. package/dist/cli/init/index.js.map +1 -1
  117. package/dist/cli/init/skills.d.ts.map +1 -1
  118. package/dist/cli/init/skills.js +2 -1
  119. package/dist/cli/init/skills.js.map +1 -1
  120. package/dist/core/SwarmCoordinator.d.ts +180 -0
  121. package/dist/core/SwarmCoordinator.d.ts.map +1 -0
  122. package/dist/core/SwarmCoordinator.js +473 -0
  123. package/dist/core/SwarmCoordinator.js.map +1 -0
  124. package/dist/core/memory/AgentDBIntegration.d.ts +24 -6
  125. package/dist/core/memory/AgentDBIntegration.d.ts.map +1 -1
  126. package/dist/core/memory/AgentDBIntegration.js +66 -10
  127. package/dist/core/memory/AgentDBIntegration.js.map +1 -1
  128. package/dist/core/memory/UnifiedMemoryCoordinator.d.ts +341 -0
  129. package/dist/core/memory/UnifiedMemoryCoordinator.d.ts.map +1 -0
  130. package/dist/core/memory/UnifiedMemoryCoordinator.js +986 -0
  131. package/dist/core/memory/UnifiedMemoryCoordinator.js.map +1 -0
  132. package/dist/core/memory/index.d.ts +5 -0
  133. package/dist/core/memory/index.d.ts.map +1 -1
  134. package/dist/core/memory/index.js +23 -1
  135. package/dist/core/memory/index.js.map +1 -1
  136. package/dist/core/metrics/MetricsAggregator.d.ts +228 -0
  137. package/dist/core/metrics/MetricsAggregator.d.ts.map +1 -0
  138. package/dist/core/metrics/MetricsAggregator.js +482 -0
  139. package/dist/core/metrics/MetricsAggregator.js.map +1 -0
  140. package/dist/core/metrics/index.d.ts +5 -0
  141. package/dist/core/metrics/index.d.ts.map +1 -0
  142. package/dist/core/metrics/index.js +11 -0
  143. package/dist/core/metrics/index.js.map +1 -0
  144. package/dist/core/optimization/SwarmOptimizer.d.ts +190 -0
  145. package/dist/core/optimization/SwarmOptimizer.d.ts.map +1 -0
  146. package/dist/core/optimization/SwarmOptimizer.js +648 -0
  147. package/dist/core/optimization/SwarmOptimizer.js.map +1 -0
  148. package/dist/core/optimization/index.d.ts +9 -0
  149. package/dist/core/optimization/index.d.ts.map +1 -0
  150. package/dist/core/optimization/index.js +25 -0
  151. package/dist/core/optimization/index.js.map +1 -0
  152. package/dist/core/optimization/types.d.ts +53 -0
  153. package/dist/core/optimization/types.d.ts.map +1 -0
  154. package/dist/core/optimization/types.js +6 -0
  155. package/dist/core/optimization/types.js.map +1 -0
  156. package/dist/core/orchestration/AdaptiveScheduler.d.ts +190 -0
  157. package/dist/core/orchestration/AdaptiveScheduler.d.ts.map +1 -0
  158. package/dist/core/orchestration/AdaptiveScheduler.js +460 -0
  159. package/dist/core/orchestration/AdaptiveScheduler.js.map +1 -0
  160. package/dist/core/orchestration/PriorityQueue.d.ts +54 -0
  161. package/dist/core/orchestration/PriorityQueue.d.ts.map +1 -0
  162. package/dist/core/orchestration/PriorityQueue.js +122 -0
  163. package/dist/core/orchestration/PriorityQueue.js.map +1 -0
  164. package/dist/core/orchestration/WorkflowOrchestrator.d.ts +189 -0
  165. package/dist/core/orchestration/WorkflowOrchestrator.d.ts.map +1 -0
  166. package/dist/core/orchestration/WorkflowOrchestrator.js +845 -0
  167. package/dist/core/orchestration/WorkflowOrchestrator.js.map +1 -0
  168. package/dist/core/orchestration/index.d.ts +7 -0
  169. package/dist/core/orchestration/index.d.ts.map +1 -0
  170. package/dist/core/orchestration/index.js +11 -0
  171. package/dist/core/orchestration/index.js.map +1 -0
  172. package/dist/core/orchestration/types.d.ts +96 -0
  173. package/dist/core/orchestration/types.d.ts.map +1 -0
  174. package/dist/core/orchestration/types.js +6 -0
  175. package/dist/core/orchestration/types.js.map +1 -0
  176. package/dist/core/recovery/CircuitBreaker.d.ts +176 -0
  177. package/dist/core/recovery/CircuitBreaker.d.ts.map +1 -0
  178. package/dist/core/recovery/CircuitBreaker.js +382 -0
  179. package/dist/core/recovery/CircuitBreaker.js.map +1 -0
  180. package/dist/core/recovery/RecoveryOrchestrator.d.ts +186 -0
  181. package/dist/core/recovery/RecoveryOrchestrator.d.ts.map +1 -0
  182. package/dist/core/recovery/RecoveryOrchestrator.js +476 -0
  183. package/dist/core/recovery/RecoveryOrchestrator.js.map +1 -0
  184. package/dist/core/recovery/RetryStrategy.d.ts +127 -0
  185. package/dist/core/recovery/RetryStrategy.d.ts.map +1 -0
  186. package/dist/core/recovery/RetryStrategy.js +314 -0
  187. package/dist/core/recovery/RetryStrategy.js.map +1 -0
  188. package/dist/core/recovery/index.d.ts +8 -0
  189. package/dist/core/recovery/index.d.ts.map +1 -0
  190. package/dist/core/recovery/index.js +27 -0
  191. package/dist/core/recovery/index.js.map +1 -0
  192. package/dist/core/skills/DependencyResolver.d.ts +99 -0
  193. package/dist/core/skills/DependencyResolver.d.ts.map +1 -0
  194. package/dist/core/skills/DependencyResolver.js +260 -0
  195. package/dist/core/skills/DependencyResolver.js.map +1 -0
  196. package/dist/core/skills/DynamicSkillLoader.d.ts +96 -0
  197. package/dist/core/skills/DynamicSkillLoader.d.ts.map +1 -0
  198. package/dist/core/skills/DynamicSkillLoader.js +353 -0
  199. package/dist/core/skills/DynamicSkillLoader.js.map +1 -0
  200. package/dist/core/skills/ManifestGenerator.d.ts +114 -0
  201. package/dist/core/skills/ManifestGenerator.d.ts.map +1 -0
  202. package/dist/core/skills/ManifestGenerator.js +449 -0
  203. package/dist/core/skills/ManifestGenerator.js.map +1 -0
  204. package/dist/core/skills/index.d.ts +9 -0
  205. package/dist/core/skills/index.d.ts.map +1 -0
  206. package/dist/core/skills/index.js +24 -0
  207. package/dist/core/skills/index.js.map +1 -0
  208. package/dist/core/skills/types.d.ts +118 -0
  209. package/dist/core/skills/types.d.ts.map +1 -0
  210. package/dist/core/skills/types.js +7 -0
  211. package/dist/core/skills/types.js.map +1 -0
  212. package/dist/core/transport/QUICTransport.d.ts +320 -0
  213. package/dist/core/transport/QUICTransport.d.ts.map +1 -0
  214. package/dist/core/transport/QUICTransport.js +711 -0
  215. package/dist/core/transport/QUICTransport.js.map +1 -0
  216. package/dist/core/transport/index.d.ts +40 -0
  217. package/dist/core/transport/index.d.ts.map +1 -0
  218. package/dist/core/transport/index.js +46 -0
  219. package/dist/core/transport/index.js.map +1 -0
  220. package/dist/core/transport/quic-loader.d.ts +123 -0
  221. package/dist/core/transport/quic-loader.d.ts.map +1 -0
  222. package/dist/core/transport/quic-loader.js +293 -0
  223. package/dist/core/transport/quic-loader.js.map +1 -0
  224. package/dist/core/transport/quic.d.ts +154 -0
  225. package/dist/core/transport/quic.d.ts.map +1 -0
  226. package/dist/core/transport/quic.js +214 -0
  227. package/dist/core/transport/quic.js.map +1 -0
  228. package/dist/mcp/server.d.ts +9 -9
  229. package/dist/mcp/server.d.ts.map +1 -1
  230. package/dist/mcp/server.js +1 -2
  231. package/dist/mcp/server.js.map +1 -1
  232. package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
  233. package/dist/mcp/services/AgentRegistry.js +4 -1
  234. package/dist/mcp/services/AgentRegistry.js.map +1 -1
  235. package/dist/types/index.d.ts +2 -1
  236. package/dist/types/index.d.ts.map +1 -1
  237. package/dist/types/index.js +2 -0
  238. package/dist/types/index.js.map +1 -1
  239. package/dist/types/qx.d.ts +429 -0
  240. package/dist/types/qx.d.ts.map +1 -0
  241. package/dist/types/qx.js +71 -0
  242. package/dist/types/qx.js.map +1 -0
  243. package/dist/visualization/api/RestEndpoints.js +2 -2
  244. package/dist/visualization/api/RestEndpoints.js.map +1 -1
  245. package/dist/visualization/api/WebSocketServer.d.ts +44 -0
  246. package/dist/visualization/api/WebSocketServer.d.ts.map +1 -1
  247. package/dist/visualization/api/WebSocketServer.js +144 -23
  248. package/dist/visualization/api/WebSocketServer.js.map +1 -1
  249. package/dist/visualization/core/DataTransformer.d.ts +10 -0
  250. package/dist/visualization/core/DataTransformer.d.ts.map +1 -1
  251. package/dist/visualization/core/DataTransformer.js +60 -5
  252. package/dist/visualization/core/DataTransformer.js.map +1 -1
  253. package/dist/visualization/emit-event.d.ts +75 -0
  254. package/dist/visualization/emit-event.d.ts.map +1 -0
  255. package/dist/visualization/emit-event.js +213 -0
  256. package/dist/visualization/emit-event.js.map +1 -0
  257. package/dist/visualization/index.d.ts +1 -0
  258. package/dist/visualization/index.d.ts.map +1 -1
  259. package/dist/visualization/index.js +7 -1
  260. package/dist/visualization/index.js.map +1 -1
  261. package/docs/reference/skills.md +63 -1
  262. package/package.json +16 -58
@@ -1,219 +1,171 @@
1
1
  ---
2
- name: holistic-testing-with-pact-principles
3
- description: Apply the Holistic Testing Model evolved with PACT (Proactive, Autonomous, Collaborative, Targeted) principles. Use when designing comprehensive test strategies for Classical, AI-assisted, Agent based, or Agentic Systems building quality into the team, or implementing whole-team quality practices.
2
+ name: holistic-testing-pact
3
+ description: "Apply the Holistic Testing Model evolved with PACT (Proactive, Autonomous, Collaborative, Targeted) principles. Use when designing comprehensive test strategies for Classical, AI-assisted, Agent based, or Agentic Systems building quality into the team, or implementing whole-team quality practices."
4
+ category: testing-methodologies
5
+ priority: critical
6
+ tokenEstimate: 1100
7
+ agents: [qe-fleet-commander, qe-test-generator, qe-quality-analyzer, qe-requirements-validator]
8
+ implementation_status: optimized
9
+ optimization_version: 1.0
10
+ last_optimized: 2025-12-02
11
+ dependencies: []
12
+ quick_reference_card: true
13
+ tags: [holistic, pact, quality, whole-team, proactive, autonomous, collaborative, targeted]
4
14
  ---
5
15
 
6
16
  # Holistic Testing Model with PACT Principles
7
17
 
8
- ## Philosophy
18
+ <default_to_action>
19
+ When designing test strategies or building quality into teams:
20
+ 1. APPLY PACT principles: Proactive (test before bugs), Autonomous (teams own quality), Collaborative (whole-team responsibility), Targeted (risk-focused)
21
+ 2. IDENTIFY quadrant focus: Technology-facing (unit, integration, performance) or Business-facing (acceptance, exploratory, usability)
22
+ 3. SELECT agents based on PACT dimension and testing quadrant
23
+ 4. IMPLEMENT feedback loops that catch issues in minutes, not days
24
+ 5. MEASURE outcomes (bug escape rate, release confidence) not activities (test count)
25
+
26
+ **Quick PACT Application:**
27
+ - Proactive → Design testability into architecture, risk analysis during refinement
28
+ - Autonomous → Devs run tests locally, CI pipeline with no manual gates
29
+ - Collaborative → Three Amigos, QE pairs with dev, shared test ownership
30
+ - Targeted → Risk-based planning, focus on critical flows, kill valueless tests
31
+
32
+ **Critical Success Factors:**
33
+ - Quality is a whole-team responsibility, not a QA phase
34
+ - QA as enablers (build infrastructure, coach), not gatekeepers
35
+ - Fast feedback during development, not after
36
+ </default_to_action>
37
+
38
+ ## Quick Reference Card
39
+
40
+ ### When to Use
41
+ - Designing comprehensive test strategies
42
+ - Building quality culture in teams
43
+ - Choosing testing approach for new projects
44
+ - Evolving from sequential QA to concurrent quality
45
+
46
+ ### PACT Principles
47
+ | Principle | Focus | Anti-Pattern |
48
+ |-----------|-------|--------------|
49
+ | **Proactive** | Test before code, design testability | Waiting for bugs to find you |
50
+ | **Autonomous** | Teams deploy when ready | QA as manual gatekeepers |
51
+ | **Collaborative** | Whole-team quality thinking | QA works in isolation |
52
+ | **Targeted** | Risk-based, high-value tests | Exhaustive checkbox testing |
53
+
54
+ ### Holistic Testing Quadrants
55
+ | Quadrant | Purpose | Examples |
56
+ |----------|---------|----------|
57
+ | Tech + Support | Fast feedback | Unit, component, integration tests |
58
+ | Tech + Critique | Find limits | Performance, security, chaos |
59
+ | Business + Support | Shared understanding | BDD, acceptance tests |
60
+ | Business + Critique | Discover unknowns | Exploratory, usability, A/B |
61
+
62
+ ### Agent Selection by PACT + Quadrant
63
+ | PACT Dimension | Agents |
64
+ |----------------|--------|
65
+ | Proactive + Tech | qe-test-generator, qe-requirements-validator |
66
+ | Autonomous + Tech | qe-test-executor, qe-coverage-analyzer |
67
+ | Collaborative | qe-fleet-commander (orchestration) |
68
+ | Targeted | qe-regression-risk-analyzer, qe-quality-gate |
9
69
 
10
- Quality is a whole-team responsibility. Testing is an activity, not a phase. The Holistic Testing Model views testing through multiple dimensions, now evolved with PACT principles for the agentic era.
11
-
12
- ## PACT Principles
13
-
14
- ### Proactive
15
- **Stop waiting for bugs to find you.**
16
-
17
- - Test before code exists (risk analysis during refinement)
18
- - Design testability into architecture
19
- - Identify failure modes during design reviews
20
- - Create feedback loops that catch issues in minutes, not days
21
-
22
- **Example:** During API design, ask: "How will we know if this endpoint times out under load?" Build observability in from the start.
23
-
24
- ### Autonomous
25
- **Empower the team to own quality.**
26
-
27
- - Developers run tests locally before pushing
28
- - Automated checks in CI pipeline (no manual gates)
29
- - Self-service test environments
30
- - Teams deploy when ready, not when QA says so
31
-
32
- **Anti-pattern:** QA as gatekeepers who manually test every change. That's a bottleneck, not quality.
33
-
34
- **Better:** QA as enablers who build test infrastructure, coach teams, and explore what automation misses.
35
-
36
- ### Collaborative
37
- **Quality work requires whole-team thinking.**
38
-
39
- - QE pairs with dev during feature work
40
- - Product owner clarifies acceptance criteria with QE input
41
- - Ensemble testing sessions for complex scenarios
42
- - Shared ownership of test code
43
-
44
- **Practical:** Three Amigos meetings aren't theater. They're where you discover the edge cases, clarify assumptions, and design better solutions.
45
-
46
- ### Targeted
47
- **Test what matters, skip what doesn't.**
48
-
49
- - Risk-based test planning (not exhaustive checkbox testing)
50
- - Focus on business-critical flows and recent changes
51
- - Adjust depth based on risk profile
52
- - Kill tests that don't provide value
53
-
54
- **Example:** E-commerce checkout? Test thoroughly. Admin panel used twice a month? Lighter touch.
55
-
56
- ## The Holistic Testing Dimensions
57
-
58
- ### 1. Technology-Facing Tests
59
-
60
- **Supporting the Team (Building Quality In)**
61
- - Unit tests (TDD both schools)
62
- - Component tests
63
- - Integration tests
64
- - API contract tests
65
-
66
- **Goal:** Fast feedback during development. Developers can refactor fearlessly.
67
-
68
- **Critique the Team (Finding Issues)**
69
- - Performance testing
70
- - Security testing
71
- - Load/stress testing
72
- - Chaos engineering
73
-
74
- **Goal:** Validate non-functional requirements. Find limits before customers do.
75
-
76
- ### 2. Business-Facing Tests
77
-
78
- **Supporting the Team (Defining Expected Behavior)**
79
- - Acceptance tests (BDD/Specification by Example)
80
- - Prototypes and simulations
81
- - Example-driven development
82
-
83
- **Goal:** Shared understanding of what we're building and why.
84
-
85
- **Critique the Product (Discovering What We Don't Know)**
86
- - Exploratory testing
87
- - Usability testing
88
- - User acceptance testing
89
- - A/B testing in production
90
-
91
- **Goal:** Uncover issues automation can't find. Validate actual user value.
70
+ ---
92
71
 
93
- ## Applying PACT to Each Dimension
72
+ ## PACT in Practice
94
73
 
95
- ### Technology + Proactive
96
- - Write failing tests before code
97
- - Design APIs for testability
98
- - Build observability into architecture
74
+ ### Proactive: Test Before Bugs
75
+ ```javascript
76
+ // During API design, ask: "How will we know if this times out under load?"
77
+ // Build observability from start
78
+ await Task("Risk Analysis", {
79
+ phase: 'refinement',
80
+ question: 'What could go wrong and how will we know?'
81
+ }, "qe-requirements-validator");
82
+ ```
99
83
 
100
- ### Technology + Autonomous
84
+ ### Autonomous: Teams Own Quality
101
85
  - Developers run full test suite locally
102
86
  - CI fails fast with clear diagnostics
103
87
  - No manual deployment approvals
88
+ - Self-service test environments
104
89
 
105
- ### Technology + Collaborative
106
- - Pair on complex test scenarios
107
- - Shared test code ownership
108
- - Mob on test infrastructure
109
-
110
- ### Technology + Targeted
111
- - Test pyramid (many unit, some integration, few E2E)
112
- - Skip tests for deprecated features
113
- - Focus on changed areas
114
-
115
- ### Business + Proactive
116
- - Risk workshops before sprint starts
117
- - Example mapping in refinement
118
- - Test ideas in prototypes
119
-
120
- ### Business + Autonomous
121
- - Product owners write acceptance criteria
122
- - Designers validate UX before dev
123
- - Teams decide when to release
124
-
125
- ### Business + Collaborative
90
+ ### Collaborative: Whole-Team Thinking
126
91
  - QE attends planning and refinement
127
92
  - Three Amigos for every user story
128
- - Cross-functional test design
129
-
130
- ### Business + Targeted
131
- - Deep exploration of critical paths
132
- - Quick smoke test of low-risk changes
133
- - Focus where bugs hurt most
134
-
135
- ## Implementation Patterns
136
-
137
- ### Start Small
138
- Pick one quadrant and one PACT principle.
139
-
140
- Example: "Let's add unit tests (technology-supporting) and have devs run them locally before pushing (autonomous)."
141
-
142
- ### Measure What Matters
143
- - Time from code complete to production
144
- - Bug escape rate to production
145
- - Mean time to detect/resolve issues
146
- - Team confidence in releases
147
-
148
- **Don't measure:** Test count, code coverage percentage, number of test cases executed. Those are vanity metrics.
149
-
150
- ### Common Challenges
151
-
152
- **"We don't have time for testing."**
153
- You're already testing - manually, in production, with real users. Shift that effort left.
154
-
155
- **"Our code isn't testable."**
156
- Then you have a design problem, not a testing problem. Refactor for testability.
157
-
158
- **"QA is too slow."**
159
- QA shouldn't be on the critical path. If they are, you're doing it wrong.
160
-
161
- **"100% automation is the goal."**
162
- No. Automation supports testing, it doesn't replace human judgment. Keep exploring.
163
-
164
- ## Evolution from Traditional Models
165
-
166
- ### Old Way (Sequential)
167
- 1. Dev writes code
168
- 2. QA tests code
169
- 3. QA finds bugs
170
- 4. Dev fixes bugs
171
- 5. Repeat until "done"
172
-
173
- **Problem:** Slow feedback, finger-pointing, quality as gatekeeping.
174
-
175
- ### Holistic + PACT Way (Concurrent)
176
- 1. Team discusses what to build and how to test it
177
- 2. Write tests that define success
178
- 3. Build with tests running continuously
179
- 4. Deploy with confidence
180
- 5. Monitor and learn
181
-
182
- **Benefit:** Fast feedback, shared ownership, quality as enabler.
183
-
184
- ## Tools Support the Model, Not Define It
93
+ - Shared ownership of test code
94
+ - Ensemble testing for complex scenarios
95
+
96
+ ### Targeted: Test What Matters
97
+ ```javascript
98
+ // E-commerce checkout? Test thoroughly.
99
+ // Admin panel used twice a month? Lighter touch.
100
+ await Task("Risk-Based Planning", {
101
+ critical: ['checkout', 'payment'],
102
+ light: ['admin-panel', 'settings']
103
+ }, "qe-regression-risk-analyzer");
104
+ ```
185
105
 
186
- The model is tool-agnostic. Whether you use:
187
- - Jest or JUnit
188
- - Playwright or Cypress
189
- - Postman or REST-assured
190
- - Cucumber or plain code
106
+ ---
191
107
 
192
- ...doesn't matter. What matters is applying holistic thinking and PACT principles.
108
+ ## Evolution from Traditional
193
109
 
194
- ## Questions to Ask
110
+ | Old Way (Sequential) | Holistic + PACT (Concurrent) |
111
+ |---------------------|------------------------------|
112
+ | Dev writes → QA tests → bugs found → fixes | Team discusses what to build and how to test |
113
+ | Slow feedback, finger-pointing | Fast feedback, shared ownership |
114
+ | Quality as gatekeeping | Quality as enabler |
115
+ | QA on critical path | QA builds infrastructure, coaches |
195
116
 
196
- **Proactive:** "What could go wrong, and how will we know?"
197
- **Autonomous:** "Can the team move forward without waiting for someone else?"
198
- **Collaborative:** "Who else needs to be part of this conversation?"
199
- **Targeted:** "What's the highest risk here, and are we testing it?"
117
+ ---
200
118
 
201
119
  ## Success Signals
202
120
 
203
121
  - Features deploy multiple times per day
204
122
  - Bug escape rate trending down
205
- - Team discusses quality naturally, not just in "QA time"
123
+ - Team discusses quality naturally
206
124
  - Developers write tests without being told
207
- - Retrospectives focus on system improvements, not blame
208
125
  - Releases are boring (in a good way)
209
126
 
210
- ## Further Reading
127
+ ---
211
128
 
212
- - **Agile Testing** by Lisa Crispin and Janet Gregory (origin of quadrants)
213
- - **Explore It!** by Elisabeth Hendrickson (exploratory testing)
214
- - **Growing Object-Oriented Software Guided by Tests** by Freeman & Pryce (TDD collaboration)
215
- - Your own retrospectives - what actually worked in your context?
129
+ ## Agent Coordination Hints
130
+
131
+ ### Memory Namespace
132
+ ```
133
+ aqe/holistic-testing/
134
+ ├── pact-assessment/* - PACT maturity analysis
135
+ ├── quadrant-coverage/* - Coverage per quadrant
136
+ ├── team-metrics/* - Quality ownership metrics
137
+ └── feedback-loops/* - Cycle time data
138
+ ```
139
+
140
+ ### Fleet Coordination
141
+ ```typescript
142
+ const holisticFleet = await FleetManager.coordinate({
143
+ strategy: 'holistic-testing',
144
+ pact: { proactive: true, autonomous: true, collaborative: true, targeted: true },
145
+ agents: [
146
+ 'qe-fleet-commander', // Orchestration
147
+ 'qe-test-generator', // Tech quadrant
148
+ 'qe-requirements-validator', // Business quadrant
149
+ 'qe-quality-analyzer' // Metrics
150
+ ],
151
+ topology: 'mesh'
152
+ });
153
+ ```
154
+
155
+ ---
156
+
157
+ ## Related Skills
158
+ - [agentic-quality-engineering](../agentic-quality-engineering/) - Agent coordination
159
+ - [context-driven-testing](../context-driven-testing/) - Adapt to context
160
+ - [shift-left-testing](../shift-left-testing/) - Proactive testing
161
+ - [risk-based-testing](../risk-based-testing/) - Targeted testing
162
+
163
+ ---
216
164
 
217
165
  ## Remember
218
166
 
219
- Context drives decisions. These principles guide thinking, they don't dictate process. Adapt them to your team's reality.
167
+ **PACT = Proactive + Autonomous + Collaborative + Targeted**
168
+
169
+ Quality is built in, not tested in. Teams own quality. QA enables, doesn't gate. Test what matters, skip what doesn't. Measure outcomes, not activities.
170
+
171
+ **With Agents:** Agents analyze PACT maturity, recommend quadrant coverage, and coordinate whole-team quality. Use agents to scale holistic thinking while maintaining human judgment.
@@ -1,22 +1,65 @@
1
1
  ---
2
2
  name: localization-testing
3
- description: Internationalization (i18n) and localization (l10n) testing for global products including translations, locale formats, RTL languages, and cultural appropriateness. Use when launching in new markets or building multi-language products.
3
+ description: "Internationalization (i18n) and localization (l10n) testing for global products including translations, locale formats, RTL languages, and cultural appropriateness. Use when launching in new markets or building multi-language products."
4
+ category: specialized-testing
5
+ priority: medium
6
+ tokenEstimate: 800
7
+ agents: [qe-test-generator, qe-test-executor, qe-visual-tester]
8
+ implementation_status: optimized
9
+ optimization_version: 1.0
10
+ last_optimized: 2025-12-02
11
+ dependencies: []
12
+ quick_reference_card: true
13
+ tags: [localization, i18n, l10n, translation, rtl, unicode, locale]
4
14
  ---
5
15
 
6
16
  # Localization & Internationalization Testing
7
17
 
8
- ## Core Principle
18
+ <default_to_action>
19
+ When testing multi-language/region support:
20
+ 1. VERIFY translation coverage (all strings translated)
21
+ 2. TEST locale-specific formats (date, time, currency, numbers)
22
+ 3. VALIDATE RTL layout (Arabic, Hebrew)
23
+ 4. CHECK character encoding (UTF-8, unicode)
24
+ 5. CONFIRM cultural appropriateness (icons, colors, content)
25
+
26
+ **Quick i18n Checklist:**
27
+ - All user-facing strings externalized
28
+ - No hardcoded text in code
29
+ - Date/time/currency formatted per locale
30
+ - RTL languages flip layout correctly
31
+ - Unicode characters display properly
32
+
33
+ **Critical Success Factors:**
34
+ - Don't hardcode strings - externalize everything
35
+ - Test with real speakers, not just translation files
36
+ - RTL requires mirrored UI layout
37
+ </default_to_action>
38
+
39
+ ## Quick Reference Card
40
+
41
+ ### When to Use
42
+ - Launching in new markets
43
+ - Adding language support
44
+ - Before international releases
45
+ - After UI changes
46
+
47
+ ### i18n vs l10n
48
+ | Term | Full Name | Focus |
49
+ |------|-----------|-------|
50
+ | **i18n** | Internationalization | Building for localization |
51
+ | **l10n** | Localization | Adapting for specific locale |
52
+
53
+ ### Common Locale Formats
54
+ | Type | US (en-US) | UK (en-GB) | Japan (ja-JP) |
55
+ |------|------------|------------|---------------|
56
+ | **Date** | 10/24/2025 | 24/10/2025 | 2025/10/24 |
57
+ | **Currency** | $1,234.56 | £1,234.56 | ¥1,235 |
58
+ | **Number** | 1,234.56 | 1,234.56 | 1,234.56 |
9
59
 
10
- **Global products must work globally.**
11
-
12
- i18n testing ensures software supports multiple languages, regions, and cultures without code changes.
13
-
14
- ## i18n vs l10n
15
-
16
- **Internationalization (i18n):** Building software to support localization
17
- **Localization (l10n):** Adapting software for specific locale
60
+ ---
18
61
 
19
- ## Testing Translation Coverage
62
+ ## Translation Coverage Testing
20
63
 
21
64
  ```javascript
22
65
  test('all strings are translated', () => {
@@ -29,8 +72,9 @@ test('all strings are translated', () => {
29
72
  expect(esKeys).toEqual(enKeys);
30
73
  });
31
74
 
32
- test('no missing translation placeholders', () => {
33
- const text = await page.locator('button').textContent();
75
+ test('no missing translation placeholders', async ({ page }) => {
76
+ await page.goto('/?lang=fr');
77
+ const text = await page.textContent('body');
34
78
 
35
79
  // Should not see placeholder keys
36
80
  expect(text).not.toContain('translation.missing');
@@ -38,6 +82,8 @@ test('no missing translation placeholders', () => {
38
82
  });
39
83
  ```
40
84
 
85
+ ---
86
+
41
87
  ## Date/Time/Currency Formats
42
88
 
43
89
  ```javascript
@@ -52,16 +98,18 @@ test('date formats by locale', () => {
52
98
  test('currency formats by locale', () => {
53
99
  const amount = 1234.56;
54
100
 
55
- expect(formatCurrency(amount, 'USD')).toBe('$1,234.56');
56
- expect(formatCurrency(amount, 'EUR')).toBe('1.234,56');
57
- expect(formatCurrency(amount, 'JPY')).toBe('¥1,235'); // No decimals
101
+ expect(formatCurrency(amount, 'en-US', 'USD')).toBe('$1,234.56');
102
+ expect(formatCurrency(amount, 'de-DE', 'EUR')).toBe('1.234,56');
103
+ expect(formatCurrency(amount, 'ja-JP', 'JPY')).toBe('¥1,235');
58
104
  });
59
105
  ```
60
106
 
107
+ ---
108
+
61
109
  ## RTL (Right-to-Left) Testing
62
110
 
63
111
  ```javascript
64
- test('layout flips for RTL languages', async () => {
112
+ test('layout flips for RTL languages', async ({ page }) => {
65
113
  await page.goto('/?lang=ar'); // Arabic
66
114
 
67
115
  const dir = await page.locator('html').getAttribute('dir');
@@ -69,41 +117,105 @@ test('layout flips for RTL languages', async () => {
69
117
 
70
118
  // Navigation should be on right
71
119
  const nav = await page.locator('nav');
72
- const styles = await nav.evaluate((el) =>
120
+ const styles = await nav.evaluate(el =>
73
121
  window.getComputedStyle(el)
74
122
  );
75
123
  expect(styles.direction).toBe('rtl');
76
124
  });
125
+
126
+ test('icons/images appropriate for RTL', async ({ page }) => {
127
+ await page.goto('/?lang=he'); // Hebrew
128
+
129
+ // Back arrow should point right in RTL
130
+ const backIcon = await page.locator('.back-icon');
131
+ expect(await backIcon.getAttribute('class')).toContain('rtl-flipped');
132
+ });
77
133
  ```
78
134
 
79
- ## Character Encoding
135
+ ---
136
+
137
+ ## Unicode Character Support
80
138
 
81
139
  ```javascript
82
- test('supports unicode characters', async () => {
140
+ test('supports unicode characters', async ({ page }) => {
83
141
  // Japanese
84
142
  await page.fill('#name', '山田太郎');
143
+ await page.click('#submit');
144
+
145
+ const saved = await db.users.findOne({ /* ... */ });
146
+ expect(saved.name).toBe('山田太郎');
85
147
 
86
148
  // Arabic
87
149
  await page.fill('#name', 'محمد');
88
-
89
150
  // Emoji
90
- await page.fill('#name', '👋🌍');
151
+ await page.fill('#bio', '👋🌍');
91
152
 
92
- // Verify saved correctly
93
- const saved = await db.users.findOne({ id: userId });
94
- expect(saved.name).toBe('👋🌍');
153
+ expect(saved.bio).toBe('👋🌍');
95
154
  });
96
155
  ```
97
156
 
157
+ ---
158
+
159
+ ## Agent-Driven Localization Testing
160
+
161
+ ```typescript
162
+ // Comprehensive localization validation
163
+ await Task("Localization Testing", {
164
+ url: 'https://example.com',
165
+ locales: ['en-US', 'fr-FR', 'de-DE', 'ja-JP', 'ar-SA'],
166
+ checks: ['translations', 'formats', 'rtl', 'unicode'],
167
+ detectHardcodedStrings: true
168
+ }, "qe-test-generator");
169
+
170
+ // Returns:
171
+ // {
172
+ // locales: 5,
173
+ // missingTranslations: 3,
174
+ // formatIssues: 1,
175
+ // rtlIssues: 0,
176
+ // hardcodedStrings: ['button.submit', 'header.title']
177
+ // }
178
+ ```
179
+
180
+ ---
181
+
182
+ ## Agent Coordination Hints
183
+
184
+ ### Memory Namespace
185
+ ```
186
+ aqe/localization-testing/
187
+ ├── translations/* - Translation coverage
188
+ ├── formats/* - Locale-specific formats
189
+ ├── rtl-validation/* - RTL layout checks
190
+ └── unicode/* - Character encoding tests
191
+ ```
192
+
193
+ ### Fleet Coordination
194
+ ```typescript
195
+ const l10nFleet = await FleetManager.coordinate({
196
+ strategy: 'localization-testing',
197
+ agents: [
198
+ 'qe-test-generator', // Generate l10n tests
199
+ 'qe-test-executor', // Execute across locales
200
+ 'qe-visual-tester' // RTL visual validation
201
+ ],
202
+ topology: 'parallel'
203
+ });
204
+ ```
205
+
206
+ ---
207
+
208
+ ## Related Skills
209
+ - [accessibility-testing](../accessibility-testing/) - Language accessibility
210
+ - [compatibility-testing](../compatibility-testing/) - Cross-platform i18n
211
+ - [visual-testing-advanced](../visual-testing-advanced/) - RTL visual regression
212
+
213
+ ---
214
+
98
215
  ## Remember
99
216
 
100
- **Don't hardcode. Externalize all user-facing strings.**
217
+ **Don't hardcode. Externalize all user-facing strings.** Every string visible to users must come from translation files, not code.
101
218
 
102
- Test:
103
- - Translation completeness
104
- - Locale-specific formats (date, time, currency)
105
- - RTL layout (Arabic, Hebrew)
106
- - Character encoding (UTF-8)
107
- - Cultural appropriateness
219
+ **Test with native speakers, not just translation files.** Machine translations and translation files can have context issues that only native speakers catch.
108
220
 
109
- **With Agents:** Agents validate translation coverage, detect hardcoded strings, and test locale-specific formatting automatically across all supported languages.
221
+ **With Agents:** Agents validate translation coverage, detect hardcoded strings, test locale-specific formatting, and verify RTL layouts automatically across all supported languages.