mirror of
https://github.com/proffesor-for-testing/agentic-qe.git
synced 2026-09-19 08:45:47 +08:00
4830e43662
✅ UNIFIED CONFIGURATION - Merged CLAUDE.md (AQE Fleet) + CLAUDE.md.backup (Claude Flow) - 72 total agents now available (18 QE + 54 Claude Flow) - Both agent types can work together in coordinated workflows - Preserved all critical concurrent execution rules 🤖 AGENT ECOSYSTEM **AQE Fleet (18 agents):** - Core Testing: qe-test-generator, qe-test-executor, qe-coverage-analyzer, qe-quality-gate, qe-quality-analyzer - Performance & Security: qe-performance-tester, qe-security-scanner - Strategic Planning: qe-requirements-validator, qe-production-intelligence, qe-fleet-commander - Deployment: qe-deployment-readiness - Advanced Testing: qe-regression-risk-analyzer, qe-test-data-architect, qe-api-contract-validator, qe-flaky-test-hunter - Specialized: qe-visual-tester, qe-chaos-engineer **Claude Flow (54 agents):** - Core Development: coder, reviewer, tester, planner, researcher - Swarm Coordination: hierarchical-coordinator, mesh-coordinator, adaptive-coordinator, etc. - Consensus & Distributed: byzantine-coordinator, raft-manager, gossip-coordinator, etc. - Performance & Optimization: perf-analyzer, performance-benchmarker, task-orchestrator, etc. - GitHub & Repository: github-modes, pr-manager, code-review-swarm, etc. - SPARC Methodology: sparc-coord, sparc-coder, specification, pseudocode, architecture, refinement - Specialized Development: backend-dev, mobile-dev, ml-developer, cicd-engineer, api-docs, system-architect, etc. - Testing & Validation: tdd-london-swarm, production-validator - Migration & Planning: migration-planner, swarm-init 📋 COORDINATION SYSTEM **Two Hook Systems:** - AQE Hooks: Native TypeScript (100-500x faster, zero dependencies) - Claude Flow Hooks: External via npx (flexible, feature-rich) **Memory Namespaces:** - aqe/* - Quality engineering agent state - swarm/* - Claude Flow agent state 🚀 QUICK START EXAMPLES **AQE Only:** Task("Generate tests", "...", "qe-test-generator") **Claude Flow Only:** Task("Research agent", "...", "researcher") **Combined Pipeline:** [Single Message]: Task("Backend Developer", "...", "backend-dev") // Claude Flow Task("Test Generator", "...", "qe-test-generator") // AQE Task("Security Scanner", "...", "qe-security-scanner") // AQE Task("Code Reviewer", "...", "reviewer") // Claude Flow 🔧 MCP SERVERS - agentic-qe: AQE Fleet tools (test generation, execution, quality analysis) - claude-flow: General agent coordination and SPARC methodology - ruv-swarm: Optional enhanced coordination - flow-nexus: Optional cloud features ⚡ CONCURRENT EXECUTION - GOLDEN RULE: 1 MESSAGE = ALL RELATED OPERATIONS - TodoWrite: Batch all todos in one call - Task tool: Spawn all agents in one message - File operations: Batch all reads/writes/edits - Always use appropriate subdirectories (never root folder) 📚 COMPLETE DOCUMENTATION - 18 QE agents + 54 Claude Flow agents - SPARC methodology integration - Multi-Model Router (70-81% cost savings) - Streaming progress support - Performance benefits from both systems - Comprehensive troubleshooting guide 💡 BEST PRACTICES 1. Use AQE agents for quality engineering tasks 2. Use Claude Flow agents for general development 3. Combine both in single workflows for full pipeline 4. Always batch operations in single messages 5. Use proper memory namespaces for coordination 6. Never save to root folder 🎯 Performance Benefits - Claude Flow: 84.8% SWE-Bench solve rate, 2.8-4.4x speed - AQE Fleet: 100-500x faster hooks, O(log n) algorithms, 10k+ records/sec 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
131 lines
4.6 KiB
Markdown
131 lines
4.6 KiB
Markdown
# ML Model Initialization Fix - Learning System Tests
|
|
|
|
## Issue
|
|
Learning system tests for ML-based flaky test detection were failing because ML models were not properly initialized and trained before running detection tests.
|
|
|
|
## Root Causes
|
|
|
|
1. **Empty Test File**: `FlakyTestDetector.ml.test.ts` only contained helper functions but no actual test cases
|
|
2. **ML Model Not Trained**: Tests were calling `model.predict()` without training the model first
|
|
3. **Confidence Threshold Issues**: Statistical confidence calculation requires sufficient sample size (formula: `sampleSize / 100 * 0.6 + varianceConfidence * 0.4`)
|
|
4. **Pass Rate Requirements**: Detection requires `passRate > 0.2 && passRate < 0.8` for intermittent failure classification
|
|
|
|
## Solutions Applied
|
|
|
|
### 1. Complete Test Suite Implementation
|
|
|
|
Created comprehensive test suite with 15 tests covering:
|
|
- **ML Model Training** (2 tests)
|
|
- Train with labeled data
|
|
- Achieve 90%+ accuracy validation
|
|
- **ML-based Detection** (6 tests)
|
|
- Detect flaky tests with trained model
|
|
- Handle stable tests correctly
|
|
- Batch detection
|
|
- Confidence scoring
|
|
- Failure pattern identification
|
|
- **Fallback Behavior** (2 tests)
|
|
- Rule-based detection when model untrained
|
|
- ML disabled mode
|
|
- **Statistics** (2 tests)
|
|
- Provide detection statistics
|
|
- Categorize by severity
|
|
- **Edge Cases** (4 tests)
|
|
- Insufficient data
|
|
- Empty history
|
|
- All-passing tests
|
|
- All-failing tests
|
|
|
|
### 2. Proper Model Training Before Detection
|
|
|
|
```typescript
|
|
beforeEach(async () => {
|
|
// Pre-train model for detection tests
|
|
const trainingData = new Map<string, TestResult[]>();
|
|
const labels = new Map<string, boolean>();
|
|
|
|
// Flaky tests (labeled as true)
|
|
for (let i = 0; i < 10; i++) {
|
|
const testName = `train-flaky-${i}`;
|
|
trainingData.set(testName, generateIntermittentResults(testName, 15, 0.6));
|
|
labels.set(testName, true);
|
|
}
|
|
|
|
// Stable tests (labeled as false)
|
|
for (let i = 0; i < 10; i++) {
|
|
const testName = `train-stable-${i}`;
|
|
trainingData.set(testName, generateStableResults(testName, 15));
|
|
labels.set(testName, false);
|
|
}
|
|
|
|
await detector.trainModel(trainingData, labels);
|
|
});
|
|
```
|
|
|
|
### 3. Improved Test Data Generation
|
|
|
|
Updated `generateIntermittentResults()` to produce more realistic flaky patterns:
|
|
- Calculate exact pass/fail counts based on desired pass rate
|
|
- Add duration variance (100ms, 300ms, 500ms patterns)
|
|
- Shuffle results to simulate intermittent behavior
|
|
- Ensure statistical variance meets detection thresholds
|
|
|
|
### 4. Confidence Threshold Adjustments
|
|
|
|
- **Small sample sizes**: Use `confidenceThreshold: 0.1` for tests with <50 samples
|
|
- **Larger sample sizes**: Use `confidenceThreshold: 0.6-0.7` for tests with 20+ samples
|
|
- Formula: Confidence = `(sampleSize/100) * 0.6 + varianceConfidence * 0.4`
|
|
- Minimum 20 samples needed for reliable detection with low thresholds
|
|
|
|
### 5. Pass Rate Calibration
|
|
|
|
Detection thresholds:
|
|
- **Flaky range**: `passRate > 0.2 && passRate < 0.8`
|
|
- **Stable tests**: `passRate >= 0.95` not detected as flaky
|
|
- **Consistently broken**: `passRate <= 0.2` not detected as flaky (different issue)
|
|
|
|
Test data used:
|
|
- **Flaky tests**: `passRate = 0.35-0.6` with 15-20 samples
|
|
- **Stable tests**: `passRate = 1.0` with 10-15 samples
|
|
- **Critical flaky**: `passRate = 0.2-0.3`
|
|
- **High severity**: `passRate = 0.4-0.5`
|
|
|
|
## Test Results
|
|
|
|
```
|
|
✅ All 15 tests passing
|
|
✓ ML Model Training (2/2)
|
|
✓ ML-based Detection with Trained Model (6/6)
|
|
✓ Fallback to Rule-based Detection (2/2)
|
|
✓ ML Model Statistics (2/2)
|
|
✓ Edge Cases with ML Model (4/4)
|
|
|
|
Test Suites: 1 passed, 1 total
|
|
Tests: 15 passed, 15 total
|
|
```
|
|
|
|
## Key Learnings
|
|
|
|
1. **Always train ML models before testing predictions** - Detection tests need trained models to work correctly
|
|
2. **Understand confidence calculations** - Small sample sizes (<50) need very low confidence thresholds
|
|
3. **Match test data to detection logic** - Pass rates must fall within flaky range (20%-80%)
|
|
4. **Add sufficient variance** - Duration variance helps pattern detection
|
|
5. **Test both positive and negative cases** - Verify stable tests aren't falsely flagged
|
|
|
|
## Files Modified
|
|
|
|
- `/workspaces/agentic-qe-cf/tests/unit/learning/FlakyTestDetector.ml.test.ts` - Complete rewrite with 15 comprehensive tests
|
|
|
|
## Impact
|
|
|
|
- ✅ Learning system tests now passing
|
|
- ✅ ML model initialization properly tested
|
|
- ✅ Proper training workflow validated
|
|
- ✅ Edge cases covered (insufficient data, empty history, etc.)
|
|
- ✅ Confidence scoring validated
|
|
- ✅ Failure pattern detection tested
|
|
|
|
## Related Work
|
|
|
|
This completes the last remaining Phase 1 fix for the learning system. All critical test infrastructure is now stable.
|