UNPKG

aiwg

Version:

Deployment tool and support utility for AI context. Copies agents, skills, commands, rules, and behaviors into the paths each AI platform reads (Claude Code, Codex, Copilot, Cursor, Warp, OpenClaw, and 6 more) so one source of truth works across 10 platfo

114 lines 3.58 kB
/** * TestCaseGenerator - Generate test cases from use case scenarios * * Transforms parsed use case scenarios into structured test case specifications * following TC-XXX format with test steps, expected results, and data requirements. * * @module src/testing/generators/test-case-generator * @implements @.aiwg/requirements/use-cases/UC-009-generate-test-artifacts.md * @architecture @.aiwg/architecture/software-architecture-doc.md - Section 5.3 TestGenerator * @nfr @.aiwg/requirements/nfr-modules/performance.md - NFR-TEST-01 (<10min for 100 reqs) * @tests @test/unit/testing/test-case-generator.test.ts * @depends @src/testing/generators/use-case-parser.ts * @agent @agentic/code/frameworks/sdlc-complete/agents/test-engineer.md */ import { UseCaseDocument } from './use-case-parser.js'; export interface TestStep { number: number; action: string; expectedResult: string; testData?: string; } export interface TestCase { id: string; name: string; description: string; priority: 'critical' | 'high' | 'medium' | 'low'; type: 'positive' | 'negative' | 'boundary' | 'error'; level: 'unit' | 'integration' | 'e2e'; preconditions: string[]; steps: TestStep[]; postconditions: string[]; testData: TestDataRequirement[]; traceability: { useCaseId: string; scenarioId: string; nfrs: string[]; }; tags: string[]; estimatedDuration?: number; } export interface TestDataRequirement { name: string; type: string; constraints: string[]; examples: string[]; } export interface TestSuite { id: string; name: string; description: string; useCaseId: string; testCases: TestCase[]; coverage: { mainScenario: boolean; extensionsCovered: number; exceptionsCovered: number; total: number; }; generatedAt: string; } export interface GenerationOptions { includeNegativeTests?: boolean; includeBoundaryTests?: boolean; includeErrorTests?: boolean; testLevels?: Array<'unit' | 'integration' | 'e2e'>; maxTestsPerScenario?: number; generateDataRequirements?: boolean; } export interface GenerationResult { success: boolean; suite?: TestSuite; errors: string[]; warnings: string[]; stats: { totalTestCases: number; positiveTests: number; negativeTests: number; boundaryTests: number; errorTests: number; generationTimeMs: number; }; } export declare class TestCaseGenerator { private options; private testCounter; constructor(options?: GenerationOptions); /** * Generate test suite from a use case document * * @param document - Parsed use case document * @returns Generation result with test suite */ generate(document: UseCaseDocument): GenerationResult; /** * Generate test cases from multiple use case documents * * @param documents - Array of parsed use case documents * @returns Map of use case ID to generation result */ generateBatch(documents: UseCaseDocument[]): Map<string, GenerationResult>; private generateScenarioTests; private createPositiveTest; private createErrorTest; private generateNegativeTests; private generateBoundaryTests; private nextTestId; private determineTestLevel; private actionToTestAction; private inferExpectedResult; private inferTestData; private extractDataRequirements; private estimateDuration; } //# sourceMappingURL=test-case-generator.d.ts.map