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,400 +1,160 @@
1
1
  ---
2
2
  name: context-driven-testing
3
- description: Apply context-driven testing principles where practices are chosen based on project context, not universal "best practices". Use when making testing decisions, questioning dogma, or adapting approaches to specific project needs.
3
+ description: "Apply context-driven testing principles where practices are chosen based on project context, not universal 'best practices'. Use when making testing decisions, questioning dogma, or adapting approaches to specific project needs."
4
+ category: testing-methodologies
5
+ priority: high
6
+ tokenEstimate: 1100
7
+ agents: [qe-fleet-commander, qe-regression-risk-analyzer, qe-requirements-validator, qe-quality-analyzer]
8
+ implementation_status: optimized
9
+ optimization_version: 1.0
10
+ last_optimized: 2025-12-02
11
+ dependencies: []
12
+ quick_reference_card: true
13
+ tags: [context-driven, rst, exploratory, heuristics, oracles, skilled-testing]
4
14
  ---
5
15
 
6
16
  # Context-Driven Testing
7
17
 
8
- ## Core Principle
18
+ <default_to_action>
19
+ When making testing decisions or adapting approaches:
20
+ 1. ANALYZE context: project goals, constraints, risks, team skills
21
+ 2. QUESTION practices: "Why this? What risk does it address? What's the cost?"
22
+ 3. INVESTIGATE not just check: Does software solve the problem, or create new ones?
23
+ 4. ADAPT approach based on context, not "best practices"
24
+ 5. DOCUMENT discoveries, not pre-written plans
25
+
26
+ **Quick Context Analysis:**
27
+ - Mission: "Find important problems fast enough to matter" (not "execute test cases")
28
+ - Risk: Safety-critical = high rigor; internal tool = lighter touch
29
+ - Constraints: Startup with tight timeline ≠ enterprise with compliance
30
+ - Skills: Novice needs structure; expert adapts intuitively
31
+
32
+ **Critical Success Factors:**
33
+ - No "best practices" work everywhere - only good practices in context
34
+ - Testing is investigation, not script execution
35
+ - Context changes; your approach should too
36
+ </default_to_action>
37
+
38
+ ## Quick Reference Card
39
+
40
+ ### When to Use
41
+ - Making testing decisions for new project
42
+ - Questioning "that's how it's done" dogma
43
+ - Adapting approach to specific constraints
44
+ - Exploratory testing sessions
45
+
46
+ ### Seven Context-Driven Principles
47
+ 1. Value of any practice depends on its context
48
+ 2. Good practices in context, no universal best practices
49
+ 3. People working together are most important
50
+ 4. Projects unfold in unpredictable ways
51
+ 5. Product is a solution - if problem not solved, product fails
52
+ 6. Good testing is challenging intellectual work
53
+ 7. Judgment and skill determine right things at right times
54
+
55
+ ### Context Factors
56
+ | Factor | Questions |
57
+ |--------|-----------|
58
+ | **Project** | Business goal? User needs? Failure impact? |
59
+ | **Constraints** | Timeline? Budget? Team skills? Legacy? |
60
+ | **Risk** | Safety-critical? Regulated? High volume? |
61
+ | **Technical** | Stack quirks? Integrations? Observability? |
62
+
63
+ ### RST Heuristics
64
+ | Heuristic | Application |
65
+ |-----------|-------------|
66
+ | **SFDIPOT** | Structure, Function, Data, Interfaces, Platform, Operations, Time |
67
+ | **Oracles** | Consistency with history, similar products, expectations, docs |
68
+ | **Tours** | Business District, Historical, Bad Neighborhood, Tourist, Museum |
9
69
 
10
- **There are no "best practices" that work everywhere. There are only good practices in context.**
11
-
12
- Context-driven testing means: skilled testers making informed decisions based on their specific project's goals, constraints, and risks.
13
-
14
- ## The Seven Basic Principles (Context-Driven School)
15
-
16
- 1. **The value of any practice depends on its context**
17
- 2. **There are good practices in context, but no best practices**
18
- 3. **People, working together, are the most important part of any project's context**
19
- 4. **Projects unfold over time in ways that are often not predictable**
20
- 5. **The product is a solution. If the problem isn't solved, the product doesn't work**
21
- 6. **Good software testing is a challenging intellectual process**
22
- 7. **Only through judgment and skill, exercised cooperatively throughout the project, are we able to do the right things at the right times to effectively test our products**
23
-
24
- ## What This Means in Practice
25
-
26
- ### Question Everything
27
-
28
- **Someone says:** "We need 100% code coverage."
29
- **You ask:** "Why? What risk does that address? What's the cost? What about production monitoring?"
30
-
31
- **Someone says:** "Everyone does test automation first."
32
- **You ask:** "Do they have our constraints? Our risks? Our team skills? What problem are we actually solving?"
33
-
34
- ### Understand Your Mission
35
-
36
- **Bad mission:** "Execute all test cases"
37
- **Good mission:** "Find important problems fast enough to matter"
38
-
39
- **Bad mission:** "Achieve 80% automation coverage"
40
- **Good mission:** "Give stakeholders confidence to release while managing risk"
41
-
42
- ### Testing is Investigation
43
-
44
- You're not checking if the software matches a spec. You're investigating whether it solves the problem it's supposed to solve, and whether it creates new problems.
45
-
46
- **Checking:** Did this API return status 200?
47
- **Testing:** Does this API actually meet user needs? What happens under load? With bad data? When dependencies fail?
48
-
49
- ## Rapid Software Testing (RST) Techniques
50
-
51
- ### Exploratory Testing
52
-
53
- **Session-based approach:**
54
- 1. Charter: What are we investigating? (45-90 min session)
55
- 2. Explore: Use the software, vary inputs, observe behavior
56
- 3. Note: Document findings in real-time
57
- 4. Debrief: What did we learn? What's next?
58
-
59
- **Example charter:**
60
- "Explore checkout flow to discover issues with payment processing, focusing on edge cases and error handling."
61
-
62
- **Not:** "Click through checkout following this 47-step script."
63
-
64
- ### Heuristics for Test Design
65
-
66
- **SFDIPOT** - Quality criteria
67
- - **S**tructure: Is it properly composed?
68
- - **F**unction: Does it do what it's supposed to?
69
- - **D**ata: Does it handle data correctly?
70
- - **I**nterfaces: How does it interact with other components?
71
- - **P**latform: Does it work in its environment?
72
- - **O**perations: How well can it be used and managed?
73
- - **T**ime: Does it handle timing issues?
74
-
75
- **CRUSSPIC STMP** - Test techniques
76
- - **C**reate, **R**ead, **U**pdate, **S**earch, **S**ort, **P**rint, **I**mport, **C**onfirm
77
- - **S**tatus, **T**ourism, **M**odeling, **P**atterns
78
-
79
- ### Oracles (How to Recognize Problems)
80
-
81
- **Consistency oracles:**
82
- - Consistent with product history
83
- - Consistent with similar products
84
- - Consistent with user expectations
85
- - Consistent with documentation
86
-
87
- **Example:**
88
- The save button works in 5 screens but fails on the 6th. Inconsistency suggests a problem.
89
-
90
- **Comparability oracle:**
91
- Compare behavior across browsers, devices, user roles, data sets.
92
-
93
- **Inference oracle:**
94
- If X is true, we can infer Y should also be true.
95
-
96
- ### Touring Heuristic
97
-
98
- Explore the application like a tourist in different districts:
99
-
100
- **Business District Tour:** Critical business functions
101
- **Historical Tour:** Legacy features, old bugs
102
- **Bad Neighborhood Tour:** Where problems cluster
103
- **Tourist Tour:** What a new user sees first
104
- **Museum Tour:** Help documentation and examples
105
- **Intellectual Tour:** Complex features requiring thought
106
-
107
- ## Context Analysis
108
-
109
- Before choosing testing approach, analyze:
110
-
111
- ### 1. Project Context
112
- - What's the business goal?
113
- - Who are the users and what do they care about?
114
- - What happens if we fail?
115
- - What's the competitive landscape?
116
-
117
- ### 2. Constraints
118
- - Timeline (ship next week vs. next quarter)
119
- - Budget (startup vs. enterprise)
120
- - Skills (junior team vs. experts)
121
- - Legacy (greenfield vs. 10-year codebase)
122
-
123
- ### 3. Risk Profile
124
- - Safety-critical (medical device) vs. low stakes (internal tool)
125
- - Regulatory requirements vs. no compliance burden
126
- - High transaction volume vs. occasional use
127
- - Public-facing vs. internal only
128
-
129
- ### 4. Technical Context
130
- - Technology stack and its quirks
131
- - Integration points and dependencies
132
- - Production environment complexity
133
- - Monitoring and observability maturity
70
+ ---
134
71
 
135
- ## Making Context-Driven Decisions
72
+ ## Context-Driven Decisions
136
73
 
137
- ### Example 1: Test Automation Level
74
+ ### Example: Test Automation Level
138
75
 
139
- **Startup context:**
76
+ **Startup Context:**
140
77
  - Small team, rapid changes, unclear product-market fit
141
- - **Decision:** Light automation on critical paths, heavy exploratory testing
78
+ - **Decision:** Light automation on critical paths, heavy exploratory
142
79
  - **Rationale:** Requirements change too fast for extensive automation
143
80
 
144
- **Established product context:**
81
+ **Enterprise Context:**
145
82
  - Stable features, regulatory requirements, large team
146
83
  - **Decision:** Comprehensive automated regression suite
147
84
  - **Rationale:** Stability allows automation investment to pay off
148
85
 
149
- ### Example 2: Documentation
86
+ ### Example: Documentation
150
87
 
151
- **Highly regulated context:**
152
- - FDA/medical device requirements
88
+ **Regulated (FDA/medical):**
153
89
  - **Decision:** Detailed test protocols, traceability matrices
154
90
  - **Rationale:** Regulatory compliance isn't optional
155
91
 
156
92
  **Fast-paced startup:**
157
- - Minimal compliance needs
158
93
  - **Decision:** Lightweight session notes, risk logs
159
- - **Rationale:** Bureaucracy slows down more than it helps
160
-
161
- ## Common Misconceptions
162
-
163
- **"Context-driven means no process."**
164
- False. It means choosing processes that fit your context, not blindly following standards.
165
-
166
- **"Context-driven means no automation."**
167
- False. It means automating what makes sense in your context, not achieving arbitrary coverage goals.
168
-
169
- **"Context-driven means no documentation."**
170
- False. It means documenting what's valuable in your context, not creating docs no one reads.
171
-
172
- **"Context-driven means testing is unstructured."**
173
- False. Skilled exploratory testing is highly structured thinking, just not scripted.
174
-
175
- ## Skills Required
176
-
177
- Context-driven testing isn't a shortcut. It requires:
178
-
179
- ### Technical Skills
180
- - Understanding architecture and code
181
- - Ability to use testing tools effectively
182
- - Debug issues when found
183
- - Understand what's possible and what's hard
184
-
185
- ### Domain Knowledge
186
- - Understand the business problem
187
- - Know the users and their goals
188
- - Recognize what matters vs. what's trivial
189
-
190
- ### Testing Craft
191
- - Heuristics and oracles
192
- - Test design techniques
193
- - Risk analysis
194
- - Bug investigation
195
-
196
- ### Social Skills
197
- - Communicate findings clearly
198
- - Navigate organizational politics
199
- - Collaborate with diverse stakeholders
200
- - Say "I don't know" when you don't
201
-
202
- ## Red Flags: You're Not Being Context-Driven
203
-
204
- - You follow a process "because that's how it's done"
205
- - You can't explain *why* you're doing something
206
- - You measure test cases executed instead of problems found
207
- - You treat testing as checking against requirements only
208
- - You don't talk to users or stakeholders
209
- - Your test plan could apply to any project
210
- - You stop thinking once you have a script
211
-
212
- ## Questions to Ask Constantly
213
-
214
- **"What problem am I solving?"**
215
- Not "What does the process say to do?" but "What actual problem needs solving?"
216
-
217
- **"Who cares about this?"**
218
- If no one cares, maybe it doesn't matter.
219
-
220
- **"What's the risk if I'm wrong?"**
221
- High risk = more rigor. Low risk = lighter touch.
94
+ - **Rationale:** Bureaucracy slows more than it helps
222
95
 
223
- **"What's the cost of this activity?"**
224
- Time spent here can't be spent elsewhere. Worth it?
225
-
226
- **"Is there a better way?"**
227
- Given my actual constraints, not ideal conditions.
228
-
229
- ## Practical Tips
230
-
231
- ### 1. Start with Risk Assessment
232
- List features. For each, ask:
233
- - How likely is it to fail?
234
- - How bad if it fails?
235
- - How hard to test?
236
-
237
- Focus on high-risk areas.
238
-
239
- ### 2. Time-box Exploration
240
- You can explore forever. Set limits:
241
- - 2 hours exploring checkout
242
- - 30 minutes investigating error handling
243
- - 15 minutes with each browser
244
-
245
- ### 3. Document Discoveries, Not Plans
246
- Don't write test cases you'll execute later. Document what you learned as you test.
247
-
248
- **Test case:** "Enter invalid email, verify error message"
249
- **Discovery:** "Payment API returns 500 instead of 400 for malformed email, no user-visible error. Investigated logs: gateway expects specific format. Bug filed."
250
-
251
- ### 4. Talk to Humans
252
- - Developers (how it's built, what worried them)
253
- - Users (what they actually do)
254
- - Support (common problems)
255
- - Product (business priorities)
256
-
257
- ### 5. Pair with Others
258
- - Pair testing sessions uncover more than solo work
259
- - Different perspectives = different bugs found
260
- - Teaching others clarifies your own thinking
261
-
262
- ## When to Use Scripted Tests
263
-
264
- Context-driven doesn't mean "never script." Use scripts when:
265
-
266
- - Compliance requires documented test procedures
267
- - Testing is truly repetitive (regression after each deploy)
268
- - Training new team members on how to test
269
- - Need to precisely reproduce an issue
270
-
271
- But even then, leave room for exploration around the scripts.
272
-
273
- ## Evolution with Experience
274
-
275
- **Novice:** Needs structure, follows steps, can't adapt yet
276
- **Competent:** Understands tradeoffs, makes informed choices
277
- **Expert:** Intuitively adjusts approach, sees patterns others miss
96
+ ---
278
97
 
279
- Context-driven testing requires competence. Invest in skill development.
98
+ ## Investigation vs. Checking
280
99
 
281
- ## Resources
100
+ | Checking | Testing (Investigation) |
101
+ |----------|------------------------|
102
+ | Did API return 200? | Does API meet user needs? |
103
+ | Does button work? | What happens under load? |
104
+ | Match the spec? | Does it solve the problem? |
282
105
 
283
- **Books:**
284
- - **Lessons Learned in Software Testing** by Kaner, Bach, Pettichord
285
- - **Explore It!** by Elisabeth Hendrickson
286
- - **Perfect Software and Other Illusions About Testing** by Gerald Weinberg
106
+ ---
287
107
 
288
- **Courses:**
289
- - Rapid Software Testing (RST) by James Bach and Michael Bolton
108
+ ## Red Flags: Not Context-Driven
290
109
 
291
- **Communities:**
292
- - Association for Software Testing (AST)
293
- - Ministry of Testing community
110
+ - Follow process "because that's how it's done"
111
+ - Can't explain *why* you're doing something
112
+ - Measure test cases executed, not problems found
113
+ - Test plan could apply to any project
114
+ - Stop thinking once you have a script
294
115
 
295
- ## Using with QE Agents
116
+ ---
296
117
 
297
- ### Context-Aware Agent Selection
118
+ ## Agent-Assisted Context-Driven Testing
298
119
 
299
- **qe-fleet-commander** analyzes context and selects appropriate agents:
300
120
  ```typescript
301
- // Agent analyzes project context
302
- const contextAnalysis = await agent.analyzeContext({
121
+ // Agent analyzes context and recommends approach
122
+ const context = await Task("Analyze Context", {
303
123
  project: 'e-commerce-platform',
304
124
  stage: 'startup',
305
- team: 'small',
306
125
  constraints: ['timeline: tight', 'budget: limited'],
307
- risks: ['high-transaction-volume', 'payment-security']
308
- });
126
+ risks: ['payment-security', 'high-volume']
127
+ }, "qe-fleet-commander");
309
128
 
310
- // Recommends agents based on context:
129
+ // Context-aware agent selection
311
130
  // - qe-security-scanner (critical risk)
312
131
  // - qe-performance-tester (high volume)
313
132
  // - Skip: qe-visual-tester (low priority in startup context)
314
- ```
315
-
316
- ### Adaptive Testing Strategy
317
133
 
318
- Agents adjust their approach based on context:
319
- ```typescript
320
- // Startup context: Fast exploratory testing
321
- await qe-test-generator.generate({
134
+ // Adaptive testing strategy
135
+ await Task("Generate Tests", {
322
136
  context: 'startup',
323
137
  focus: 'critical-paths-only',
324
138
  depth: 'smoke-tests',
325
139
  automation: 'minimal'
326
- });
327
-
328
- // Regulated industry: Comprehensive documentation
329
- await qe-test-generator.generate({
330
- context: 'medical-device',
331
- focus: 'comprehensive-coverage',
332
- depth: 'extensive',
333
- automation: 'extensive',
334
- documentation: 'full-traceability'
335
- });
140
+ }, "qe-test-generator");
336
141
  ```
337
142
 
338
- ### Context-Driven Risk Assessment
339
-
340
- **qe-regression-risk-analyzer** applies context to risk scoring:
341
- ```typescript
342
- // Agent weights risk factors based on context
343
- const riskAnalysis = await agent.analyzeWithContext({
344
- feature: 'payment-processing',
345
- context: {
346
- industry: 'fintech', // High regulatory risk
347
- userBase: 'enterprise', // High reputational risk
348
- maturity: 'early-stage' // Higher technical risk
349
- }
350
- });
351
-
352
- // Risk score adjusted by context:
353
- // - Same feature in different context = different risk level
354
- // - fintech payment: CRITICAL
355
- // - internal tool payment: MEDIUM
356
- ```
357
-
358
- ### Human-Agent Collaborative Investigation
143
+ ---
359
144
 
360
- ```typescript
361
- // Agent assists in exploratory testing (context-driven approach)
362
- const session = await qe-flaky-test-hunter.exploreWithHuman({
363
- charter: 'Investigate auth edge cases',
364
- humanRole: 'navigator', // Human guides strategy
365
- agentRole: 'executor', // Agent executes variations
366
- style: 'rapid-software-testing'
367
- });
145
+ ## Agent Coordination Hints
368
146
 
369
- // Agent generates variations, human recognizes problems
370
- // Combined: Human judgment + Agent thoroughness
147
+ ### Memory Namespace
371
148
  ```
372
-
373
- ### Context-Specific Agent Behavior
374
-
375
- ```typescript
376
- // Agent adapts questioning style based on context
377
- await qe-requirements-validator.validate({
378
- requirements: userStories,
379
- context: 'safety-critical', // Medical device
380
- rigor: 'strict', // Question everything
381
- documentation: 'mandatory'
382
- });
383
-
384
- // vs.
385
-
386
- await qe-requirements-validator.validate({
387
- requirements: userStories,
388
- context: 'prototype', // Early MVP
389
- rigor: 'lightweight', // Accept ambiguity
390
- documentation: 'minimal'
391
- });
149
+ aqe/context-driven/
150
+ ├── context-analysis/* - Project context snapshots
151
+ ├── decisions/* - Testing decisions with rationale
152
+ ├── discoveries/* - What was learned during testing
153
+ └── adaptations/* - How approach changed over time
392
154
  ```
393
155
 
394
- ### Fleet Coordination with Context Awareness
395
-
156
+ ### Fleet Coordination
396
157
  ```typescript
397
- // Agents coordinate based on project context
398
158
  const contextFleet = await FleetManager.coordinate({
399
159
  strategy: 'context-driven',
400
160
  context: {
@@ -402,59 +162,35 @@ const contextFleet = await FleetManager.coordinate({
402
162
  stage: 'growth',
403
163
  compliance: 'gdpr-only'
404
164
  },
405
- agents: [
406
- 'qe-test-generator', // Balanced automation
407
- 'qe-security-scanner', // GDPR focus
408
- 'qe-performance-tester', // Scalability critical
409
- 'qe-flaky-test-hunter' // Maintain velocity
410
- ],
411
- exclude: [
412
- 'qe-visual-tester', // Not priority
413
- 'qe-requirements-validator' // Too heavyweight
414
- ]
165
+ agents: ['qe-test-generator', 'qe-security-scanner', 'qe-performance-tester'],
166
+ exclude: ['qe-visual-tester', 'qe-requirements-validator'] // Not priority
415
167
  });
416
168
  ```
417
169
 
418
- ### Agent Learning from Context
170
+ ---
419
171
 
420
- ```typescript
421
- // Agents learn what works in your specific context
422
- await qe-quality-analyzer.learnFromContext({
423
- timeframe: '90d',
424
- analyze: [
425
- 'which-tests-found-most-bugs',
426
- 'which-approaches-caught-regressions',
427
- 'what-metrics-predicted-quality'
428
- ]
429
- });
172
+ ## Practical Tips
430
173
 
431
- // Agent adapts recommendations to your context
432
- // "In your context: exploratory testing finds 3x more critical bugs than scripted"
433
- // "Automation ROI is low for features changed >2x/week"
434
- ```
174
+ 1. **Start with risk assessment** - List features, ask: How likely to fail? How bad? How hard to test?
175
+ 2. **Time-box exploration** - 2 hours checkout, 30 min error handling, 15 min per browser
176
+ 3. **Document discoveries** - Not "Enter invalid email, verify error" but "Payment API returns 500 instead of 400, no user-visible error. Bug filed."
177
+ 4. **Talk to humans** - Developers, users, support, product
178
+ 5. **Pair with others** - Different perspectives = different bugs
435
179
 
436
180
  ---
437
181
 
438
182
  ## Related Skills
439
-
440
- **Core Quality Practices:**
441
- - [agentic-quality-engineering](../agentic-quality-engineering/) - Context-driven agent selection
183
+ - [agentic-quality-engineering](../agentic-quality-engineering/) - Context-aware agent selection
442
184
  - [holistic-testing-pact](../holistic-testing-pact/) - Adapt holistic model to context
443
-
444
- **Testing Approaches:**
445
185
  - [risk-based-testing](../risk-based-testing/) - Context affects risk assessment
446
186
  - [exploratory-testing-advanced](../exploratory-testing-advanced/) - RST techniques
447
- - [test-automation-strategy](../test-automation-strategy/) - Context determines automation approach
448
-
449
- **Development Practices:**
450
- - [xp-practices](../xp-practices/) - Context-driven XP adoption
451
187
 
452
188
  ---
453
189
 
454
- ## Final Thought
190
+ ## Remember
455
191
 
456
- Context-driven testing is intellectually demanding. It requires constant thinking, learning, and adaptation. That's also what makes it effective and fulfilling.
192
+ **Context drives decisions.** No universal best practices. Skilled testers make informed decisions based on specific goals, constraints, and risks.
457
193
 
458
194
  You're not a test script executor. You're a skilled investigator helping teams build better products.
459
195
 
460
- **With Agents**: Agents enhance context-driven testing by analyzing context, adapting strategies, and learning what works in your specific situation. Use agents to scale context-driven thinking across the team while maintaining human judgment for critical decisions.
196
+ **With Agents:** Agents analyze context, adapt strategies, and learn what works in your situation. Use agents to scale context-driven thinking while maintaining human judgment for critical decisions.