agentic-qe 2.0.0 → 2.1.1
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/qx-partner.md +17 -4
- 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 +71 -20
- 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/SKILL.md +172 -538
- package/.claude/skills/testability-scoring/scripts/generate-html-report.js +0 -0
- package/.claude/skills/visual-testing-advanced/SKILL.md +155 -78
- package/.claude/skills/xp-practices/SKILL.md +151 -587
- package/CHANGELOG.md +86 -0
- package/README.md +23 -16
- package/dist/agents/QXPartnerAgent.d.ts +47 -1
- package/dist/agents/QXPartnerAgent.d.ts.map +1 -1
- package/dist/agents/QXPartnerAgent.js +2086 -125
- package/dist/agents/QXPartnerAgent.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/init-claude-md-template.d.ts.map +1 -1
- package/dist/cli/commands/init-claude-md-template.js +14 -0
- package/dist/cli/commands/init-claude-md-template.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/ReflexionMemoryAdapter.d.ts +109 -0
- package/dist/core/memory/ReflexionMemoryAdapter.d.ts.map +1 -0
- package/dist/core/memory/ReflexionMemoryAdapter.js +306 -0
- package/dist/core/memory/ReflexionMemoryAdapter.js.map +1 -0
- package/dist/core/memory/RuVectorPatternStore.d.ts +28 -0
- package/dist/core/memory/RuVectorPatternStore.d.ts.map +1 -1
- package/dist/core/memory/RuVectorPatternStore.js +70 -0
- package/dist/core/memory/RuVectorPatternStore.js.map +1 -1
- package/dist/core/memory/SparseVectorSearch.d.ts +55 -0
- package/dist/core/memory/SparseVectorSearch.d.ts.map +1 -0
- package/dist/core/memory/SparseVectorSearch.js +130 -0
- package/dist/core/memory/SparseVectorSearch.js.map +1 -0
- package/dist/core/memory/TieredCompression.d.ts +81 -0
- package/dist/core/memory/TieredCompression.d.ts.map +1 -0
- package/dist/core/memory/TieredCompression.js +270 -0
- package/dist/core/memory/TieredCompression.js.map +1 -0
- package/dist/core/memory/index.d.ts +6 -0
- package/dist/core/memory/index.d.ts.map +1 -1
- package/dist/core/memory/index.js +29 -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 +5 -0
- package/dist/core/optimization/SwarmOptimizer.d.ts.map +1 -1
- package/dist/core/optimization/SwarmOptimizer.js +17 -0
- package/dist/core/optimization/SwarmOptimizer.js.map +1 -1
- 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/WorkflowOrchestrator.d.ts +13 -0
- package/dist/core/orchestration/WorkflowOrchestrator.d.ts.map +1 -1
- package/dist/core/orchestration/WorkflowOrchestrator.js +32 -0
- package/dist/core/orchestration/WorkflowOrchestrator.js.map +1 -1
- 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/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/mcp/handlers/chaos/chaos-inject-failure.d.ts +5 -0
- package/dist/mcp/handlers/chaos/chaos-inject-failure.d.ts.map +1 -1
- package/dist/mcp/handlers/chaos/chaos-inject-failure.js +36 -2
- package/dist/mcp/handlers/chaos/chaos-inject-failure.js.map +1 -1
- package/dist/mcp/handlers/chaos/chaos-inject-latency.d.ts +5 -0
- package/dist/mcp/handlers/chaos/chaos-inject-latency.d.ts.map +1 -1
- package/dist/mcp/handlers/chaos/chaos-inject-latency.js +36 -2
- package/dist/mcp/handlers/chaos/chaos-inject-latency.js.map +1 -1
- 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/types/qx.d.ts +113 -7
- package/dist/types/qx.d.ts.map +1 -1
- package/dist/types/qx.js.map +1 -1
- package/dist/visualization/api/RestEndpoints.js +1 -1
- package/dist/visualization/api/RestEndpoints.js.map +1 -1
- package/package.json +15 -54
|
@@ -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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
72
|
+
## Context-Driven Decisions
|
|
136
73
|
|
|
137
|
-
### Example
|
|
74
|
+
### Example: Test Automation Level
|
|
138
75
|
|
|
139
|
-
**Startup
|
|
76
|
+
**Startup Context:**
|
|
140
77
|
- Small team, rapid changes, unclear product-market fit
|
|
141
|
-
- **Decision:** Light automation on critical paths, heavy exploratory
|
|
78
|
+
- **Decision:** Light automation on critical paths, heavy exploratory
|
|
142
79
|
- **Rationale:** Requirements change too fast for extensive automation
|
|
143
80
|
|
|
144
|
-
**
|
|
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
|
|
86
|
+
### Example: Documentation
|
|
150
87
|
|
|
151
|
-
**
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
98
|
+
## Investigation vs. Checking
|
|
280
99
|
|
|
281
|
-
|
|
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
|
-
|
|
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
|
-
|
|
289
|
-
- Rapid Software Testing (RST) by James Bach and Michael Bolton
|
|
108
|
+
## Red Flags: Not Context-Driven
|
|
290
109
|
|
|
291
|
-
|
|
292
|
-
-
|
|
293
|
-
-
|
|
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
|
-
|
|
116
|
+
---
|
|
296
117
|
|
|
297
|
-
|
|
118
|
+
## Agent-Assisted Context-Driven Testing
|
|
298
119
|
|
|
299
|
-
**qe-fleet-commander** analyzes context and selects appropriate agents:
|
|
300
120
|
```typescript
|
|
301
|
-
// Agent analyzes
|
|
302
|
-
const
|
|
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: ['
|
|
308
|
-
});
|
|
126
|
+
risks: ['payment-security', 'high-volume']
|
|
127
|
+
}, "qe-fleet-commander");
|
|
309
128
|
|
|
310
|
-
//
|
|
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
|
-
|
|
319
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
370
|
-
// Combined: Human judgment + Agent thoroughness
|
|
147
|
+
### Memory Namespace
|
|
371
148
|
```
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
170
|
+
---
|
|
419
171
|
|
|
420
|
-
|
|
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
|
-
|
|
432
|
-
|
|
433
|
-
|
|
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
|
-
##
|
|
190
|
+
## Remember
|
|
455
191
|
|
|
456
|
-
Context
|
|
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
|
|
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.
|