/** * Agentic QE v3 - Testability Scorer Service * Evaluates how testable requirements are */ import { Result } from '../../../shared/types/index.js'; import { MemoryBackend } from '../../../kernel/interfaces.js'; import { ITestabilityScoringService, Requirement, TestabilityScore } from '../interfaces.js'; /** * Configuration for the testability scorer */ export interface TestabilityScorerConfig { defaultThreshold: number; weights: FactorWeights; enableAIScoring: boolean; } /** * Factor weights for testability calculation */ export interface FactorWeights { specificity: number; measurability: number; atomicity: number; feasibility: number; traceability: number; independency: number; } /** * Testability Scorer Service Implementation * Evaluates requirements using SMART-like criteria adapted for testability */ export declare class TestabilityScorerService implements ITestabilityScoringService { private readonly memory; private readonly config; constructor(memory: MemoryBackend, config?: Partial); /** * Score a single requirement's testability */ scoreRequirement(requirement: Requirement): Promise>; /** * Score multiple requirements */ scoreRequirements(requirements: Requirement[]): Promise>>; /** * Get improvement suggestions based on score */ suggestImprovements(requirement: Requirement, score: TestabilityScore): Promise>; /** * Check if score meets threshold */ meetsThreshold(score: TestabilityScore, threshold: number): boolean; /** * Score specificity - how specific and unambiguous is the requirement */ private scoreSpecificity; /** * Score measurability - can the requirement be objectively verified */ private scoreMeasurability; /** * Score atomicity - is the requirement focused and not compound */ private scoreAtomicity; /** * Score feasibility - can the requirement be reasonably tested */ private scoreFeasibility; /** * Score traceability - can tests be traced back to this requirement */ private scoreTraceability; /** * Score independency - can this be tested independently */ private scoreIndependency; private categorizeScore; private getSuggestionsForFactor; private storeScore; } //# sourceMappingURL=testability-scorer.d.ts.map