mirror of
https://github.com/proffesor-for-testing/agentic-qe.git
synced 2026-09-19 08:45:47 +08:00
2253d05618
Remove the nested v3/ subdirectory by moving all active source code, tests, configs, and assets directly to the project root. Archive v2/ (dead code, 847MB) to v2-archive.tar.gz. Key changes: - Move v3/src/ → src/, v3/tests/ → tests/, v3/packages/ → packages/ - Move v3/tsconfig.json, v3/vitest.config.ts to root - Merge v3/package.json into root package.json (ESM, scripts, deps, exports) - Merge v3/scripts/ into scripts/, v3/implementation/ into docs/implementation/ - Update all CI workflows to remove "cd v3 &&" and v3/ path prefixes - Fix all init installer path resolution (3-level-up → 2-level-up) - Fix hooks to use "node ./dist/cli/bundle.js" instead of bare "aqe" - Update settings.json ADR/DDD directories to docs/implementation/ - Fix helper scripts (statusline, adr-compliance, ddd-tracker, guidance-hooks) - Update 58 agent definitions: aqe/v3/ → aqe/ memory namespaces - Update 15 guidance shards: v3/src/ → src/ path references - Fix sync interfaces: remove v3/ and v2/ path references - Fix test path calculations (process.cwd() + '..' no longer needed) - Fix flaky perf test threshold (500ms → 1000ms for CI environments) - Fix complexity-analyzer test to match ADR-051 keyword-based eligibility Build passes, 17,901 tests pass, CLI and MCP bundles verified. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
204 lines
6.3 KiB
Markdown
204 lines
6.3 KiB
Markdown
# Test Generation Domain
|
|
|
|
## Bounded Context Overview
|
|
|
|
**Domain**: Test Generation
|
|
**Responsibility**: AI-powered test creation and pattern learning
|
|
**Location**: `src/domains/test-generation/`
|
|
|
|
The Test Generation domain is responsible for automatically generating high-quality tests using AI, AST analysis, and learned patterns from existing codebases.
|
|
|
|
## Ubiquitous Language
|
|
|
|
| Term | Definition |
|
|
|------|------------|
|
|
| **Generated Test** | An automatically created test file with assertions |
|
|
| **Test Framework** | Target testing framework (jest, vitest, mocha, pytest) |
|
|
| **Test Type** | Category of test: unit, integration, or e2e |
|
|
| **TDD Phase** | Red-Green-Refactor workflow phase |
|
|
| **Property Test** | Test that validates properties hold for generated inputs |
|
|
| **Pattern** | Learned testing approach extracted from existing tests |
|
|
| **Code Analysis** | AST-based extraction of functions and classes |
|
|
| **Test Generator** | Strategy implementation for framework-specific test output |
|
|
|
|
## Domain Model
|
|
|
|
### Aggregates
|
|
|
|
#### GeneratedTests (Aggregate Root)
|
|
Represents the output of a test generation request.
|
|
|
|
```typescript
|
|
interface IGeneratedTests {
|
|
tests: IGeneratedTest[]; // Collection of generated tests
|
|
coverageEstimate: number; // Estimated coverage percentage
|
|
patternsUsed: string[]; // Patterns applied during generation
|
|
}
|
|
```
|
|
|
|
### Entities
|
|
|
|
#### GeneratedTest
|
|
Individual generated test with metadata.
|
|
|
|
```typescript
|
|
interface IGeneratedTest {
|
|
id: string; // Unique identifier
|
|
name: string; // Test suite/describe name
|
|
sourceFile: string; // File being tested
|
|
testFile: string; // Generated test file path
|
|
testCode: string; // Generated test source code
|
|
type: TestType; // unit | integration | e2e
|
|
assertions: number; // Number of assertions
|
|
llmEnhanced?: boolean; // Whether LLM improved the test
|
|
}
|
|
```
|
|
|
|
### Value Objects
|
|
|
|
#### FunctionInfo
|
|
Immutable representation of a function from AST analysis.
|
|
|
|
```typescript
|
|
interface IFunctionInfo {
|
|
readonly name: string;
|
|
readonly parameters: IParameterInfo[];
|
|
readonly returnType: string | undefined;
|
|
readonly isAsync: boolean;
|
|
readonly isExported: boolean;
|
|
readonly complexity: number;
|
|
readonly startLine: number;
|
|
readonly endLine: number;
|
|
}
|
|
```
|
|
|
|
#### ClassInfo
|
|
Immutable representation of a class from AST analysis.
|
|
|
|
```typescript
|
|
interface IClassInfo {
|
|
readonly name: string;
|
|
readonly methods: IFunctionInfo[];
|
|
readonly properties: IPropertyInfo[];
|
|
readonly isExported: boolean;
|
|
readonly hasConstructor: boolean;
|
|
readonly constructorParams?: IParameterInfo[];
|
|
}
|
|
```
|
|
|
|
#### Pattern
|
|
Learned testing pattern with applicability scoring.
|
|
|
|
```typescript
|
|
interface IPattern {
|
|
readonly id: string;
|
|
readonly name: string;
|
|
readonly structure: string; // Template structure
|
|
readonly examples: number; // Number of examples seen
|
|
readonly applicability: number; // 0-1 applicability score
|
|
}
|
|
```
|
|
|
|
#### TestCase
|
|
Test case definition for generation.
|
|
|
|
```typescript
|
|
interface ITestCase {
|
|
readonly description: string;
|
|
readonly type: 'happy-path' | 'edge-case' | 'error-handling' | 'boundary';
|
|
readonly setup?: string;
|
|
readonly action: string;
|
|
readonly assertion: string;
|
|
}
|
|
```
|
|
|
|
## Domain Services
|
|
|
|
### ITestGenerationAPI
|
|
Primary API for the domain.
|
|
|
|
```typescript
|
|
interface ITestGenerationAPI {
|
|
generateTests(request: IGenerateTestsRequest): Promise<Result<IGeneratedTests, Error>>;
|
|
generateTDDTests(request: ITDDRequest): Promise<Result<ITDDResult, Error>>;
|
|
generatePropertyTests(request: IPropertyTestRequest): Promise<Result<IPropertyTests, Error>>;
|
|
generateTestData(request: ITestDataRequest): Promise<Result<ITestData, Error>>;
|
|
learnPatterns(request: ILearnPatternsRequest): Promise<Result<ILearnedPatterns, Error>>;
|
|
}
|
|
```
|
|
|
|
### ITestGenerator (Strategy Pattern)
|
|
Framework-specific test generation strategy.
|
|
|
|
```typescript
|
|
interface ITestGenerator {
|
|
readonly framework: TestFramework;
|
|
generateTests(context: ITestGenerationContext): string;
|
|
generateFunctionTests(fn: IFunctionInfo, testType: TestType): string;
|
|
generateClassTests(cls: IClassInfo, testType: TestType): string;
|
|
generateStubTests(context: ITestGenerationContext): string;
|
|
generateCoverageTests(moduleName: string, importPath: string, lines: number[]): string;
|
|
}
|
|
```
|
|
|
|
### ITestGeneratorFactory
|
|
Factory for creating framework-specific generators.
|
|
|
|
```typescript
|
|
interface ITestGeneratorFactory {
|
|
create(framework: TestFramework): ITestGenerator;
|
|
supports(framework: string): framework is TestFramework;
|
|
getDefault(): TestFramework;
|
|
}
|
|
```
|
|
|
|
## Domain Events
|
|
|
|
| Event | Trigger | Payload |
|
|
|-------|---------|---------|
|
|
| `TestsGeneratedEvent` | Tests successfully generated | `{ testIds, sourceFiles, coverage }` |
|
|
| `TDDPhaseCompletedEvent` | TDD phase completed | `{ phase, testCode?, implementationCode? }` |
|
|
| `PatternsLearnedEvent` | New patterns extracted | `{ patternIds, confidence }` |
|
|
|
|
## Context Integration
|
|
|
|
### Upstream Dependencies
|
|
- **Code Intelligence**: AST analysis, import resolution
|
|
- **Learning Optimization**: Pattern storage and retrieval
|
|
|
|
### Downstream Consumers
|
|
- **Test Execution**: Executes generated tests
|
|
- **Coverage Analysis**: Measures coverage of generated tests
|
|
|
|
### Anti-Corruption Layer
|
|
The domain uses the `ITestGeneratorFactory` to isolate framework-specific code generation from the core domain logic.
|
|
|
|
## Task Handlers
|
|
|
|
Task types handled by this domain for Queen coordination:
|
|
|
|
| Task Type | Handler | Description |
|
|
|-----------|---------|-------------|
|
|
| `generate-tests` | `generateTests()` | Generate tests for source files |
|
|
| `generate-tdd` | `generateTDDTests()` | TDD workflow generation |
|
|
| `generate-property` | `generatePropertyTests()` | Property-based test generation |
|
|
| `learn-patterns` | `learnPatterns()` | Extract patterns from tests |
|
|
|
|
## Configuration
|
|
|
|
```typescript
|
|
const TEST_GENERATION_DEFAULTS = {
|
|
framework: 'vitest',
|
|
testType: 'unit',
|
|
coverageTarget: 80,
|
|
maxTestsPerFunction: 5,
|
|
includeEdgeCases: true,
|
|
includeBoundaryTests: true
|
|
};
|
|
```
|
|
|
|
## ADR References
|
|
|
|
- **ADR-051**: LLM-powered test enhancement
|
|
- **ADR-001**: Integration with agentic-flow patterns
|