/** * F5 CLI - Test Case Generator * Generate test cases from requirements * * @module @f5/cli/core/test-generator * @version 1.0.0 */ export type TestType = 'positive' | 'negative' | 'boundary' | 'edge' | 'security' | 'performance'; export type TestPriority = 'critical' | 'high' | 'medium' | 'low'; export interface TestStep { stepNumber: number; action: string; testData?: string; expectedResult?: string; } export interface BDDScenario { feature: string; scenario: string; tags: string[]; given: string[]; when: string[]; then: string[]; examples?: Array>; } export interface TestCase { id: string; title: string; requirementId: string; requirementDescription: string; type: TestType; priority: TestPriority; preconditions: string[]; steps: TestStep[]; expectedResult: string; testData?: string; bddScenario?: BDDScenario; tags: string[]; } export interface TraceabilityEntry { requirementId: string; requirementDescription: string; testCaseIds: string[]; testTypes: TestType[]; coverage: 'full' | 'partial' | 'none'; coveragePercent: number; } export interface TestGenerationResult { testCases: TestCase[]; traceabilityMatrix: TraceabilityEntry[]; coverage: { totalRequirements: number; coveredRequirements: number; uncoveredRequirements: string[]; coveragePercent: number; byType: Record; }; bddFeatureFile: string; summary: { totalTestCases: number; byPriority: Record; byType: Record; }; } export interface RequirementForTest { id: string; description: string; acceptanceCriteria?: string[]; priority?: string; type?: string; notes?: string; } export declare class TestGenerator { private testIndex; private prefix; constructor(options?: { prefix?: string; }); /** * Generate test cases from requirements */ generate(requirements: RequirementForTest[], options?: { includeNegative?: boolean; includeBoundary?: boolean; includeBDD?: boolean; prefix?: string; }): TestGenerationResult; /** * Generate tests for a single requirement */ private generateForRequirement; /** * Find matching action pattern */ private findMatchingPattern; /** * Create a test case */ private createTestCase; /** * Create test from acceptance criteria */ private createTestFromAcceptanceCriteria; /** * Create boundary test */ private createBoundaryTest; /** * Check if requirement has numeric constraints */ private hasNumericConstraints; /** * Create BDD scenario */ private createBDDScenario; /** * Map priority string to TestPriority */ private mapPriority; /** * Generate BDD feature file (Gherkin format) */ generateBDDFeatureFile(testCases: TestCase[]): string; /** * Generate test case table (Markdown) */ generateTestTable(testCases: TestCase[]): string; /** * Generate traceability matrix (Markdown) */ generateTraceabilityMatrix(result: TestGenerationResult): string; /** * Generate full report */ generateFullReport(result: TestGenerationResult): string; }