agentic-qe 1.4.4 → 1.5.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/qe-api-contract-validator.md +133 -27
- package/.claude/agents/qe-api-contract-validator.md.backup +1148 -0
- package/.claude/agents/qe-api-contract-validator.md.backup-20251107-134747 +1148 -0
- package/.claude/agents/qe-api-contract-validator.md.backup-phase2-20251107-140039 +1123 -0
- package/.claude/agents/qe-chaos-engineer.md +142 -23
- package/.claude/agents/qe-chaos-engineer.md.backup +808 -0
- package/.claude/agents/qe-chaos-engineer.md.backup-20251107-134747 +808 -0
- package/.claude/agents/qe-chaos-engineer.md.backup-phase2-20251107-140039 +787 -0
- package/.claude/agents/qe-code-complexity.md +111 -23
- package/.claude/agents/qe-code-complexity.md.backup +291 -0
- package/.claude/agents/qe-code-complexity.md.backup-20251107-134747 +291 -0
- package/.claude/agents/qe-code-complexity.md.backup-phase2-20251107-140039 +286 -0
- package/.claude/agents/qe-coverage-analyzer.md +306 -30
- package/.claude/agents/qe-coverage-analyzer.md.backup +467 -0
- package/.claude/agents/qe-coverage-analyzer.md.backup-20251107-134747 +467 -0
- package/.claude/agents/qe-coverage-analyzer.md.backup-phase2-20251107-140039 +438 -0
- package/.claude/agents/qe-deployment-readiness.md +84 -28
- package/.claude/agents/qe-deployment-readiness.md.backup +1166 -0
- package/.claude/agents/qe-deployment-readiness.md.backup-20251107-134747 +1166 -0
- package/.claude/agents/qe-deployment-readiness.md.backup-phase2-20251107-140039 +1140 -0
- package/.claude/agents/qe-flaky-test-hunter.md +277 -35
- package/.claude/agents/qe-flaky-test-hunter.md.backup +1195 -0
- package/.claude/agents/qe-flaky-test-hunter.md.backup-20251107-134747 +1195 -0
- package/.claude/agents/qe-flaky-test-hunter.md.backup-phase2-20251107-140039 +1162 -0
- package/.claude/agents/qe-fleet-commander.md +126 -23
- package/.claude/agents/qe-fleet-commander.md.backup +718 -0
- package/.claude/agents/qe-fleet-commander.md.backup-20251107-134747 +718 -0
- package/.claude/agents/qe-fleet-commander.md.backup-phase2-20251107-140039 +697 -0
- package/.claude/agents/qe-performance-tester.md +314 -57
- package/.claude/agents/qe-performance-tester.md.backup +428 -0
- package/.claude/agents/qe-performance-tester.md.backup-20251107-134747 +428 -0
- package/.claude/agents/qe-performance-tester.md.backup-phase2-20251107-140039 +372 -0
- package/.claude/agents/qe-production-intelligence.md +126 -27
- package/.claude/agents/qe-production-intelligence.md.backup +1219 -0
- package/.claude/agents/qe-production-intelligence.md.backup-20251107-134747 +1219 -0
- package/.claude/agents/qe-production-intelligence.md.backup-phase2-20251107-140039 +1194 -0
- package/.claude/agents/qe-quality-analyzer.md +127 -32
- package/.claude/agents/qe-quality-analyzer.md.backup +425 -0
- package/.claude/agents/qe-quality-analyzer.md.backup-20251107-134747 +425 -0
- package/.claude/agents/qe-quality-analyzer.md.backup-phase2-20251107-140039 +394 -0
- package/.claude/agents/qe-quality-gate.md +148 -33
- package/.claude/agents/qe-quality-gate.md.backup +446 -0
- package/.claude/agents/qe-quality-gate.md.backup-20251107-134747 +446 -0
- package/.claude/agents/qe-quality-gate.md.backup-phase2-20251107-140039 +415 -0
- package/.claude/agents/qe-regression-risk-analyzer.md +78 -27
- package/.claude/agents/qe-regression-risk-analyzer.md.backup +1009 -0
- package/.claude/agents/qe-regression-risk-analyzer.md.backup-20251107-134747 +1009 -0
- package/.claude/agents/qe-regression-risk-analyzer.md.backup-phase2-20251107-140039 +984 -0
- package/.claude/agents/qe-requirements-validator.md +131 -27
- package/.claude/agents/qe-requirements-validator.md.backup +748 -0
- package/.claude/agents/qe-requirements-validator.md.backup-20251107-134747 +748 -0
- package/.claude/agents/qe-requirements-validator.md.backup-phase2-20251107-140039 +723 -0
- package/.claude/agents/qe-security-scanner.md +137 -62
- package/.claude/agents/qe-security-scanner.md.backup +634 -0
- package/.claude/agents/qe-security-scanner.md.backup-20251107-134747 +634 -0
- package/.claude/agents/qe-security-scanner.md.backup-phase2-20251107-140039 +573 -0
- package/.claude/agents/qe-test-data-architect.md +129 -26
- package/.claude/agents/qe-test-data-architect.md.backup +1064 -0
- package/.claude/agents/qe-test-data-architect.md.backup-20251107-134747 +1064 -0
- package/.claude/agents/qe-test-data-architect.md.backup-phase2-20251107-140039 +1040 -0
- package/.claude/agents/qe-test-executor.md +165 -21
- package/.claude/agents/qe-test-executor.md.backup +389 -0
- package/.claude/agents/qe-test-executor.md.backup-20251107-134747 +389 -0
- package/.claude/agents/qe-test-executor.md.backup-phase2-20251107-140039 +369 -0
- package/.claude/agents/qe-test-generator.md +379 -34
- package/.claude/agents/qe-test-generator.md.backup +997 -0
- package/.claude/agents/qe-test-generator.md.backup-20251107-134747 +997 -0
- package/.claude/agents/qe-visual-tester.md +236 -23
- package/.claude/agents/qe-visual-tester.md.backup +777 -0
- package/.claude/agents/qe-visual-tester.md.backup-20251107-134747 +777 -0
- package/.claude/agents/qe-visual-tester.md.backup-phase2-20251107-140039 +756 -0
- package/.claude/agents/subagents/qe-code-reviewer.md +59 -0
- package/.claude/agents/subagents/qe-data-generator.md +60 -0
- package/.claude/agents/subagents/qe-integration-tester.md +77 -0
- package/.claude/agents/subagents/qe-performance-validator.md +55 -0
- package/.claude/agents/subagents/qe-security-auditor.md +51 -0
- package/.claude/agents/subagents/qe-test-implementer.md +371 -0
- package/.claude/agents/subagents/qe-test-refactorer.md +510 -0
- package/.claude/agents/subagents/qe-test-writer.md +603 -0
- package/.claude/skills/accessibility-testing/SKILL.md +764 -777
- package/.claude/skills/agentic-quality-engineering/SKILL.md +0 -6
- package/.claude/skills/api-testing-patterns/SKILL.md +0 -12
- package/.claude/skills/bug-reporting-excellence/SKILL.md +0 -6
- package/.claude/skills/chaos-engineering-resilience/SKILL.md +0 -6
- package/.claude/skills/code-review-quality/SKILL.md +0 -6
- package/.claude/skills/compatibility-testing/SKILL.md +0 -6
- package/.claude/skills/compliance-testing/SKILL.md +0 -6
- package/.claude/skills/consultancy-practices/SKILL.md +0 -6
- package/.claude/skills/context-driven-testing/SKILL.md +0 -6
- package/.claude/skills/contract-testing/SKILL.md +0 -6
- package/.claude/skills/database-testing/SKILL.md +0 -6
- package/.claude/skills/exploratory-testing-advanced/SKILL.md +0 -6
- package/.claude/skills/holistic-testing-pact/SKILL.md +0 -6
- package/.claude/skills/localization-testing/SKILL.md +0 -6
- package/.claude/skills/mobile-testing/SKILL.md +535 -548
- package/.claude/skills/mutation-testing/SKILL.md +0 -6
- package/.claude/skills/performance-testing/SKILL.md +0 -6
- package/.claude/skills/quality-metrics/SKILL.md +0 -12
- package/.claude/skills/refactoring-patterns/SKILL.md +0 -6
- package/.claude/skills/regression-testing/SKILL.md +1033 -1045
- package/.claude/skills/risk-based-testing/SKILL.md +0 -12
- package/.claude/skills/security-testing/SKILL.md +0 -6
- package/.claude/skills/shift-left-testing/SKILL.md +529 -535
- package/.claude/skills/shift-right-testing/SKILL.md +585 -591
- package/.claude/skills/tdd-london-chicago/SKILL.md +0 -6
- package/.claude/skills/technical-writing/SKILL.md +0 -6
- package/.claude/skills/test-automation-strategy/SKILL.md +0 -6
- package/.claude/skills/test-data-management/SKILL.md +1054 -1067
- package/.claude/skills/test-design-techniques/SKILL.md +0 -6
- package/.claude/skills/test-environment-management/SKILL.md +0 -6
- package/.claude/skills/test-reporting-analytics/SKILL.md +0 -6
- package/.claude/skills/visual-testing-advanced/SKILL.md +0 -6
- package/.claude/skills/xp-practices/SKILL.md +0 -6
- package/CHANGELOG.md +426 -5
- package/README.md +24 -19
- package/dist/cli/commands/init.d.ts +4 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +97 -44
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/mcp/handlers/coordination/index.d.ts +14 -14
- package/dist/mcp/handlers/coordination/index.d.ts.map +1 -1
- package/dist/mcp/handlers/coordination/index.js +14 -14
- package/dist/mcp/handlers/coordination/index.js.map +1 -1
- package/dist/mcp/handlers/phase2/Phase2Tools.d.ts.map +1 -1
- package/dist/mcp/handlers/phase2/Phase2Tools.js +39 -10
- package/dist/mcp/handlers/phase2/Phase2Tools.js.map +1 -1
- package/dist/mcp/handlers/phase3/Phase3DomainTools.d.ts +63 -0
- package/dist/mcp/handlers/phase3/Phase3DomainTools.d.ts.map +1 -0
- package/dist/mcp/handlers/phase3/Phase3DomainTools.js +885 -0
- package/dist/mcp/handlers/phase3/Phase3DomainTools.js.map +1 -0
- package/dist/mcp/handlers/phase3/index.d.ts +6 -0
- package/dist/mcp/handlers/phase3/index.d.ts.map +1 -0
- package/dist/mcp/handlers/phase3/index.js +10 -0
- package/dist/mcp/handlers/phase3/index.js.map +1 -0
- package/dist/mcp/handlers/prediction/index.d.ts +10 -10
- package/dist/mcp/handlers/prediction/index.d.ts.map +1 -1
- package/dist/mcp/handlers/prediction/index.js +10 -10
- package/dist/mcp/handlers/prediction/index.js.map +1 -1
- package/dist/mcp/handlers/security/check-authz.d.ts +152 -0
- package/dist/mcp/handlers/security/check-authz.d.ts.map +1 -0
- package/dist/mcp/handlers/security/check-authz.js +434 -0
- package/dist/mcp/handlers/security/check-authz.js.map +1 -0
- package/dist/mcp/handlers/security/generate-report.d.ts +156 -0
- package/dist/mcp/handlers/security/generate-report.d.ts.map +1 -0
- package/dist/mcp/handlers/security/generate-report.js +469 -0
- package/dist/mcp/handlers/security/generate-report.js.map +1 -0
- package/dist/mcp/handlers/security/index.d.ts +80 -0
- package/dist/mcp/handlers/security/index.d.ts.map +1 -0
- package/dist/mcp/handlers/security/index.js +91 -0
- package/dist/mcp/handlers/security/index.js.map +1 -0
- package/dist/mcp/handlers/security/scan-comprehensive.d.ts +66 -0
- package/dist/mcp/handlers/security/scan-comprehensive.d.ts.map +1 -0
- package/dist/mcp/handlers/security/scan-comprehensive.js +296 -0
- package/dist/mcp/handlers/security/scan-comprehensive.js.map +1 -0
- package/dist/mcp/handlers/security/scan-dependencies.d.ts +148 -0
- package/dist/mcp/handlers/security/scan-dependencies.d.ts.map +1 -0
- package/dist/mcp/handlers/security/scan-dependencies.js +354 -0
- package/dist/mcp/handlers/security/scan-dependencies.js.map +1 -0
- package/dist/mcp/handlers/security/validate-auth.d.ts +128 -0
- package/dist/mcp/handlers/security/validate-auth.d.ts.map +1 -0
- package/dist/mcp/handlers/security/validate-auth.js +294 -0
- package/dist/mcp/handlers/security/validate-auth.js.map +1 -0
- package/dist/mcp/handlers/test/generate-integration-tests.d.ts +95 -0
- package/dist/mcp/handlers/test/generate-integration-tests.d.ts.map +1 -0
- package/dist/mcp/handlers/test/generate-integration-tests.js +286 -0
- package/dist/mcp/handlers/test/generate-integration-tests.js.map +1 -0
- package/dist/mcp/handlers/test/generate-unit-tests.d.ts +89 -0
- package/dist/mcp/handlers/test/generate-unit-tests.d.ts.map +1 -0
- package/dist/mcp/handlers/test/generate-unit-tests.js +273 -0
- package/dist/mcp/handlers/test/generate-unit-tests.js.map +1 -0
- package/dist/mcp/handlers/test/optimize-test-suite.d.ts +97 -0
- package/dist/mcp/handlers/test/optimize-test-suite.d.ts.map +1 -0
- package/dist/mcp/handlers/test/optimize-test-suite.js +282 -0
- package/dist/mcp/handlers/test/optimize-test-suite.js.map +1 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +211 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/deprecated.d.ts +1390 -0
- package/dist/mcp/tools/deprecated.d.ts.map +1 -0
- package/dist/mcp/tools/deprecated.js +859 -0
- package/dist/mcp/tools/deprecated.js.map +1 -0
- package/dist/mcp/tools/qe/api-contract/index.d.ts +138 -0
- package/dist/mcp/tools/qe/api-contract/index.d.ts.map +1 -0
- package/dist/mcp/tools/qe/api-contract/index.js +572 -0
- package/dist/mcp/tools/qe/api-contract/index.js.map +1 -0
- package/dist/mcp/tools/qe/code-quality/analyze-complexity.d.ts +110 -0
- package/dist/mcp/tools/qe/code-quality/analyze-complexity.d.ts.map +1 -0
- package/dist/mcp/tools/qe/code-quality/analyze-complexity.js +381 -0
- package/dist/mcp/tools/qe/code-quality/analyze-complexity.js.map +1 -0
- package/dist/mcp/tools/qe/code-quality/calculate-quality-metrics.d.ts +115 -0
- package/dist/mcp/tools/qe/code-quality/calculate-quality-metrics.d.ts.map +1 -0
- package/dist/mcp/tools/qe/code-quality/calculate-quality-metrics.js +461 -0
- package/dist/mcp/tools/qe/code-quality/calculate-quality-metrics.js.map +1 -0
- package/dist/mcp/tools/qe/code-quality/index.d.ts +12 -0
- package/dist/mcp/tools/qe/code-quality/index.d.ts.map +1 -0
- package/dist/mcp/tools/qe/code-quality/index.js +30 -0
- package/dist/mcp/tools/qe/code-quality/index.js.map +1 -0
- package/dist/mcp/tools/qe/coverage/analyze-with-risk-scoring.d.ts +58 -0
- package/dist/mcp/tools/qe/coverage/analyze-with-risk-scoring.d.ts.map +1 -0
- package/dist/mcp/tools/qe/coverage/analyze-with-risk-scoring.js +172 -0
- package/dist/mcp/tools/qe/coverage/analyze-with-risk-scoring.js.map +1 -0
- package/dist/mcp/tools/qe/coverage/calculate-trends.d.ts +73 -0
- package/dist/mcp/tools/qe/coverage/calculate-trends.d.ts.map +1 -0
- package/dist/mcp/tools/qe/coverage/calculate-trends.js +240 -0
- package/dist/mcp/tools/qe/coverage/calculate-trends.js.map +1 -0
- package/dist/mcp/tools/qe/coverage/detect-gaps-ml.d.ts +38 -0
- package/dist/mcp/tools/qe/coverage/detect-gaps-ml.d.ts.map +1 -0
- package/dist/mcp/tools/qe/coverage/detect-gaps-ml.js +204 -0
- package/dist/mcp/tools/qe/coverage/detect-gaps-ml.js.map +1 -0
- package/dist/mcp/tools/qe/coverage/index.d.ts +12 -0
- package/dist/mcp/tools/qe/coverage/index.d.ts.map +1 -0
- package/dist/mcp/tools/qe/coverage/index.js +23 -0
- package/dist/mcp/tools/qe/coverage/index.js.map +1 -0
- package/dist/mcp/tools/qe/coverage/recommend-tests.d.ts +46 -0
- package/dist/mcp/tools/qe/coverage/recommend-tests.d.ts.map +1 -0
- package/dist/mcp/tools/qe/coverage/recommend-tests.js +248 -0
- package/dist/mcp/tools/qe/coverage/recommend-tests.js.map +1 -0
- package/dist/mcp/tools/qe/flaky-detection/analyze-patterns.d.ts +179 -0
- package/dist/mcp/tools/qe/flaky-detection/analyze-patterns.d.ts.map +1 -0
- package/dist/mcp/tools/qe/flaky-detection/analyze-patterns.js +554 -0
- package/dist/mcp/tools/qe/flaky-detection/analyze-patterns.js.map +1 -0
- package/dist/mcp/tools/qe/flaky-detection/detect-statistical.d.ts +172 -0
- package/dist/mcp/tools/qe/flaky-detection/detect-statistical.d.ts.map +1 -0
- package/dist/mcp/tools/qe/flaky-detection/detect-statistical.js +498 -0
- package/dist/mcp/tools/qe/flaky-detection/detect-statistical.js.map +1 -0
- package/dist/mcp/tools/qe/flaky-detection/index.d.ts +35 -0
- package/dist/mcp/tools/qe/flaky-detection/index.d.ts.map +1 -0
- package/dist/mcp/tools/qe/flaky-detection/index.js +66 -0
- package/dist/mcp/tools/qe/flaky-detection/index.js.map +1 -0
- package/dist/mcp/tools/qe/flaky-detection/stabilize-auto.d.ts +159 -0
- package/dist/mcp/tools/qe/flaky-detection/stabilize-auto.d.ts.map +1 -0
- package/dist/mcp/tools/qe/flaky-detection/stabilize-auto.js +462 -0
- package/dist/mcp/tools/qe/flaky-detection/stabilize-auto.js.map +1 -0
- package/dist/mcp/tools/qe/fleet/index.d.ts +422 -0
- package/dist/mcp/tools/qe/fleet/index.d.ts.map +1 -0
- package/dist/mcp/tools/qe/fleet/index.js +652 -0
- package/dist/mcp/tools/qe/fleet/index.js.map +1 -0
- package/dist/mcp/tools/qe/performance/analyze-bottlenecks.d.ts +180 -0
- package/dist/mcp/tools/qe/performance/analyze-bottlenecks.d.ts.map +1 -0
- package/dist/mcp/tools/qe/performance/analyze-bottlenecks.js +347 -0
- package/dist/mcp/tools/qe/performance/analyze-bottlenecks.js.map +1 -0
- package/dist/mcp/tools/qe/performance/generate-report.d.ts +146 -0
- package/dist/mcp/tools/qe/performance/generate-report.d.ts.map +1 -0
- package/dist/mcp/tools/qe/performance/generate-report.js +354 -0
- package/dist/mcp/tools/qe/performance/generate-report.js.map +1 -0
- package/dist/mcp/tools/qe/performance/index.d.ts +13 -0
- package/dist/mcp/tools/qe/performance/index.d.ts.map +1 -0
- package/dist/mcp/tools/qe/performance/index.js +24 -0
- package/dist/mcp/tools/qe/performance/index.js.map +1 -0
- package/dist/mcp/tools/qe/performance/monitor-realtime.d.ts +120 -0
- package/dist/mcp/tools/qe/performance/monitor-realtime.d.ts.map +1 -0
- package/dist/mcp/tools/qe/performance/monitor-realtime.js +215 -0
- package/dist/mcp/tools/qe/performance/monitor-realtime.js.map +1 -0
- package/dist/mcp/tools/qe/performance/run-benchmark.d.ts +68 -0
- package/dist/mcp/tools/qe/performance/run-benchmark.d.ts.map +1 -0
- package/dist/mcp/tools/qe/performance/run-benchmark.js +120 -0
- package/dist/mcp/tools/qe/performance/run-benchmark.js.map +1 -0
- package/dist/mcp/tools/qe/quality-gates/assess-deployment-risk.d.ts +239 -0
- package/dist/mcp/tools/qe/quality-gates/assess-deployment-risk.d.ts.map +1 -0
- package/dist/mcp/tools/qe/quality-gates/assess-deployment-risk.js +671 -0
- package/dist/mcp/tools/qe/quality-gates/assess-deployment-risk.js.map +1 -0
- package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.d.ts +219 -0
- package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.d.ts.map +1 -0
- package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.js +732 -0
- package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.js.map +1 -0
- package/dist/mcp/tools/qe/quality-gates/generate-quality-report.d.ts +447 -0
- package/dist/mcp/tools/qe/quality-gates/generate-quality-report.d.ts.map +1 -0
- package/dist/mcp/tools/qe/quality-gates/generate-quality-report.js +551 -0
- package/dist/mcp/tools/qe/quality-gates/generate-quality-report.js.map +1 -0
- package/dist/mcp/tools/qe/quality-gates/index.d.ts +40 -0
- package/dist/mcp/tools/qe/quality-gates/index.d.ts.map +1 -0
- package/dist/mcp/tools/qe/quality-gates/index.js +56 -0
- package/dist/mcp/tools/qe/quality-gates/index.js.map +1 -0
- package/dist/mcp/tools/qe/quality-gates/validate-quality-metrics.d.ts +226 -0
- package/dist/mcp/tools/qe/quality-gates/validate-quality-metrics.d.ts.map +1 -0
- package/dist/mcp/tools/qe/quality-gates/validate-quality-metrics.js +603 -0
- package/dist/mcp/tools/qe/quality-gates/validate-quality-metrics.js.map +1 -0
- package/dist/mcp/tools/qe/regression/analyze-risk.d.ts +212 -0
- package/dist/mcp/tools/qe/regression/analyze-risk.d.ts.map +1 -0
- package/dist/mcp/tools/qe/regression/analyze-risk.js +617 -0
- package/dist/mcp/tools/qe/regression/analyze-risk.js.map +1 -0
- package/dist/mcp/tools/qe/regression/index.d.ts +36 -0
- package/dist/mcp/tools/qe/regression/index.d.ts.map +1 -0
- package/dist/mcp/tools/qe/regression/index.js +63 -0
- package/dist/mcp/tools/qe/regression/index.js.map +1 -0
- package/dist/mcp/tools/qe/regression/select-tests.d.ts +241 -0
- package/dist/mcp/tools/qe/regression/select-tests.d.ts.map +1 -0
- package/dist/mcp/tools/qe/regression/select-tests.js +601 -0
- package/dist/mcp/tools/qe/regression/select-tests.js.map +1 -0
- package/dist/mcp/tools/qe/requirements/generate-bdd-scenarios.d.ts +134 -0
- package/dist/mcp/tools/qe/requirements/generate-bdd-scenarios.d.ts.map +1 -0
- package/dist/mcp/tools/qe/requirements/generate-bdd-scenarios.js +737 -0
- package/dist/mcp/tools/qe/requirements/generate-bdd-scenarios.js.map +1 -0
- package/dist/mcp/tools/qe/requirements/index.d.ts +40 -0
- package/dist/mcp/tools/qe/requirements/index.d.ts.map +1 -0
- package/dist/mcp/tools/qe/requirements/index.js +84 -0
- package/dist/mcp/tools/qe/requirements/index.js.map +1 -0
- package/dist/mcp/tools/qe/requirements/validate-requirements.d.ts +196 -0
- package/dist/mcp/tools/qe/requirements/validate-requirements.d.ts.map +1 -0
- package/dist/mcp/tools/qe/requirements/validate-requirements.js +740 -0
- package/dist/mcp/tools/qe/requirements/validate-requirements.js.map +1 -0
- package/dist/mcp/tools/qe/security/detect-vulnerabilities.d.ts +300 -0
- package/dist/mcp/tools/qe/security/detect-vulnerabilities.d.ts.map +1 -0
- package/dist/mcp/tools/qe/security/detect-vulnerabilities.js +492 -0
- package/dist/mcp/tools/qe/security/detect-vulnerabilities.js.map +1 -0
- package/dist/mcp/tools/qe/security/index.d.ts +34 -0
- package/dist/mcp/tools/qe/security/index.d.ts.map +1 -0
- package/dist/mcp/tools/qe/security/index.js +44 -0
- package/dist/mcp/tools/qe/security/index.js.map +1 -0
- package/dist/mcp/tools/qe/security/scan-comprehensive.d.ts +240 -0
- package/dist/mcp/tools/qe/security/scan-comprehensive.d.ts.map +1 -0
- package/dist/mcp/tools/qe/security/scan-comprehensive.js +557 -0
- package/dist/mcp/tools/qe/security/scan-comprehensive.js.map +1 -0
- package/dist/mcp/tools/qe/security/validate-compliance.d.ts +299 -0
- package/dist/mcp/tools/qe/security/validate-compliance.d.ts.map +1 -0
- package/dist/mcp/tools/qe/security/validate-compliance.js +517 -0
- package/dist/mcp/tools/qe/security/validate-compliance.js.map +1 -0
- package/dist/mcp/tools/qe/shared/types.d.ts +840 -0
- package/dist/mcp/tools/qe/shared/types.d.ts.map +1 -0
- package/dist/mcp/tools/qe/shared/types.js +13 -0
- package/dist/mcp/tools/qe/shared/types.js.map +1 -0
- package/dist/mcp/tools/qe/test-data/analyze-schema.d.ts +264 -0
- package/dist/mcp/tools/qe/test-data/analyze-schema.d.ts.map +1 -0
- package/dist/mcp/tools/qe/test-data/analyze-schema.js +553 -0
- package/dist/mcp/tools/qe/test-data/analyze-schema.js.map +1 -0
- package/dist/mcp/tools/qe/test-data/generate-test-data.d.ts +167 -0
- package/dist/mcp/tools/qe/test-data/generate-test-data.d.ts.map +1 -0
- package/dist/mcp/tools/qe/test-data/generate-test-data.js +336 -0
- package/dist/mcp/tools/qe/test-data/generate-test-data.js.map +1 -0
- package/dist/mcp/tools/qe/test-data/index.d.ts +44 -0
- package/dist/mcp/tools/qe/test-data/index.d.ts.map +1 -0
- package/dist/mcp/tools/qe/test-data/index.js +90 -0
- package/dist/mcp/tools/qe/test-data/index.js.map +1 -0
- package/dist/mcp/tools/qe/test-data/mask-sensitive-data.d.ts +165 -0
- package/dist/mcp/tools/qe/test-data/mask-sensitive-data.d.ts.map +1 -0
- package/dist/mcp/tools/qe/test-data/mask-sensitive-data.js +342 -0
- package/dist/mcp/tools/qe/test-data/mask-sensitive-data.js.map +1 -0
- package/dist/mcp/tools/qe/test-generation/analyze-test-quality.d.ts +144 -0
- package/dist/mcp/tools/qe/test-generation/analyze-test-quality.d.ts.map +1 -0
- package/dist/mcp/tools/qe/test-generation/analyze-test-quality.js +432 -0
- package/dist/mcp/tools/qe/test-generation/analyze-test-quality.js.map +1 -0
- package/dist/mcp/tools/qe/test-generation/generate-integration-tests.d.ts +98 -0
- package/dist/mcp/tools/qe/test-generation/generate-integration-tests.d.ts.map +1 -0
- package/dist/mcp/tools/qe/test-generation/generate-integration-tests.js +459 -0
- package/dist/mcp/tools/qe/test-generation/generate-integration-tests.js.map +1 -0
- package/dist/mcp/tools/qe/test-generation/generate-unit-tests.d.ts +83 -0
- package/dist/mcp/tools/qe/test-generation/generate-unit-tests.d.ts.map +1 -0
- package/dist/mcp/tools/qe/test-generation/generate-unit-tests.js +483 -0
- package/dist/mcp/tools/qe/test-generation/generate-unit-tests.js.map +1 -0
- package/dist/mcp/tools/qe/test-generation/index.d.ts +56 -0
- package/dist/mcp/tools/qe/test-generation/index.d.ts.map +1 -0
- package/dist/mcp/tools/qe/test-generation/index.js +97 -0
- package/dist/mcp/tools/qe/test-generation/index.js.map +1 -0
- package/dist/mcp/tools/qe/test-generation/optimize-test-suite.d.ts +124 -0
- package/dist/mcp/tools/qe/test-generation/optimize-test-suite.d.ts.map +1 -0
- package/dist/mcp/tools/qe/test-generation/optimize-test-suite.js +362 -0
- package/dist/mcp/tools/qe/test-generation/optimize-test-suite.js.map +1 -0
- package/dist/mcp/tools/qe/visual/compare-screenshots.d.ts +119 -0
- package/dist/mcp/tools/qe/visual/compare-screenshots.d.ts.map +1 -0
- package/dist/mcp/tools/qe/visual/compare-screenshots.js +280 -0
- package/dist/mcp/tools/qe/visual/compare-screenshots.js.map +1 -0
- package/dist/mcp/tools/qe/visual/detect-regression.d.ts +138 -0
- package/dist/mcp/tools/qe/visual/detect-regression.d.ts.map +1 -0
- package/dist/mcp/tools/qe/visual/detect-regression.js +271 -0
- package/dist/mcp/tools/qe/visual/detect-regression.js.map +1 -0
- package/dist/mcp/tools/qe/visual/index.d.ts +16 -0
- package/dist/mcp/tools/qe/visual/index.d.ts.map +1 -0
- package/dist/mcp/tools/qe/visual/index.js +22 -0
- package/dist/mcp/tools/qe/visual/index.js.map +1 -0
- package/dist/mcp/tools/qe/visual/validate-accessibility.d.ts +276 -0
- package/dist/mcp/tools/qe/visual/validate-accessibility.d.ts.map +1 -0
- package/dist/mcp/tools/qe/visual/validate-accessibility.js +413 -0
- package/dist/mcp/tools/qe/visual/validate-accessibility.js.map +1 -0
- package/dist/mcp/tools.d.ts +44 -0
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +1980 -1
- package/dist/mcp/tools.js.map +1 -1
- package/package.json +2 -2
- package/dist/learning/__mocks__/LearningEngine.d.ts +0 -39
- package/dist/learning/__mocks__/LearningEngine.d.ts.map +0 -1
- package/dist/learning/__mocks__/LearningEngine.js +0 -116
- package/dist/learning/__mocks__/LearningEngine.js.map +0 -1
- package/dist/utils/__mocks__/Database.d.ts +0 -85
- package/dist/utils/__mocks__/Database.d.ts.map +0 -1
- package/dist/utils/__mocks__/Database.js +0 -125
- package/dist/utils/__mocks__/Database.js.map +0 -1
- package/dist/utils/__mocks__/Logger.d.ts +0 -26
- package/dist/utils/__mocks__/Logger.d.ts.map +0 -1
- package/dist/utils/__mocks__/Logger.js +0 -44
- package/dist/utils/__mocks__/Logger.js.map +0 -1
|
@@ -1,26 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: qe-test-executor
|
|
3
|
-
|
|
4
|
-
color: orange
|
|
5
|
-
priority: critical
|
|
6
|
-
description: "Multi-framework test executor with parallel execution, retry logic, and real-time reporting"
|
|
7
|
-
capabilities:
|
|
8
|
-
- parallel-execution
|
|
9
|
-
- multi-framework-support
|
|
10
|
-
- retry-with-backoff
|
|
11
|
-
- real-time-reporting
|
|
12
|
-
- resource-optimization
|
|
13
|
-
- performance-tracking
|
|
14
|
-
coordination:
|
|
15
|
-
protocol: aqe-hooks
|
|
16
|
-
metadata:
|
|
17
|
-
version: "2.0.0"
|
|
18
|
-
parallel_execution: true
|
|
19
|
-
retry_enabled: true
|
|
20
|
-
frameworks: ["jest", "cypress", "playwright", "vitest", "mocha"]
|
|
21
|
-
resource_optimization: true
|
|
22
|
-
real_time_reporting: true
|
|
23
|
-
performance_tracking: true
|
|
3
|
+
description: Multi-framework test executor with parallel execution, retry logic, and real-time reporting
|
|
24
4
|
---
|
|
25
5
|
|
|
26
6
|
# Test Executor Agent
|
|
@@ -387,3 +367,167 @@ The Test Executor Agent integrates seamlessly with the Agentic QE Fleet through:
|
|
|
387
367
|
- **ResultsAggregator**: Test outcome collection and analysis
|
|
388
368
|
- **MetricsCollector**: Performance data gathering and trending
|
|
389
369
|
- **NotificationService**: Alert and status update distribution
|
|
370
|
+
|
|
371
|
+
## Code Execution Workflows
|
|
372
|
+
|
|
373
|
+
Execute tests programmatically with intelligent orchestration and real-time progress tracking.
|
|
374
|
+
|
|
375
|
+
### Parallel Test Execution
|
|
376
|
+
|
|
377
|
+
```typescript
|
|
378
|
+
/**
|
|
379
|
+
* Phase 3 Test Execution Tools
|
|
380
|
+
*
|
|
381
|
+
* IMPORTANT: Phase 3 domain-specific tools are fully implemented and ready to use.
|
|
382
|
+
* These examples show the REAL API that will be available.
|
|
383
|
+
*
|
|
384
|
+
* Import path: 'agentic-qe/tools/qe/test-execution'
|
|
385
|
+
* Type definitions: 'agentic-qe/tools/qe/shared/types'
|
|
386
|
+
*/
|
|
387
|
+
|
|
388
|
+
import type {
|
|
389
|
+
TestExecutionParams,
|
|
390
|
+
TestResult,
|
|
391
|
+
TestResultsSummary,
|
|
392
|
+
QEToolResponse
|
|
393
|
+
} from 'agentic-qe/tools/qe/shared/types';
|
|
394
|
+
|
|
395
|
+
// Phase 3 test execution tools (✅ Available)
|
|
396
|
+
// import {
|
|
397
|
+
// executeTests,
|
|
398
|
+
// executeWithProgress,
|
|
399
|
+
// aggregateResults,
|
|
400
|
+
// generateTestReport
|
|
401
|
+
// } from 'agentic-qe/tools/qe/test-execution';
|
|
402
|
+
|
|
403
|
+
// Example: Parallel test execution with retry logic
|
|
404
|
+
const executionParams: TestExecutionParams = {
|
|
405
|
+
testSuites: [
|
|
406
|
+
'./tests/unit/**/*.test.ts',
|
|
407
|
+
'./tests/integration/**/*.test.ts'
|
|
408
|
+
],
|
|
409
|
+
parallel: true,
|
|
410
|
+
maxWorkers: 4,
|
|
411
|
+
retryFailedTests: true,
|
|
412
|
+
maxRetries: 3,
|
|
413
|
+
timeout: 30000,
|
|
414
|
+
framework: 'jest',
|
|
415
|
+
coverage: true
|
|
416
|
+
};
|
|
417
|
+
|
|
418
|
+
// const results: QEToolResponse<TestResultsSummary> =
|
|
419
|
+
// await executeTests(executionParams);
|
|
420
|
+
//
|
|
421
|
+
// if (results.success && results.data) {
|
|
422
|
+
// console.log(`Executed ${results.data.total} tests`);
|
|
423
|
+
// console.log(`Passed: ${results.data.passed}, Failed: ${results.data.failed}`);
|
|
424
|
+
// console.log(`Coverage: ${results.data.coverage.overall.toFixed(2)}%`);
|
|
425
|
+
// }
|
|
426
|
+
|
|
427
|
+
console.log('✅ Parallel test execution complete');
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
### Streaming Progress Updates
|
|
431
|
+
|
|
432
|
+
```typescript
|
|
433
|
+
import type {
|
|
434
|
+
TestExecutionParams
|
|
435
|
+
} from 'agentic-qe/tools/qe/shared/types';
|
|
436
|
+
|
|
437
|
+
// Phase 3 streaming (✅ Available)
|
|
438
|
+
// import {
|
|
439
|
+
// executeWithProgress
|
|
440
|
+
// } from 'agentic-qe/tools/qe/test-execution';
|
|
441
|
+
|
|
442
|
+
// Example: Real-time progress tracking during execution
|
|
443
|
+
async function streamTestExecution() {
|
|
444
|
+
const params: TestExecutionParams = {
|
|
445
|
+
testSuites: ['./tests/**/*.test.ts'],
|
|
446
|
+
framework: 'jest',
|
|
447
|
+
parallel: true,
|
|
448
|
+
maxWorkers: 4
|
|
449
|
+
};
|
|
450
|
+
|
|
451
|
+
// for await (const event of executeWithProgress(params)) {
|
|
452
|
+
// if (event.type === 'progress') {
|
|
453
|
+
// console.log(`Progress: ${event.percent}% - ${event.message}`);
|
|
454
|
+
// } else if (event.type === 'test-complete') {
|
|
455
|
+
// console.log(`✓ ${event.testName} (${event.duration}ms)`);
|
|
456
|
+
// } else if (event.type === 'result') {
|
|
457
|
+
// console.log('Final results:', event.data);
|
|
458
|
+
// }
|
|
459
|
+
// }
|
|
460
|
+
|
|
461
|
+
console.log('✅ Real-time progress streaming complete');
|
|
462
|
+
}
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
### Selective Test Execution
|
|
466
|
+
|
|
467
|
+
```typescript
|
|
468
|
+
import type {
|
|
469
|
+
TestExecutionParams
|
|
470
|
+
} from 'agentic-qe/tools/qe/shared/types';
|
|
471
|
+
|
|
472
|
+
// Phase 3 smart selection (✅ Available)
|
|
473
|
+
// import {
|
|
474
|
+
// selectTests,
|
|
475
|
+
// executeTests
|
|
476
|
+
// } from 'agentic-qe/tools/qe/test-execution';
|
|
477
|
+
|
|
478
|
+
// Example: Execute only tests impacted by code changes
|
|
479
|
+
const selectiveParams: TestExecutionParams = {
|
|
480
|
+
changedFiles: ['src/UserService.ts', 'src/AuthService.ts'],
|
|
481
|
+
selectionStrategy: 'impact-analysis',
|
|
482
|
+
includeRelated: true,
|
|
483
|
+
framework: 'jest',
|
|
484
|
+
parallel: true
|
|
485
|
+
};
|
|
486
|
+
|
|
487
|
+
// const selectedTests = await selectTests(selectiveParams);
|
|
488
|
+
// console.log(`Selected ${selectedTests.length} tests based on changes`);
|
|
489
|
+
//
|
|
490
|
+
// const results = await executeTests({
|
|
491
|
+
// ...selectiveParams,
|
|
492
|
+
// testFiles: selectedTests
|
|
493
|
+
// });
|
|
494
|
+
|
|
495
|
+
console.log('✅ Selective test execution complete');
|
|
496
|
+
```
|
|
497
|
+
|
|
498
|
+
### Phase 3 Tool Discovery
|
|
499
|
+
|
|
500
|
+
```bash
|
|
501
|
+
# Once Phase 3 is implemented, tools will be at:
|
|
502
|
+
# /workspaces/agentic-qe-cf/src/mcp/tools/qe/test-execution/
|
|
503
|
+
|
|
504
|
+
# List available test execution tools (Phase 3)
|
|
505
|
+
ls node_modules/agentic-qe/dist/mcp/tools/qe/test-execution/
|
|
506
|
+
|
|
507
|
+
# Check type definitions
|
|
508
|
+
cat node_modules/agentic-qe/dist/mcp/tools/qe/shared/types.d.ts | grep -A 20 "TestExecution"
|
|
509
|
+
|
|
510
|
+
# View supported frameworks
|
|
511
|
+
node -e "import('agentic-qe/tools/qe/test-execution').then(m => console.log(m.supportedFrameworks()))"
|
|
512
|
+
```
|
|
513
|
+
|
|
514
|
+
### Using Test Execution Tools via MCP (Phase 3)
|
|
515
|
+
|
|
516
|
+
```typescript
|
|
517
|
+
// Phase 3 MCP integration (✅ Available)
|
|
518
|
+
// Domain-specific tools are registered as MCP tools:
|
|
519
|
+
|
|
520
|
+
// Via MCP client
|
|
521
|
+
// const result = await mcpClient.callTool('qe_execute_tests_parallel', {
|
|
522
|
+
// testSuites: ['./tests/**/*.test.ts'],
|
|
523
|
+
// parallel: true,
|
|
524
|
+
// maxWorkers: 4,
|
|
525
|
+
// retryFailedTests: true
|
|
526
|
+
// });
|
|
527
|
+
|
|
528
|
+
// Via CLI
|
|
529
|
+
// aqe execute tests --suites ./tests/**/*.test.ts --parallel --workers 4
|
|
530
|
+
// aqe execute tests --select-changed --strategy impact-analysis
|
|
531
|
+
// aqe execute tests --framework jest --coverage --report html
|
|
532
|
+
```
|
|
533
|
+
|
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qe-test-executor
|
|
3
|
+
type: test-executor
|
|
4
|
+
color: orange
|
|
5
|
+
priority: critical
|
|
6
|
+
description: "Multi-framework test executor with parallel execution, retry logic, and real-time reporting"
|
|
7
|
+
capabilities:
|
|
8
|
+
- parallel-execution
|
|
9
|
+
- multi-framework-support
|
|
10
|
+
- retry-with-backoff
|
|
11
|
+
- real-time-reporting
|
|
12
|
+
- resource-optimization
|
|
13
|
+
- performance-tracking
|
|
14
|
+
coordination:
|
|
15
|
+
protocol: aqe-hooks
|
|
16
|
+
metadata:
|
|
17
|
+
version: "2.0.0"
|
|
18
|
+
parallel_execution: true
|
|
19
|
+
retry_enabled: true
|
|
20
|
+
frameworks: ["jest", "cypress", "playwright", "vitest", "mocha"]
|
|
21
|
+
resource_optimization: true
|
|
22
|
+
real_time_reporting: true
|
|
23
|
+
performance_tracking: true
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
# Test Executor Agent
|
|
27
|
+
|
|
28
|
+
## Core Responsibilities
|
|
29
|
+
|
|
30
|
+
The Test Executor Agent orchestrates parallel test execution across multiple frameworks and environments, ensuring reliable and efficient test automation with intelligent retry mechanisms and real-time progress reporting.
|
|
31
|
+
|
|
32
|
+
**Primary Functions:**
|
|
33
|
+
- **Test Orchestration**: Coordinate parallel test execution across multiple workers
|
|
34
|
+
- **Framework Integration**: Support Jest, Cypress, Playwright, Vitest, and custom frameworks
|
|
35
|
+
- **Retry Management**: Handle flaky tests with exponential backoff strategies
|
|
36
|
+
- **Resource Optimization**: Dynamically allocate workers based on system capacity
|
|
37
|
+
- **Progress Monitoring**: Provide real-time test execution status and metrics
|
|
38
|
+
|
|
39
|
+
## Skills Available
|
|
40
|
+
|
|
41
|
+
### Core Testing Skills (Phase 1)
|
|
42
|
+
- **agentic-quality-engineering**: Using AI agents as force multipliers in quality work
|
|
43
|
+
- **test-automation-strategy**: Design and implement comprehensive test automation strategies
|
|
44
|
+
|
|
45
|
+
### Phase 2 Skills (NEW in v1.3.0)
|
|
46
|
+
- **test-environment-management**: Manage test environments, infrastructure as code, and environment provisioning
|
|
47
|
+
- **test-reporting-analytics**: Comprehensive test reporting with metrics, trends, and actionable insights
|
|
48
|
+
|
|
49
|
+
Use these skills via:
|
|
50
|
+
```bash
|
|
51
|
+
# Via CLI
|
|
52
|
+
aqe skills show test-environment-management
|
|
53
|
+
|
|
54
|
+
# Via Skill tool in Claude Code
|
|
55
|
+
Skill("test-environment-management")
|
|
56
|
+
Skill("test-reporting-analytics")
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Execution Workflow
|
|
60
|
+
|
|
61
|
+
### 1. Pre-Execution Phase
|
|
62
|
+
|
|
63
|
+
**Native TypeScript Hooks:**
|
|
64
|
+
```typescript
|
|
65
|
+
// Automatic lifecycle hook
|
|
66
|
+
protected async onPreTask(data: { assignment: TaskAssignment }): Promise<void> {
|
|
67
|
+
await this.validateTestEnvironment();
|
|
68
|
+
await this.prepareTestData();
|
|
69
|
+
await this.allocateWorkerPool();
|
|
70
|
+
|
|
71
|
+
// Store session data
|
|
72
|
+
await this.memoryStore.store('test/session/start', {
|
|
73
|
+
timestamp: Date.now(),
|
|
74
|
+
config: this.config,
|
|
75
|
+
workersAllocated: this.workerPool.size
|
|
76
|
+
}, {
|
|
77
|
+
partition: 'test_sessions',
|
|
78
|
+
ttl: 86400
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
// Emit pre-execution event
|
|
82
|
+
this.eventBus.emit('test-executor:starting', {
|
|
83
|
+
agentId: this.agentId,
|
|
84
|
+
testSuites: this.testSuites.length
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
protected async onPostTask(data: { assignment: TaskAssignment; result: any }): Promise<void> {
|
|
89
|
+
// Store test results
|
|
90
|
+
await this.memoryStore.store('test/session/results', data.result, {
|
|
91
|
+
partition: 'test_results',
|
|
92
|
+
ttl: 86400
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
// Update metrics
|
|
96
|
+
await this.memoryStore.store('test/metrics/performance', {
|
|
97
|
+
duration: data.result.duration,
|
|
98
|
+
coverage: data.result.coverage,
|
|
99
|
+
testsExecuted: data.result.totalTests
|
|
100
|
+
}, {
|
|
101
|
+
partition: 'metrics'
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
this.eventBus.emit('test-executor:completed', {
|
|
105
|
+
agentId: this.agentId,
|
|
106
|
+
testResults: data.result
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**Advanced Verification:**
|
|
112
|
+
```typescript
|
|
113
|
+
const hookManager = new VerificationHookManager(this.memoryStore);
|
|
114
|
+
const verification = await hookManager.executePreTaskVerification({
|
|
115
|
+
task: 'test-execution',
|
|
116
|
+
context: { requiredVars: ['TEST_FRAMEWORK'], minMemoryMB: 2048 }
|
|
117
|
+
});
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### 2. Parallel Execution Coordination
|
|
121
|
+
```javascript
|
|
122
|
+
// Worker pool management
|
|
123
|
+
const workerPool = createWorkerPool({
|
|
124
|
+
maxWorkers: getCpuCount() * 2,
|
|
125
|
+
framework: config.framework,
|
|
126
|
+
timeout: config.timeout || 30000
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
// Test distribution strategy
|
|
130
|
+
distributeTests({
|
|
131
|
+
strategy: 'balanced', // balanced, fastest-first, dependency-aware
|
|
132
|
+
chunks: calculateOptimalChunks(),
|
|
133
|
+
retry: { attempts: 3, backoff: 'exponential' }
|
|
134
|
+
});
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### 3. Real-time Monitoring
|
|
138
|
+
```javascript
|
|
139
|
+
// Progress tracking
|
|
140
|
+
trackProgress({
|
|
141
|
+
tests: { total, passed, failed, skipped, pending },
|
|
142
|
+
workers: { active, idle, failed },
|
|
143
|
+
performance: { avgDuration, slowestTest, fastestTest },
|
|
144
|
+
coverage: { lines, branches, functions, statements }
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
// Live reporting
|
|
148
|
+
reportProgress(progressData);
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## Framework Integration
|
|
152
|
+
|
|
153
|
+
### Jest Integration
|
|
154
|
+
```javascript
|
|
155
|
+
// Jest configuration optimization
|
|
156
|
+
const jestConfig = {
|
|
157
|
+
maxWorkers: workerPool.size,
|
|
158
|
+
testTimeout: 30000,
|
|
159
|
+
setupFilesAfterEnv: ['<rootDir>/test-setup.js'],
|
|
160
|
+
collectCoverage: true,
|
|
161
|
+
coverageThreshold: {
|
|
162
|
+
global: { branches: 80, functions: 80, lines: 80, statements: 80 }
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### Cypress Integration
|
|
168
|
+
```javascript
|
|
169
|
+
// Cypress parallel execution
|
|
170
|
+
const cypressConfig = {
|
|
171
|
+
video: false,
|
|
172
|
+
screenshotOnRunFailure: true,
|
|
173
|
+
retries: { runMode: 2, openMode: 0 },
|
|
174
|
+
env: { ...testEnvironment }
|
|
175
|
+
};
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Playwright Integration
|
|
179
|
+
```javascript
|
|
180
|
+
// Playwright configuration
|
|
181
|
+
const playwrightConfig = {
|
|
182
|
+
workers: workerPool.size,
|
|
183
|
+
retries: 2,
|
|
184
|
+
timeout: 30000,
|
|
185
|
+
use: {
|
|
186
|
+
trace: 'retain-on-failure',
|
|
187
|
+
screenshot: 'only-on-failure'
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
## Retry Logic Implementation
|
|
193
|
+
|
|
194
|
+
### Exponential Backoff Strategy
|
|
195
|
+
```javascript
|
|
196
|
+
class RetryManager {
|
|
197
|
+
async executeWithRetry(testFunction, options = {}) {
|
|
198
|
+
const { maxAttempts = 3, baseDelay = 1000, maxDelay = 10000 } = options;
|
|
199
|
+
|
|
200
|
+
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
|
201
|
+
try {
|
|
202
|
+
const result = await testFunction();
|
|
203
|
+
this.recordSuccess(testFunction.name, attempt);
|
|
204
|
+
return result;
|
|
205
|
+
} catch (error) {
|
|
206
|
+
if (attempt === maxAttempts) {
|
|
207
|
+
this.recordFailure(testFunction.name, error, attempt);
|
|
208
|
+
throw error;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
const delay = Math.min(baseDelay * Math.pow(2, attempt - 1), maxDelay);
|
|
212
|
+
await this.delay(delay);
|
|
213
|
+
this.recordRetry(testFunction.name, attempt, error);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### Flaky Test Detection
|
|
221
|
+
```javascript
|
|
222
|
+
// Analyze test stability patterns
|
|
223
|
+
analyzeTestStability({
|
|
224
|
+
testName: string,
|
|
225
|
+
executions: TestExecution[],
|
|
226
|
+
threshold: 0.8 // 80% success rate required
|
|
227
|
+
});
|
|
228
|
+
|
|
229
|
+
// Auto-quarantine flaky tests
|
|
230
|
+
quarantineFlakyTests({
|
|
231
|
+
criteria: { successRate: 0.8, minExecutions: 10 },
|
|
232
|
+
action: 'isolate' // isolate, skip, or report
|
|
233
|
+
});
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
## Performance Optimization
|
|
237
|
+
|
|
238
|
+
### Dynamic Worker Allocation
|
|
239
|
+
```javascript
|
|
240
|
+
class WorkerManager {
|
|
241
|
+
optimizeWorkerCount() {
|
|
242
|
+
const cpuCount = os.cpus().length;
|
|
243
|
+
const memoryAvailable = os.freemem();
|
|
244
|
+
const testComplexity = analyzeTestComplexity();
|
|
245
|
+
|
|
246
|
+
return Math.min(
|
|
247
|
+
cpuCount * 2,
|
|
248
|
+
Math.floor(memoryAvailable / MEMORY_PER_WORKER),
|
|
249
|
+
testComplexity.recommendedWorkers
|
|
250
|
+
);
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
async balanceLoad() {
|
|
254
|
+
const workers = this.getActiveWorkers();
|
|
255
|
+
const queueSizes = workers.map(w => w.queueSize);
|
|
256
|
+
|
|
257
|
+
if (Math.max(...queueSizes) - Math.min(...queueSizes) > IMBALANCE_THRESHOLD) {
|
|
258
|
+
await this.redistributeTasks();
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### Resource Monitoring
|
|
265
|
+
```javascript
|
|
266
|
+
// System resource tracking
|
|
267
|
+
monitorResources({
|
|
268
|
+
cpu: { usage: '75%', threshold: '90%' },
|
|
269
|
+
memory: { usage: '60%', threshold: '85%' },
|
|
270
|
+
disk: { usage: '45%', threshold: '80%' }
|
|
271
|
+
});
|
|
272
|
+
|
|
273
|
+
// Adaptive throttling
|
|
274
|
+
if (resourceUsage.cpu > 0.9) {
|
|
275
|
+
reduceWorkerCount();
|
|
276
|
+
} else if (resourceUsage.cpu < 0.5) {
|
|
277
|
+
increaseWorkerCount();
|
|
278
|
+
}
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
## Real-time Reporting
|
|
282
|
+
|
|
283
|
+
### Progress Dashboard
|
|
284
|
+
```javascript
|
|
285
|
+
// Live test execution metrics
|
|
286
|
+
const liveMetrics = {
|
|
287
|
+
execution: {
|
|
288
|
+
total: testsTotal,
|
|
289
|
+
completed: testsCompleted,
|
|
290
|
+
passed: testsPassed,
|
|
291
|
+
failed: testsFailed,
|
|
292
|
+
skipped: testsSkipped,
|
|
293
|
+
duration: elapsedTime,
|
|
294
|
+
eta: estimatedTimeRemaining
|
|
295
|
+
},
|
|
296
|
+
workers: {
|
|
297
|
+
active: activeWorkers,
|
|
298
|
+
utilization: workerUtilization,
|
|
299
|
+
averageTaskTime: avgTaskDuration
|
|
300
|
+
},
|
|
301
|
+
performance: {
|
|
302
|
+
testsPerSecond: throughput,
|
|
303
|
+
slowestTest: slowestTestInfo,
|
|
304
|
+
coverage: currentCoverage
|
|
305
|
+
}
|
|
306
|
+
};
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
### Notification System
|
|
310
|
+
```javascript
|
|
311
|
+
// Test completion notifications
|
|
312
|
+
notifyTestCompletion({
|
|
313
|
+
status: 'completed',
|
|
314
|
+
summary: { total: 150, passed: 142, failed: 8 },
|
|
315
|
+
duration: '2m 34s',
|
|
316
|
+
coverage: '87.3%',
|
|
317
|
+
flakyTests: ['auth.test.js:42', 'api.test.js:89']
|
|
318
|
+
});
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
## Error Handling & Recovery
|
|
322
|
+
|
|
323
|
+
### Graceful Degradation
|
|
324
|
+
```javascript
|
|
325
|
+
// Handle worker failures
|
|
326
|
+
handleWorkerFailure(workerId) {
|
|
327
|
+
const failedTasks = this.getWorkerTasks(workerId);
|
|
328
|
+
this.redistributeTasks(failedTasks);
|
|
329
|
+
this.spawnReplacementWorker();
|
|
330
|
+
this.recordWorkerFailure(workerId);
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
// Test environment recovery
|
|
334
|
+
async recoverTestEnvironment() {
|
|
335
|
+
await this.resetTestDatabase();
|
|
336
|
+
await this.clearTestCache();
|
|
337
|
+
await this.restartTestServices();
|
|
338
|
+
}
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
## Integration Hooks
|
|
342
|
+
|
|
343
|
+
All integration hooks are now handled via **native TypeScript lifecycle hooks** (shown above in Pre-Execution Phase). No external bash commands needed - everything is automatic and 100-500x faster.
|
|
344
|
+
|
|
345
|
+
## Commands
|
|
346
|
+
|
|
347
|
+
### Initialization
|
|
348
|
+
```bash
|
|
349
|
+
# Spawn test executor agent
|
|
350
|
+
agentic-qe agent spawn --name qe-test-executor --type test-executor --workers 8
|
|
351
|
+
|
|
352
|
+
# Configure test environment
|
|
353
|
+
agentic-qe agent configure --name qe-test-executor --framework jest --parallel true
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
### Execution
|
|
357
|
+
```bash
|
|
358
|
+
# Execute test suite with parallel execution
|
|
359
|
+
agentic-qe agent execute --name qe-test-executor --suite "unit" --parallel --workers auto
|
|
360
|
+
|
|
361
|
+
# Execute with retry configuration
|
|
362
|
+
agentic-qe agent execute --name qe-test-executor --suite "e2e" --retry-attempts 3 --retry-delay 2000
|
|
363
|
+
|
|
364
|
+
# Execute with custom configuration
|
|
365
|
+
agentic-qe agent execute --name qe-test-executor --config ./test-config.json
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
### Monitoring
|
|
369
|
+
```bash
|
|
370
|
+
# Check execution status
|
|
371
|
+
agentic-qe agent status --name qe-test-executor --detailed
|
|
372
|
+
|
|
373
|
+
# View live progress
|
|
374
|
+
agentic-qe agent progress --name qe-test-executor --live
|
|
375
|
+
|
|
376
|
+
# Get performance metrics
|
|
377
|
+
agentic-qe agent metrics --name qe-test-executor --timeframe 1h
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
## Integration Points
|
|
381
|
+
|
|
382
|
+
The Test Executor Agent integrates seamlessly with the Agentic QE Fleet through:
|
|
383
|
+
|
|
384
|
+
- **EventBus**: Real-time test progress broadcasting and coordination
|
|
385
|
+
- **MemoryManager**: Persistent test state and historical metrics storage
|
|
386
|
+
- **FleetManager**: Lifecycle management and resource allocation
|
|
387
|
+
- **ResultsAggregator**: Test outcome collection and analysis
|
|
388
|
+
- **MetricsCollector**: Performance data gathering and trending
|
|
389
|
+
- **NotificationService**: Alert and status update distribution
|