agentic-qe 1.0.5 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/agents/qe-coverage-analyzer.md +8 -0
- package/.claude/agents/qe-flaky-test-hunter.md +9 -1
- package/.claude/agents/qe-quality-analyzer.md +405 -0
- package/.claude/agents/qe-test-generator.md +7 -0
- package/.claude/agents/reasoning/agent.md +816 -0
- package/.claude/agents/reasoning/goal-planner.md +73 -0
- package/.claude/settings.json +21 -20
- package/.claude/skills/README.md +124 -0
- package/.claude/skills/agentdb-advanced/SKILL.md +550 -0
- package/.claude/skills/agentdb-learning/SKILL.md +545 -0
- package/.claude/skills/agentdb-memory-patterns/SKILL.md +339 -0
- package/.claude/skills/agentdb-optimization/SKILL.md +509 -0
- package/.claude/skills/agentdb-vector-search/SKILL.md +339 -0
- package/.claude/skills/agentic-quality-engineering/SKILL.md +604 -0
- package/.claude/skills/api-testing-patterns/SKILL.md +686 -0
- package/.claude/skills/bug-reporting-excellence/SKILL.md +632 -0
- package/.claude/skills/code-review-quality/SKILL.md +683 -0
- package/.claude/skills/consultancy-practices/SKILL.md +540 -0
- package/.claude/skills/context-driven-testing/SKILL.md +466 -0
- package/.claude/skills/exploratory-testing-advanced/SKILL.md +676 -0
- package/.claude/skills/flow-nexus-neural/SKILL.md +738 -0
- package/.claude/skills/flow-nexus-platform/SKILL.md +1157 -0
- package/.claude/skills/flow-nexus-swarm/SKILL.md +610 -0
- package/.claude/skills/github-code-review/SKILL.md +1140 -0
- package/.claude/skills/github-multi-repo/SKILL.md +874 -0
- package/.claude/skills/github-project-management/SKILL.md +1277 -0
- package/.claude/skills/github-release-management/SKILL.md +1081 -0
- package/.claude/skills/github-workflow-automation/SKILL.md +1065 -0
- package/.claude/skills/hive-mind-advanced/SKILL.md +712 -0
- package/.claude/skills/holistic-testing-pact/SKILL.md +225 -0
- package/.claude/skills/hooks-automation/SKILL.md +1201 -0
- package/.claude/skills/pair-programming/SKILL.md +1202 -0
- package/.claude/skills/performance-analysis/SKILL.md +563 -0
- package/.claude/skills/performance-testing/SKILL.md +662 -0
- package/.claude/skills/quality-metrics/SKILL.md +592 -0
- package/.claude/skills/reasoningbank-agentdb/SKILL.md +446 -0
- package/.claude/skills/reasoningbank-intelligence/SKILL.md +201 -0
- package/.claude/skills/refactoring-patterns/SKILL.md +778 -0
- package/.claude/skills/risk-based-testing/SKILL.md +721 -0
- package/.claude/skills/security-testing/SKILL.md +651 -0
- package/.claude/skills/skill-builder/SKILL.md +910 -0
- package/.claude/skills/sparc-methodology/SKILL.md +1115 -0
- package/.claude/skills/stream-chain/SKILL.md +563 -0
- package/.claude/skills/swarm-advanced/SKILL.md +973 -0
- package/.claude/skills/swarm-orchestration/SKILL.md +179 -0
- package/.claude/skills/tdd-london-chicago/SKILL.md +567 -0
- package/.claude/skills/technical-writing/SKILL.md +235 -0
- package/.claude/skills/test-automation-strategy/SKILL.md +842 -0
- package/.claude/skills/verification-quality/SKILL.md +649 -0
- package/.claude/skills/xp-practices/SKILL.md +671 -0
- package/.claude/statusline-command.sh +176 -0
- package/CHANGELOG.md +645 -1
- package/CONTRIBUTING.md +51 -0
- package/README.md +758 -162
- package/bin/aqe +90 -938
- package/config/improvement-loop.config.ts +323 -0
- package/config/neural-agent.config.ts +197 -0
- package/dist/adapters/MemoryStoreAdapter.d.ts +16 -16
- package/dist/adapters/MemoryStoreAdapter.d.ts.map +1 -1
- package/dist/adapters/MemoryStoreAdapter.js +22 -16
- package/dist/adapters/MemoryStoreAdapter.js.map +1 -1
- package/dist/agents/BaseAgent.d.ts +69 -0
- package/dist/agents/BaseAgent.d.ts.map +1 -1
- package/dist/agents/BaseAgent.js +382 -1
- package/dist/agents/BaseAgent.js.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.d.ts +69 -3
- package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.js +418 -51
- package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
- package/dist/agents/DeploymentReadinessAgent.d.ts.map +1 -1
- package/dist/agents/DeploymentReadinessAgent.js +13 -13
- package/dist/agents/DeploymentReadinessAgent.js.map +1 -1
- package/dist/agents/FlakyTestHunterAgent.d.ts +76 -4
- package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -1
- package/dist/agents/FlakyTestHunterAgent.js +375 -13
- package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
- package/dist/agents/FleetCommanderAgent.d.ts.map +1 -1
- package/dist/agents/FleetCommanderAgent.js +2 -2
- package/dist/agents/FleetCommanderAgent.js.map +1 -1
- package/dist/agents/LearningAgent.d.ts +84 -0
- package/dist/agents/LearningAgent.d.ts.map +1 -0
- package/dist/agents/LearningAgent.js +197 -0
- package/dist/agents/LearningAgent.js.map +1 -0
- package/dist/agents/NeuralAgentExtension.d.ts +117 -0
- package/dist/agents/NeuralAgentExtension.d.ts.map +1 -0
- package/dist/agents/NeuralAgentExtension.js +288 -0
- package/dist/agents/NeuralAgentExtension.js.map +1 -0
- package/dist/agents/PerformanceTesterAgent.d.ts.map +1 -1
- package/dist/agents/PerformanceTesterAgent.js +4 -3
- package/dist/agents/PerformanceTesterAgent.js.map +1 -1
- package/dist/agents/ProductionIntelligenceAgent.js +7 -7
- package/dist/agents/ProductionIntelligenceAgent.js.map +1 -1
- package/dist/agents/QualityAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/QualityAnalyzerAgent.js +2 -2
- package/dist/agents/QualityAnalyzerAgent.js.map +1 -1
- package/dist/agents/QualityGateAgent.js +5 -5
- package/dist/agents/QualityGateAgent.js.map +1 -1
- package/dist/agents/RegressionRiskAnalyzerAgent.js +7 -7
- package/dist/agents/RegressionRiskAnalyzerAgent.js.map +1 -1
- package/dist/agents/RequirementsValidatorAgent.d.ts.map +1 -1
- package/dist/agents/RequirementsValidatorAgent.js +1 -1
- package/dist/agents/RequirementsValidatorAgent.js.map +1 -1
- package/dist/agents/SecurityScannerAgent.js +6 -6
- package/dist/agents/SecurityScannerAgent.js.map +1 -1
- package/dist/agents/TestExecutorAgent.d.ts.map +1 -1
- package/dist/agents/TestExecutorAgent.js +1 -3
- package/dist/agents/TestExecutorAgent.js.map +1 -1
- package/dist/agents/TestGeneratorAgent.d.ts +53 -2
- package/dist/agents/TestGeneratorAgent.d.ts.map +1 -1
- package/dist/agents/TestGeneratorAgent.js +372 -31
- package/dist/agents/TestGeneratorAgent.js.map +1 -1
- package/dist/agents/mixins/NeuralCapableMixin.d.ts +130 -0
- package/dist/agents/mixins/NeuralCapableMixin.d.ts.map +1 -0
- package/dist/agents/mixins/NeuralCapableMixin.js +358 -0
- package/dist/agents/mixins/NeuralCapableMixin.js.map +1 -0
- package/dist/agents/mixins/QUICCapableMixin.d.ts +34 -0
- package/dist/agents/mixins/QUICCapableMixin.d.ts.map +1 -0
- package/dist/agents/mixins/QUICCapableMixin.js +346 -0
- package/dist/agents/mixins/QUICCapableMixin.js.map +1 -0
- package/dist/cli/commands/agent/index.d.ts +5 -0
- package/dist/cli/commands/agent/index.d.ts.map +1 -1
- package/dist/cli/commands/agent/index.js +11 -6
- package/dist/cli/commands/agent/index.js.map +1 -1
- package/dist/cli/commands/agent/kill.d.ts +13 -0
- package/dist/cli/commands/agent/kill.d.ts.map +1 -0
- package/dist/cli/commands/agent/kill.js +65 -0
- package/dist/cli/commands/agent/kill.js.map +1 -0
- package/dist/cli/commands/agent/list.d.ts +19 -0
- package/dist/cli/commands/agent/list.d.ts.map +1 -0
- package/dist/cli/commands/agent/list.js +92 -0
- package/dist/cli/commands/agent/list.js.map +1 -0
- package/dist/cli/commands/agent/logs.d.ts +14 -0
- package/dist/cli/commands/agent/logs.d.ts.map +1 -0
- package/dist/cli/commands/agent/logs.js +77 -0
- package/dist/cli/commands/agent/logs.js.map +1 -0
- package/dist/cli/commands/agent/metrics.d.ts +21 -0
- package/dist/cli/commands/agent/metrics.d.ts.map +1 -0
- package/dist/cli/commands/agent/metrics.js +87 -0
- package/dist/cli/commands/agent/metrics.js.map +1 -0
- package/dist/cli/commands/agent/spawn.d.ts +28 -0
- package/dist/cli/commands/agent/spawn.d.ts.map +1 -0
- package/dist/cli/commands/agent/spawn.js +83 -0
- package/dist/cli/commands/agent/spawn.js.map +1 -0
- package/dist/cli/commands/improve/index.d.ts +70 -0
- package/dist/cli/commands/improve/index.d.ts.map +1 -0
- package/dist/cli/commands/improve/index.js +530 -0
- package/dist/cli/commands/improve/index.js.map +1 -0
- package/dist/cli/commands/init.d.ts +57 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +1127 -42
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/learn/index.d.ts +68 -0
- package/dist/cli/commands/learn/index.d.ts.map +1 -0
- package/dist/cli/commands/learn/index.js +431 -0
- package/dist/cli/commands/learn/index.js.map +1 -0
- package/dist/cli/commands/patterns/index.d.ts +75 -0
- package/dist/cli/commands/patterns/index.d.ts.map +1 -0
- package/dist/cli/commands/patterns/index.js +502 -0
- package/dist/cli/commands/patterns/index.js.map +1 -0
- package/dist/cli/commands/skills/index.d.ts +51 -0
- package/dist/cli/commands/skills/index.d.ts.map +1 -0
- package/dist/cli/commands/skills/index.js +364 -0
- package/dist/cli/commands/skills/index.js.map +1 -0
- package/dist/cli/index.js +458 -8
- package/dist/cli/index.js.map +1 -1
- package/dist/core/EventBus.d.ts +38 -0
- package/dist/core/EventBus.d.ts.map +1 -1
- package/dist/core/EventBus.js +176 -31
- package/dist/core/EventBus.js.map +1 -1
- package/dist/core/FleetManager.d.ts +35 -1
- package/dist/core/FleetManager.d.ts.map +1 -1
- package/dist/core/FleetManager.js +121 -45
- package/dist/core/FleetManager.js.map +1 -1
- package/dist/core/MemoryManager.d.ts +19 -1
- package/dist/core/MemoryManager.d.ts.map +1 -1
- package/dist/core/MemoryManager.js +25 -1
- package/dist/core/MemoryManager.js.map +1 -1
- package/dist/core/embeddings/EmbeddingCache.d.ts +134 -0
- package/dist/core/embeddings/EmbeddingCache.d.ts.map +1 -0
- package/dist/core/embeddings/EmbeddingCache.js +239 -0
- package/dist/core/embeddings/EmbeddingCache.js.map +1 -0
- package/dist/core/embeddings/EmbeddingGenerator.d.ts +224 -0
- package/dist/core/embeddings/EmbeddingGenerator.d.ts.map +1 -0
- package/dist/core/embeddings/EmbeddingGenerator.js +459 -0
- package/dist/core/embeddings/EmbeddingGenerator.js.map +1 -0
- package/dist/core/embeddings/index.d.ts +15 -0
- package/dist/core/embeddings/index.d.ts.map +1 -0
- package/dist/core/embeddings/index.js +22 -0
- package/dist/core/embeddings/index.js.map +1 -0
- package/dist/core/memory/AgentDBIntegration.d.ts +35 -0
- package/dist/core/memory/AgentDBIntegration.d.ts.map +1 -0
- package/dist/core/memory/AgentDBIntegration.js +75 -0
- package/dist/core/memory/AgentDBIntegration.js.map +1 -0
- package/dist/core/memory/AgentDBManager.d.ts +200 -0
- package/dist/core/memory/AgentDBManager.d.ts.map +1 -0
- package/dist/core/memory/AgentDBManager.js +263 -0
- package/dist/core/memory/AgentDBManager.js.map +1 -0
- package/dist/core/memory/AgentDBService.d.ts +160 -0
- package/dist/core/memory/AgentDBService.d.ts.map +1 -0
- package/dist/core/memory/AgentDBService.js +450 -0
- package/dist/core/memory/AgentDBService.js.map +1 -0
- package/dist/core/memory/RealAgentDBAdapter.d.ts +51 -0
- package/dist/core/memory/RealAgentDBAdapter.d.ts.map +1 -0
- package/dist/core/memory/RealAgentDBAdapter.js +230 -0
- package/dist/core/memory/RealAgentDBAdapter.js.map +1 -0
- package/dist/core/memory/ReasoningBankAdapter.d.ts +58 -0
- package/dist/core/memory/ReasoningBankAdapter.d.ts.map +1 -0
- package/dist/core/memory/ReasoningBankAdapter.js +80 -0
- package/dist/core/memory/ReasoningBankAdapter.js.map +1 -0
- package/dist/core/memory/SwarmMemoryManager.d.ts +79 -2
- package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
- package/dist/core/memory/SwarmMemoryManager.js +243 -52
- package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
- package/dist/core/memory/index.d.ts +4 -0
- package/dist/core/memory/index.d.ts.map +1 -1
- package/dist/core/memory/index.js +9 -1
- package/dist/core/memory/index.js.map +1 -1
- package/dist/core/neural/NeuralTrainer.d.ts +137 -0
- package/dist/core/neural/NeuralTrainer.d.ts.map +1 -0
- package/dist/core/neural/NeuralTrainer.js +543 -0
- package/dist/core/neural/NeuralTrainer.js.map +1 -0
- package/dist/core/neural/index.d.ts +8 -0
- package/dist/core/neural/index.d.ts.map +1 -0
- package/dist/core/neural/index.js +24 -0
- package/dist/core/neural/index.js.map +1 -0
- package/dist/core/neural/types.d.ts +216 -0
- package/dist/core/neural/types.d.ts.map +1 -0
- package/dist/core/neural/types.js +8 -0
- package/dist/core/neural/types.js.map +1 -0
- package/dist/core/security/CertificateValidator.d.ts +130 -0
- package/dist/core/security/CertificateValidator.d.ts.map +1 -0
- package/dist/core/security/CertificateValidator.js +376 -0
- package/dist/core/security/CertificateValidator.js.map +1 -0
- package/dist/core/transport/QUICTransport.d.ts +62 -0
- package/dist/core/transport/QUICTransport.d.ts.map +1 -0
- package/dist/core/transport/QUICTransport.js +381 -0
- package/dist/core/transport/QUICTransport.js.map +1 -0
- package/dist/core/transport/SecureQUICTransport.d.ts +71 -0
- package/dist/core/transport/SecureQUICTransport.d.ts.map +1 -0
- package/dist/core/transport/SecureQUICTransport.js +253 -0
- package/dist/core/transport/SecureQUICTransport.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/learning/AdvancedFeatureExtractor.d.ts +123 -0
- package/dist/learning/AdvancedFeatureExtractor.d.ts.map +1 -0
- package/dist/learning/AdvancedFeatureExtractor.js +423 -0
- package/dist/learning/AdvancedFeatureExtractor.js.map +1 -0
- package/dist/learning/FlakyFixRecommendations.d.ts +40 -0
- package/dist/learning/FlakyFixRecommendations.d.ts.map +1 -0
- package/dist/learning/FlakyFixRecommendations.js +247 -0
- package/dist/learning/FlakyFixRecommendations.js.map +1 -0
- package/dist/learning/FlakyPredictionModel.d.ts +67 -0
- package/dist/learning/FlakyPredictionModel.d.ts.map +1 -0
- package/dist/learning/FlakyPredictionModel.js +336 -0
- package/dist/learning/FlakyPredictionModel.js.map +1 -0
- package/dist/learning/FlakyTestDetector.d.ts +55 -0
- package/dist/learning/FlakyTestDetector.d.ts.map +1 -0
- package/dist/learning/FlakyTestDetector.js +237 -0
- package/dist/learning/FlakyTestDetector.js.map +1 -0
- package/dist/learning/ImprovementLoop.d.ts +133 -0
- package/dist/learning/ImprovementLoop.d.ts.map +1 -0
- package/dist/learning/ImprovementLoop.js +412 -0
- package/dist/learning/ImprovementLoop.js.map +1 -0
- package/dist/learning/ImprovementWorker.d.ts +83 -0
- package/dist/learning/ImprovementWorker.d.ts.map +1 -0
- package/dist/learning/ImprovementWorker.js +164 -0
- package/dist/learning/ImprovementWorker.js.map +1 -0
- package/dist/learning/LearningEngine.d.ts +144 -0
- package/dist/learning/LearningEngine.d.ts.map +1 -0
- package/dist/learning/LearningEngine.js +531 -0
- package/dist/learning/LearningEngine.js.map +1 -0
- package/dist/learning/NeuralPatternMatcher.d.ts +184 -0
- package/dist/learning/NeuralPatternMatcher.d.ts.map +1 -0
- package/dist/learning/NeuralPatternMatcher.js +702 -0
- package/dist/learning/NeuralPatternMatcher.js.map +1 -0
- package/dist/learning/NeuralTrainer.d.ts +209 -0
- package/dist/learning/NeuralTrainer.d.ts.map +1 -0
- package/dist/learning/NeuralTrainer.js +478 -0
- package/dist/learning/NeuralTrainer.js.map +1 -0
- package/dist/learning/PerformanceTracker.d.ts +118 -0
- package/dist/learning/PerformanceTracker.d.ts.map +1 -0
- package/dist/learning/PerformanceTracker.js +376 -0
- package/dist/learning/PerformanceTracker.js.map +1 -0
- package/dist/learning/StatisticalAnalysis.d.ts +47 -0
- package/dist/learning/StatisticalAnalysis.d.ts.map +1 -0
- package/dist/learning/StatisticalAnalysis.js +170 -0
- package/dist/learning/StatisticalAnalysis.js.map +1 -0
- package/dist/learning/SwarmIntegration.d.ts +107 -0
- package/dist/learning/SwarmIntegration.d.ts.map +1 -0
- package/dist/learning/SwarmIntegration.js +191 -0
- package/dist/learning/SwarmIntegration.js.map +1 -0
- package/dist/learning/index.d.ts +16 -0
- package/dist/learning/index.d.ts.map +1 -0
- package/dist/learning/index.js +32 -0
- package/dist/learning/index.js.map +1 -0
- package/dist/learning/types.d.ts +289 -0
- package/dist/learning/types.d.ts.map +1 -0
- package/dist/learning/types.js +25 -0
- package/dist/learning/types.js.map +1 -0
- package/dist/mcp/MCPToolRegistry.d.ts +34 -0
- package/dist/mcp/MCPToolRegistry.d.ts.map +1 -0
- package/dist/mcp/MCPToolRegistry.js +48 -0
- package/dist/mcp/MCPToolRegistry.js.map +1 -0
- package/dist/mcp/handlers/phase2/Phase2Tools.d.ts +175 -0
- package/dist/mcp/handlers/phase2/Phase2Tools.d.ts.map +1 -0
- package/dist/mcp/handlers/phase2/Phase2Tools.js +693 -0
- package/dist/mcp/handlers/phase2/Phase2Tools.js.map +1 -0
- package/dist/mcp/server.d.ts +4 -4
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +94 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
- package/dist/mcp/services/AgentRegistry.js +7 -1
- package/dist/mcp/services/AgentRegistry.js.map +1 -1
- package/dist/mcp/tools.d.ts +15 -0
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +17 -1
- package/dist/mcp/tools.js.map +1 -1
- package/dist/reasoning/CodeSignatureGenerator.d.ts +98 -0
- package/dist/reasoning/CodeSignatureGenerator.d.ts.map +1 -0
- package/dist/reasoning/CodeSignatureGenerator.js +427 -0
- package/dist/reasoning/CodeSignatureGenerator.js.map +1 -0
- package/dist/reasoning/PatternClassifier.d.ts +98 -0
- package/dist/reasoning/PatternClassifier.d.ts.map +1 -0
- package/dist/reasoning/PatternClassifier.js +345 -0
- package/dist/reasoning/PatternClassifier.js.map +1 -0
- package/dist/reasoning/PatternExtractor.d.ts +131 -0
- package/dist/reasoning/PatternExtractor.d.ts.map +1 -0
- package/dist/reasoning/PatternExtractor.js +539 -0
- package/dist/reasoning/PatternExtractor.js.map +1 -0
- package/dist/reasoning/PatternMemoryIntegration.d.ts +102 -0
- package/dist/reasoning/PatternMemoryIntegration.d.ts.map +1 -0
- package/dist/reasoning/PatternMemoryIntegration.js +336 -0
- package/dist/reasoning/PatternMemoryIntegration.js.map +1 -0
- package/dist/reasoning/QEReasoningBank.d.ts +121 -0
- package/dist/reasoning/QEReasoningBank.d.ts.map +1 -0
- package/dist/reasoning/QEReasoningBank.js +235 -0
- package/dist/reasoning/QEReasoningBank.js.map +1 -0
- package/dist/reasoning/TestTemplateCreator.d.ts +95 -0
- package/dist/reasoning/TestTemplateCreator.d.ts.map +1 -0
- package/dist/reasoning/TestTemplateCreator.js +535 -0
- package/dist/reasoning/TestTemplateCreator.js.map +1 -0
- package/dist/reasoning/index.d.ts +10 -0
- package/dist/reasoning/index.d.ts.map +1 -0
- package/dist/reasoning/index.js +31 -0
- package/dist/reasoning/index.js.map +1 -0
- package/dist/reasoning/types.d.ts +717 -0
- package/dist/reasoning/types.d.ts.map +1 -0
- package/dist/reasoning/types.js +57 -0
- package/dist/reasoning/types.js.map +1 -0
- package/dist/transport/QUICTransport.d.ts +340 -0
- package/dist/transport/QUICTransport.d.ts.map +1 -0
- package/dist/transport/QUICTransport.js +814 -0
- package/dist/transport/QUICTransport.js.map +1 -0
- package/dist/transport/UDPTransport.d.ts +348 -0
- package/dist/transport/UDPTransport.d.ts.map +1 -0
- package/dist/transport/UDPTransport.js +820 -0
- package/dist/transport/UDPTransport.js.map +1 -0
- package/dist/types/errors.d.ts +1 -1
- package/dist/types/index.d.ts +41 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/pattern.types.d.ts +364 -0
- package/dist/types/pattern.types.d.ts.map +1 -0
- package/dist/types/pattern.types.js +60 -0
- package/dist/types/pattern.types.js.map +1 -0
- package/dist/types/quic.d.ts +339 -0
- package/dist/types/quic.d.ts.map +1 -0
- package/dist/types/quic.js +48 -0
- package/dist/types/quic.js.map +1 -0
- package/dist/utils/Config.js +1 -1
- package/dist/utils/Config.js.map +1 -1
- package/dist/utils/Database.d.ts +14 -0
- package/dist/utils/Database.d.ts.map +1 -1
- package/dist/utils/Database.js +51 -4
- package/dist/utils/Database.js.map +1 -1
- package/dist/utils/Logger.d.ts.map +1 -1
- package/dist/utils/Logger.js +111 -26
- package/dist/utils/Logger.js.map +1 -1
- package/package.json +54 -9
|
@@ -0,0 +1,466 @@
|
|
|
1
|
+
---
|
|
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.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
category: testing
|
|
6
|
+
tags: [context-driven, exploratory-testing, rapid-software-testing, test-strategy, risk-based, session-based]
|
|
7
|
+
difficulty: advanced
|
|
8
|
+
estimated_time: 45-60 minutes
|
|
9
|
+
author: user
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Context-Driven Testing
|
|
13
|
+
|
|
14
|
+
## Core Principle
|
|
15
|
+
|
|
16
|
+
**There are no "best practices" that work everywhere. There are only good practices in context.**
|
|
17
|
+
|
|
18
|
+
Context-driven testing means: skilled testers making informed decisions based on their specific project's goals, constraints, and risks.
|
|
19
|
+
|
|
20
|
+
## The Seven Basic Principles (Context-Driven School)
|
|
21
|
+
|
|
22
|
+
1. **The value of any practice depends on its context**
|
|
23
|
+
2. **There are good practices in context, but no best practices**
|
|
24
|
+
3. **People, working together, are the most important part of any project's context**
|
|
25
|
+
4. **Projects unfold over time in ways that are often not predictable**
|
|
26
|
+
5. **The product is a solution. If the problem isn't solved, the product doesn't work**
|
|
27
|
+
6. **Good software testing is a challenging intellectual process**
|
|
28
|
+
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**
|
|
29
|
+
|
|
30
|
+
## What This Means in Practice
|
|
31
|
+
|
|
32
|
+
### Question Everything
|
|
33
|
+
|
|
34
|
+
**Someone says:** "We need 100% code coverage."
|
|
35
|
+
**You ask:** "Why? What risk does that address? What's the cost? What about production monitoring?"
|
|
36
|
+
|
|
37
|
+
**Someone says:** "Everyone does test automation first."
|
|
38
|
+
**You ask:** "Do they have our constraints? Our risks? Our team skills? What problem are we actually solving?"
|
|
39
|
+
|
|
40
|
+
### Understand Your Mission
|
|
41
|
+
|
|
42
|
+
**Bad mission:** "Execute all test cases"
|
|
43
|
+
**Good mission:** "Find important problems fast enough to matter"
|
|
44
|
+
|
|
45
|
+
**Bad mission:** "Achieve 80% automation coverage"
|
|
46
|
+
**Good mission:** "Give stakeholders confidence to release while managing risk"
|
|
47
|
+
|
|
48
|
+
### Testing is Investigation
|
|
49
|
+
|
|
50
|
+
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.
|
|
51
|
+
|
|
52
|
+
**Checking:** Did this API return status 200?
|
|
53
|
+
**Testing:** Does this API actually meet user needs? What happens under load? With bad data? When dependencies fail?
|
|
54
|
+
|
|
55
|
+
## Rapid Software Testing (RST) Techniques
|
|
56
|
+
|
|
57
|
+
### Exploratory Testing
|
|
58
|
+
|
|
59
|
+
**Session-based approach:**
|
|
60
|
+
1. Charter: What are we investigating? (45-90 min session)
|
|
61
|
+
2. Explore: Use the software, vary inputs, observe behavior
|
|
62
|
+
3. Note: Document findings in real-time
|
|
63
|
+
4. Debrief: What did we learn? What's next?
|
|
64
|
+
|
|
65
|
+
**Example charter:**
|
|
66
|
+
"Explore checkout flow to discover issues with payment processing, focusing on edge cases and error handling."
|
|
67
|
+
|
|
68
|
+
**Not:** "Click through checkout following this 47-step script."
|
|
69
|
+
|
|
70
|
+
### Heuristics for Test Design
|
|
71
|
+
|
|
72
|
+
**SFDIPOT** - Quality criteria
|
|
73
|
+
- **S**tructure: Is it properly composed?
|
|
74
|
+
- **F**unction: Does it do what it's supposed to?
|
|
75
|
+
- **D**ata: Does it handle data correctly?
|
|
76
|
+
- **I**nterfaces: How does it interact with other components?
|
|
77
|
+
- **P**latform: Does it work in its environment?
|
|
78
|
+
- **O**perations: How well can it be used and managed?
|
|
79
|
+
- **T**ime: Does it handle timing issues?
|
|
80
|
+
|
|
81
|
+
**CRUSSPIC STMP** - Test techniques
|
|
82
|
+
- **C**reate, **R**ead, **U**pdate, **S**earch, **S**ort, **P**rint, **I**mport, **C**onfirm
|
|
83
|
+
- **S**tatus, **T**ourism, **M**odeling, **P**atterns
|
|
84
|
+
|
|
85
|
+
### Oracles (How to Recognize Problems)
|
|
86
|
+
|
|
87
|
+
**Consistency oracles:**
|
|
88
|
+
- Consistent with product history
|
|
89
|
+
- Consistent with similar products
|
|
90
|
+
- Consistent with user expectations
|
|
91
|
+
- Consistent with documentation
|
|
92
|
+
|
|
93
|
+
**Example:**
|
|
94
|
+
The save button works in 5 screens but fails on the 6th. Inconsistency suggests a problem.
|
|
95
|
+
|
|
96
|
+
**Comparability oracle:**
|
|
97
|
+
Compare behavior across browsers, devices, user roles, data sets.
|
|
98
|
+
|
|
99
|
+
**Inference oracle:**
|
|
100
|
+
If X is true, we can infer Y should also be true.
|
|
101
|
+
|
|
102
|
+
### Touring Heuristic
|
|
103
|
+
|
|
104
|
+
Explore the application like a tourist in different districts:
|
|
105
|
+
|
|
106
|
+
**Business District Tour:** Critical business functions
|
|
107
|
+
**Historical Tour:** Legacy features, old bugs
|
|
108
|
+
**Bad Neighborhood Tour:** Where problems cluster
|
|
109
|
+
**Tourist Tour:** What a new user sees first
|
|
110
|
+
**Museum Tour:** Help documentation and examples
|
|
111
|
+
**Intellectual Tour:** Complex features requiring thought
|
|
112
|
+
|
|
113
|
+
## Context Analysis
|
|
114
|
+
|
|
115
|
+
Before choosing testing approach, analyze:
|
|
116
|
+
|
|
117
|
+
### 1. Project Context
|
|
118
|
+
- What's the business goal?
|
|
119
|
+
- Who are the users and what do they care about?
|
|
120
|
+
- What happens if we fail?
|
|
121
|
+
- What's the competitive landscape?
|
|
122
|
+
|
|
123
|
+
### 2. Constraints
|
|
124
|
+
- Timeline (ship next week vs. next quarter)
|
|
125
|
+
- Budget (startup vs. enterprise)
|
|
126
|
+
- Skills (junior team vs. experts)
|
|
127
|
+
- Legacy (greenfield vs. 10-year codebase)
|
|
128
|
+
|
|
129
|
+
### 3. Risk Profile
|
|
130
|
+
- Safety-critical (medical device) vs. low stakes (internal tool)
|
|
131
|
+
- Regulatory requirements vs. no compliance burden
|
|
132
|
+
- High transaction volume vs. occasional use
|
|
133
|
+
- Public-facing vs. internal only
|
|
134
|
+
|
|
135
|
+
### 4. Technical Context
|
|
136
|
+
- Technology stack and its quirks
|
|
137
|
+
- Integration points and dependencies
|
|
138
|
+
- Production environment complexity
|
|
139
|
+
- Monitoring and observability maturity
|
|
140
|
+
|
|
141
|
+
## Making Context-Driven Decisions
|
|
142
|
+
|
|
143
|
+
### Example 1: Test Automation Level
|
|
144
|
+
|
|
145
|
+
**Startup context:**
|
|
146
|
+
- Small team, rapid changes, unclear product-market fit
|
|
147
|
+
- **Decision:** Light automation on critical paths, heavy exploratory testing
|
|
148
|
+
- **Rationale:** Requirements change too fast for extensive automation
|
|
149
|
+
|
|
150
|
+
**Established product context:**
|
|
151
|
+
- Stable features, regulatory requirements, large team
|
|
152
|
+
- **Decision:** Comprehensive automated regression suite
|
|
153
|
+
- **Rationale:** Stability allows automation investment to pay off
|
|
154
|
+
|
|
155
|
+
### Example 2: Documentation
|
|
156
|
+
|
|
157
|
+
**Highly regulated context:**
|
|
158
|
+
- FDA/medical device requirements
|
|
159
|
+
- **Decision:** Detailed test protocols, traceability matrices
|
|
160
|
+
- **Rationale:** Regulatory compliance isn't optional
|
|
161
|
+
|
|
162
|
+
**Fast-paced startup:**
|
|
163
|
+
- Minimal compliance needs
|
|
164
|
+
- **Decision:** Lightweight session notes, risk logs
|
|
165
|
+
- **Rationale:** Bureaucracy slows down more than it helps
|
|
166
|
+
|
|
167
|
+
## Common Misconceptions
|
|
168
|
+
|
|
169
|
+
**"Context-driven means no process."**
|
|
170
|
+
False. It means choosing processes that fit your context, not blindly following standards.
|
|
171
|
+
|
|
172
|
+
**"Context-driven means no automation."**
|
|
173
|
+
False. It means automating what makes sense in your context, not achieving arbitrary coverage goals.
|
|
174
|
+
|
|
175
|
+
**"Context-driven means no documentation."**
|
|
176
|
+
False. It means documenting what's valuable in your context, not creating docs no one reads.
|
|
177
|
+
|
|
178
|
+
**"Context-driven means testing is unstructured."**
|
|
179
|
+
False. Skilled exploratory testing is highly structured thinking, just not scripted.
|
|
180
|
+
|
|
181
|
+
## Skills Required
|
|
182
|
+
|
|
183
|
+
Context-driven testing isn't a shortcut. It requires:
|
|
184
|
+
|
|
185
|
+
### Technical Skills
|
|
186
|
+
- Understanding architecture and code
|
|
187
|
+
- Ability to use testing tools effectively
|
|
188
|
+
- Debug issues when found
|
|
189
|
+
- Understand what's possible and what's hard
|
|
190
|
+
|
|
191
|
+
### Domain Knowledge
|
|
192
|
+
- Understand the business problem
|
|
193
|
+
- Know the users and their goals
|
|
194
|
+
- Recognize what matters vs. what's trivial
|
|
195
|
+
|
|
196
|
+
### Testing Craft
|
|
197
|
+
- Heuristics and oracles
|
|
198
|
+
- Test design techniques
|
|
199
|
+
- Risk analysis
|
|
200
|
+
- Bug investigation
|
|
201
|
+
|
|
202
|
+
### Social Skills
|
|
203
|
+
- Communicate findings clearly
|
|
204
|
+
- Navigate organizational politics
|
|
205
|
+
- Collaborate with diverse stakeholders
|
|
206
|
+
- Say "I don't know" when you don't
|
|
207
|
+
|
|
208
|
+
## Red Flags: You're Not Being Context-Driven
|
|
209
|
+
|
|
210
|
+
- You follow a process "because that's how it's done"
|
|
211
|
+
- You can't explain *why* you're doing something
|
|
212
|
+
- You measure test cases executed instead of problems found
|
|
213
|
+
- You treat testing as checking against requirements only
|
|
214
|
+
- You don't talk to users or stakeholders
|
|
215
|
+
- Your test plan could apply to any project
|
|
216
|
+
- You stop thinking once you have a script
|
|
217
|
+
|
|
218
|
+
## Questions to Ask Constantly
|
|
219
|
+
|
|
220
|
+
**"What problem am I solving?"**
|
|
221
|
+
Not "What does the process say to do?" but "What actual problem needs solving?"
|
|
222
|
+
|
|
223
|
+
**"Who cares about this?"**
|
|
224
|
+
If no one cares, maybe it doesn't matter.
|
|
225
|
+
|
|
226
|
+
**"What's the risk if I'm wrong?"**
|
|
227
|
+
High risk = more rigor. Low risk = lighter touch.
|
|
228
|
+
|
|
229
|
+
**"What's the cost of this activity?"**
|
|
230
|
+
Time spent here can't be spent elsewhere. Worth it?
|
|
231
|
+
|
|
232
|
+
**"Is there a better way?"**
|
|
233
|
+
Given my actual constraints, not ideal conditions.
|
|
234
|
+
|
|
235
|
+
## Practical Tips
|
|
236
|
+
|
|
237
|
+
### 1. Start with Risk Assessment
|
|
238
|
+
List features. For each, ask:
|
|
239
|
+
- How likely is it to fail?
|
|
240
|
+
- How bad if it fails?
|
|
241
|
+
- How hard to test?
|
|
242
|
+
|
|
243
|
+
Focus on high-risk areas.
|
|
244
|
+
|
|
245
|
+
### 2. Time-box Exploration
|
|
246
|
+
You can explore forever. Set limits:
|
|
247
|
+
- 2 hours exploring checkout
|
|
248
|
+
- 30 minutes investigating error handling
|
|
249
|
+
- 15 minutes with each browser
|
|
250
|
+
|
|
251
|
+
### 3. Document Discoveries, Not Plans
|
|
252
|
+
Don't write test cases you'll execute later. Document what you learned as you test.
|
|
253
|
+
|
|
254
|
+
**Test case:** "Enter invalid email, verify error message"
|
|
255
|
+
**Discovery:** "Payment API returns 500 instead of 400 for malformed email, no user-visible error. Investigated logs: gateway expects specific format. Bug filed."
|
|
256
|
+
|
|
257
|
+
### 4. Talk to Humans
|
|
258
|
+
- Developers (how it's built, what worried them)
|
|
259
|
+
- Users (what they actually do)
|
|
260
|
+
- Support (common problems)
|
|
261
|
+
- Product (business priorities)
|
|
262
|
+
|
|
263
|
+
### 5. Pair with Others
|
|
264
|
+
- Pair testing sessions uncover more than solo work
|
|
265
|
+
- Different perspectives = different bugs found
|
|
266
|
+
- Teaching others clarifies your own thinking
|
|
267
|
+
|
|
268
|
+
## When to Use Scripted Tests
|
|
269
|
+
|
|
270
|
+
Context-driven doesn't mean "never script." Use scripts when:
|
|
271
|
+
|
|
272
|
+
- Compliance requires documented test procedures
|
|
273
|
+
- Testing is truly repetitive (regression after each deploy)
|
|
274
|
+
- Training new team members on how to test
|
|
275
|
+
- Need to precisely reproduce an issue
|
|
276
|
+
|
|
277
|
+
But even then, leave room for exploration around the scripts.
|
|
278
|
+
|
|
279
|
+
## Evolution with Experience
|
|
280
|
+
|
|
281
|
+
**Novice:** Needs structure, follows steps, can't adapt yet
|
|
282
|
+
**Competent:** Understands tradeoffs, makes informed choices
|
|
283
|
+
**Expert:** Intuitively adjusts approach, sees patterns others miss
|
|
284
|
+
|
|
285
|
+
Context-driven testing requires competence. Invest in skill development.
|
|
286
|
+
|
|
287
|
+
## Resources
|
|
288
|
+
|
|
289
|
+
**Books:**
|
|
290
|
+
- **Lessons Learned in Software Testing** by Kaner, Bach, Pettichord
|
|
291
|
+
- **Explore It!** by Elisabeth Hendrickson
|
|
292
|
+
- **Perfect Software and Other Illusions About Testing** by Gerald Weinberg
|
|
293
|
+
|
|
294
|
+
**Courses:**
|
|
295
|
+
- Rapid Software Testing (RST) by James Bach and Michael Bolton
|
|
296
|
+
|
|
297
|
+
**Communities:**
|
|
298
|
+
- Association for Software Testing (AST)
|
|
299
|
+
- Ministry of Testing community
|
|
300
|
+
|
|
301
|
+
## Using with QE Agents
|
|
302
|
+
|
|
303
|
+
### Context-Aware Agent Selection
|
|
304
|
+
|
|
305
|
+
**qe-fleet-commander** analyzes context and selects appropriate agents:
|
|
306
|
+
```typescript
|
|
307
|
+
// Agent analyzes project context
|
|
308
|
+
const contextAnalysis = await agent.analyzeContext({
|
|
309
|
+
project: 'e-commerce-platform',
|
|
310
|
+
stage: 'startup',
|
|
311
|
+
team: 'small',
|
|
312
|
+
constraints: ['timeline: tight', 'budget: limited'],
|
|
313
|
+
risks: ['high-transaction-volume', 'payment-security']
|
|
314
|
+
});
|
|
315
|
+
|
|
316
|
+
// Recommends agents based on context:
|
|
317
|
+
// - qe-security-scanner (critical risk)
|
|
318
|
+
// - qe-performance-tester (high volume)
|
|
319
|
+
// - Skip: qe-visual-tester (low priority in startup context)
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
### Adaptive Testing Strategy
|
|
323
|
+
|
|
324
|
+
Agents adjust their approach based on context:
|
|
325
|
+
```typescript
|
|
326
|
+
// Startup context: Fast exploratory testing
|
|
327
|
+
await qe-test-generator.generate({
|
|
328
|
+
context: 'startup',
|
|
329
|
+
focus: 'critical-paths-only',
|
|
330
|
+
depth: 'smoke-tests',
|
|
331
|
+
automation: 'minimal'
|
|
332
|
+
});
|
|
333
|
+
|
|
334
|
+
// Regulated industry: Comprehensive documentation
|
|
335
|
+
await qe-test-generator.generate({
|
|
336
|
+
context: 'medical-device',
|
|
337
|
+
focus: 'comprehensive-coverage',
|
|
338
|
+
depth: 'extensive',
|
|
339
|
+
automation: 'extensive',
|
|
340
|
+
documentation: 'full-traceability'
|
|
341
|
+
});
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
### Context-Driven Risk Assessment
|
|
345
|
+
|
|
346
|
+
**qe-regression-risk-analyzer** applies context to risk scoring:
|
|
347
|
+
```typescript
|
|
348
|
+
// Agent weights risk factors based on context
|
|
349
|
+
const riskAnalysis = await agent.analyzeWithContext({
|
|
350
|
+
feature: 'payment-processing',
|
|
351
|
+
context: {
|
|
352
|
+
industry: 'fintech', // High regulatory risk
|
|
353
|
+
userBase: 'enterprise', // High reputational risk
|
|
354
|
+
maturity: 'early-stage' // Higher technical risk
|
|
355
|
+
}
|
|
356
|
+
});
|
|
357
|
+
|
|
358
|
+
// Risk score adjusted by context:
|
|
359
|
+
// - Same feature in different context = different risk level
|
|
360
|
+
// - fintech payment: CRITICAL
|
|
361
|
+
// - internal tool payment: MEDIUM
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
### Human-Agent Collaborative Investigation
|
|
365
|
+
|
|
366
|
+
```typescript
|
|
367
|
+
// Agent assists in exploratory testing (context-driven approach)
|
|
368
|
+
const session = await qe-flaky-test-hunter.exploreWithHuman({
|
|
369
|
+
charter: 'Investigate auth edge cases',
|
|
370
|
+
humanRole: 'navigator', // Human guides strategy
|
|
371
|
+
agentRole: 'executor', // Agent executes variations
|
|
372
|
+
style: 'rapid-software-testing'
|
|
373
|
+
});
|
|
374
|
+
|
|
375
|
+
// Agent generates variations, human recognizes problems
|
|
376
|
+
// Combined: Human judgment + Agent thoroughness
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
### Context-Specific Agent Behavior
|
|
380
|
+
|
|
381
|
+
```typescript
|
|
382
|
+
// Agent adapts questioning style based on context
|
|
383
|
+
await qe-requirements-validator.validate({
|
|
384
|
+
requirements: userStories,
|
|
385
|
+
context: 'safety-critical', // Medical device
|
|
386
|
+
rigor: 'strict', // Question everything
|
|
387
|
+
documentation: 'mandatory'
|
|
388
|
+
});
|
|
389
|
+
|
|
390
|
+
// vs.
|
|
391
|
+
|
|
392
|
+
await qe-requirements-validator.validate({
|
|
393
|
+
requirements: userStories,
|
|
394
|
+
context: 'prototype', // Early MVP
|
|
395
|
+
rigor: 'lightweight', // Accept ambiguity
|
|
396
|
+
documentation: 'minimal'
|
|
397
|
+
});
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
### Fleet Coordination with Context Awareness
|
|
401
|
+
|
|
402
|
+
```typescript
|
|
403
|
+
// Agents coordinate based on project context
|
|
404
|
+
const contextFleet = await FleetManager.coordinate({
|
|
405
|
+
strategy: 'context-driven',
|
|
406
|
+
context: {
|
|
407
|
+
type: 'greenfield-saas',
|
|
408
|
+
stage: 'growth',
|
|
409
|
+
compliance: 'gdpr-only'
|
|
410
|
+
},
|
|
411
|
+
agents: [
|
|
412
|
+
'qe-test-generator', // Balanced automation
|
|
413
|
+
'qe-security-scanner', // GDPR focus
|
|
414
|
+
'qe-performance-tester', // Scalability critical
|
|
415
|
+
'qe-flaky-test-hunter' // Maintain velocity
|
|
416
|
+
],
|
|
417
|
+
exclude: [
|
|
418
|
+
'qe-visual-tester', // Not priority
|
|
419
|
+
'qe-requirements-validator' // Too heavyweight
|
|
420
|
+
]
|
|
421
|
+
});
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
### Agent Learning from Context
|
|
425
|
+
|
|
426
|
+
```typescript
|
|
427
|
+
// Agents learn what works in your specific context
|
|
428
|
+
await qe-quality-analyzer.learnFromContext({
|
|
429
|
+
timeframe: '90d',
|
|
430
|
+
analyze: [
|
|
431
|
+
'which-tests-found-most-bugs',
|
|
432
|
+
'which-approaches-caught-regressions',
|
|
433
|
+
'what-metrics-predicted-quality'
|
|
434
|
+
]
|
|
435
|
+
});
|
|
436
|
+
|
|
437
|
+
// Agent adapts recommendations to your context
|
|
438
|
+
// "In your context: exploratory testing finds 3x more critical bugs than scripted"
|
|
439
|
+
// "Automation ROI is low for features changed >2x/week"
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
---
|
|
443
|
+
|
|
444
|
+
## Related Skills
|
|
445
|
+
|
|
446
|
+
**Core Quality Practices:**
|
|
447
|
+
- [agentic-quality-engineering](../agentic-quality-engineering/) - Context-driven agent selection
|
|
448
|
+
- [holistic-testing-pact](../holistic-testing-pact/) - Adapt holistic model to context
|
|
449
|
+
|
|
450
|
+
**Testing Approaches:**
|
|
451
|
+
- [risk-based-testing](../risk-based-testing/) - Context affects risk assessment
|
|
452
|
+
- [exploratory-testing-advanced](../exploratory-testing-advanced/) - RST techniques
|
|
453
|
+
- [test-automation-strategy](../test-automation-strategy/) - Context determines automation approach
|
|
454
|
+
|
|
455
|
+
**Development Practices:**
|
|
456
|
+
- [xp-practices](../xp-practices/) - Context-driven XP adoption
|
|
457
|
+
|
|
458
|
+
---
|
|
459
|
+
|
|
460
|
+
## Final Thought
|
|
461
|
+
|
|
462
|
+
Context-driven testing is intellectually demanding. It requires constant thinking, learning, and adaptation. That's also what makes it effective and fulfilling.
|
|
463
|
+
|
|
464
|
+
You're not a test script executor. You're a skilled investigator helping teams build better products.
|
|
465
|
+
|
|
466
|
+
**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.
|