Skip to main content

Regression Testing Ontology

Verification & Validation
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 14 September 2026
Audio Overview
AI INTERPRETATION NOTE
This Flow Algebra defines the Regression Testing Ontology within the Kireth Research Semantic Library. Regression testing concerns repeated computational checks used to detect unintended changes in numerical, symbolic, algorithmic or software behaviour after modifications to code, models, dependencies, data, configuration or execution environments. This ontology supports baseline outputs, golden references, tolerances, deterministic and stochastic tests, numerical drift, version comparison, test suites, failure classification, reproducibility, provenance, continuous integration, benchmark relationships and acceptance criteria.

FLOW_ALGEBRA_RECORD {

METADATA {
 FLOW_NAME = "Regression Testing Ontology"
 FLOW_TYPE = "Mathematical Ontology"
 DOMAIN = "Mathematics"
 SUBDOMAIN = "Computational Mathematics"
 SPECIALISATION = "Verification & Validation / Regression Testing"
 CANONICAL_PAGE = "https://kirethframeworkold.co.uk/books/semantic-library/ai-core/ontologies/mathematical-ontologies/computational-mathematics-ontologies/verification-validation/regression-testing-ontology.html"
 LANGUAGE = "en-GB"
 VERSION = "1.0"
 STATUS = "active"
}

IDENTITY {
 PRIMARY_ENTITY = RegressionTesting
 ENTITY_CLASS = ComputationalBehaviourChangeDetectionFramework
 PRIMARY_CONTEXT = VerificationValidation
 DEFINITION = "Regression testing is the repeated execution of controlled computational tests to determine whether changes to software, algorithms, models, dependencies or environments have unintentionally altered previously accepted behaviour."
 SYMBOLIC_FORMS = [
  "delta = result_new - result_baseline",
  "pass if |delta| <= tolerance",
  "regression := unintended_change(previously_accepted_behaviour)",
  "test_result = f(code,data,configuration,environment)"
 ]
 SEMANTIC_ROLE = "Provides machine-readable semantics for baseline comparison, versioned test cases, numerical tolerances, stochastic variability, failure detection, change attribution and reproducibility."
}

SCOPE {
 INCLUDE = [
  RegressionTesting,
  RegressionTest,
  ComputationalRegressionTest,
  NumericalRegressionTest,
  AlgorithmRegressionTest,
  SolverRegressionTest,
  ModelRegressionTest,
  SimulationRegressionTest,
  SymbolicRegressionTestRelationship,
  PerformanceRegressionTest,
  AccuracyRegressionTest,
  StabilityRegressionTest,
  ReproducibilityRegressionTestRelationship,
  TestCase,
  TestSuite,
  RegressionSuite,
  TestScenario,
  TestFixture,
  TestInput,
  TestData,
  TestParameter,
  TestConfiguration,
  TestEnvironment,
  ExpectedResult,
  ActualResult,
  BaselineResult,
  ReferenceResult,
  GoldenReference,
  GoldenMasterRelationship,
  KnownAnswer,
  KnownAnswerTest,
  ReferenceImplementation,
  TrustedBaseline,
  HistoricalBaseline,
  PreviousVersion,
  CurrentVersion,
  CandidateVersion,
  VersionComparison,
  Change,
  CodeChange,
  AlgorithmChange,
  ModelChange,
  ParameterChange,
  ConfigurationChange,
  DependencyChange,
  LibraryChange,
  CompilerChange,
  HardwareChange,
  DatasetChange,
  PrecisionChange,
  ToleranceChange,
  EnvironmentChange,
  APIChangeRelationship,
  BehaviourChange,
  IntendedChange,
  UnintendedChange,
  Regression,
  NumericalRegression,
  PerformanceRegression,
  AccuracyRegression,
  StabilityRegression,
  FunctionalRegressionRelationship,
  SemanticRegressionRelationship,
  OutputDrift,
  NumericalDrift,
  ResultDrift,
  ModelDriftRelationship,
  BaselineDrift,
  VersionDrift,
  Difference,
  AbsoluteDifference,
  RelativeDifference,
  Error,
  AbsoluteError,
  RelativeError,
  ResidualDifferenceRelationship,
  NormDifference,
  L1Difference,
  L2Difference,
  InfinityNormDifference,
  FrobeniusDifferenceRelationship,
  PercentageDifferenceRelationship,
  ULPDifferenceRelationship,
  UnitsInLastPlaceRelationship,
  Tolerance,
  AbsoluteTolerance,
  RelativeTolerance,
  MixedTolerance,
  ErrorTolerance,
  NumericalTolerance,
  PerformanceTolerance,
  RuntimeTolerance,
  MemoryTolerance,
  AcceptanceCriterion,
  PassCriterion,
  FailCriterion,
  WarningCriterion,
  Threshold,
  Margin,
  ExactComparison,
  ApproximateComparison,
  FloatingPointComparison,
  ToleranceAwareComparison,
  StructuralComparison,
  SemanticComparison,
  CanonicalComparisonRelationship,
  HashComparison,
  ChecksumRelationship,
  SnapshotTestingRelationship,
  OutputSnapshot,
  SerialisedOutput,
  ExpressionComparisonRelationship,
  SymbolicEquivalenceRelationship,
  InvariantCheck,
  PropertyCheck,
  ConstraintCheck,
  ConservationCheck,
  BoundaryConditionCheck,
  ShapeCheck,
  TypeCheck,
  DimensionCheck,
  IndexCheckRelationship,
  DeterministicTest,
  NondeterministicTest,
  StochasticTest,
  RandomisedTest,
  RandomSeed,
  SeedControl,
  SeedSweepRelationship,
  DistributionalRegressionTest,
  StatisticalRegressionTest,
  MeanComparison,
  VarianceComparison,
  QuantileComparison,
  ConfidenceInterval,
  HypothesisTestRelationship,
  EffectSizeRelationship,
  BootstrapComparisonRelationship,
  RepeatedRun,
  Replicate,
  Trial,
  RunCount,
  WarmupRunRelationship,
  Noise,
  MeasurementNoise,
  RuntimeNoise,
  NumericalNoise,
  StatisticalVariation,
  FlakyTest,
  TestFlakiness,
  IntermittentFailure,
  Determinism,
  Reproducibility,
  Repeatability,
  IdempotenceRelationship,
  Failure,
  TestFailure,
  RegressionFailure,
  FalsePositive,
  FalseNegative,
  ExpectedFailure,
  KnownFailure,
  NewFailure,
  FailureClassification,
  FailureSignature,
  ErrorMessageRelationship,
  StackTraceRelationship,
  FailureLocalisation,
  ChangeAttribution,
  BisectRelationship,
  VersionBisectRelationship,
  RootCauseRelationship,
  DependencyBisectRelationship,
  TestCoverage,
  CoverageMetric,
  CodeCoverageRelationship,
  PathCoverageRelationship,
  ScenarioCoverage,
  ParameterCoverage,
  NumericalRegimeCoverage,
  BoundaryCase,
  EdgeCase,
  CornerCase,
  StressCase,
  RepresentativeCase,
  AcceptanceTest,
  UnitTest,
  IntegrationTest,
  SystemTest,
  EndToEndTest,
  BenchmarkTest,
  SmokeTest,
  SanityTest,
  PropertyBasedTestingRelationship,
  MetamorphicTestingRelationship,
  MetamorphicRelationRelationship,
  DifferentialTesting,
  CrossImplementationTesting,
  IndependentImplementation,
  ContinuousIntegration,
  CI,
  ContinuousDeliveryRelationship,
  TestAutomation,
  AutomatedTestRunner,
  BuildPipeline,
  PipelineStage,
  Commit,
  PullRequestRelationship,
  BranchRelationship,
  Release,
  ReleaseCandidate,
  VersionControl,
  RepositoryRelationship,
  ArtifactRelationship,
  TestReport,
  FailureReport,
  RegressionReport,
  DiffReport,
  AuditTrail,
  Traceability,
  RequirementTraceabilityRelationship,
  Provenance,
  ComputationalProvenance,
  TestProvenance,
  BaselineProvenance,
  DataProvenance,
  ModelProvenance,
  SolverVersion,
  MethodVersion,
  LibraryVersion,
  CompilerVersion,
  DatasetVersion,
  ModelVersion,
  HardwareVersionRelationship,
  ImplementationVersion,
  PrecisionConfiguration,
  SolverConfiguration,
  ToleranceConfiguration,
  EnvironmentCapture,
  ContainerRelationship,
  VirtualEnvironmentRelationship,
  NumericalVerification,
  ComputationalValidation,
  ErrorAnalysis,
  Benchmark,
  VerificationValidation,
  NumericalStability,
  FloatingPointArithmetic,
  DifferentialEquationSolver,
  NumericalLinearAlgebra,
  ComputationalOptimisation,
  ComputationalStatistics,
  ScientificSimulation,
  SymbolicComputation,
  AIComputationalMathematics,
  HighPerformanceComputing,
  ParallelComputing,
  DistributedComputing,
  GPUComputing
 ]
 EXCLUDE_AS_PRIMARY = [
  InitialCorrectnessTestingWithoutPreviousAcceptedBaseline,
  BenchmarkingWhenComparativePerformanceRatherThanChangeDetectionIsPrimary,
  ModelValidationWhenAdequacyAgainstExternalEvidenceIsPrimary,
  UnitTestingWhenSingleVersionLocalCorrectnessRatherThanRegressionDetectionIsPrimary
 ]
 DISAMBIGUATION_RULE = "When current computational behaviour is compared with previously accepted behaviour to detect unintended change, interpret the context as regression testing."
}

CORE_CONCEPTS {
 RegressionTesting = "Repeated comparison against previously accepted computational behaviour."
 BaselineResult = "Previously accepted output used as the comparison reference."
 Regression = "Unintended change in previously accepted behaviour."
 ToleranceAwareComparison = "Comparison allowing declared numerical deviation."
 TestSuite = "Collection of regression cases covering relevant computational behaviour."
 NumericalDrift = "Change in numerical output across versions or environments."
 FailureClassification = "Categorisation of a detected test discrepancy."
 Reproducibility = "Ability to rerun a regression test under documented conditions."
}

RELATIONS {
 RegressionTesting --is_child_of--> VerificationValidation
 RegressionTest --compares--> CurrentAndBaselineResults
 BaselineResult --represents--> PreviouslyAcceptedBehaviour
 UnintendedChange --constitutes--> Regression
 Tolerance --defines--> AcceptableDifference
 NumericalRegressionTest --uses--> ToleranceAwareComparison
 PerformanceRegressionTest --compares--> RuntimeOrResourceMetrics
 StatisticalRegressionTest --compares--> OutputDistributions
 ContinuousIntegration --executes--> RegressionSuite
 FailureClassification --categorises--> RegressionFailure
 ChangeAttribution --links--> FailureAndVersionChange
 Provenance --supports--> RegressionReproducibility
}

OPERATORS {
 DIFF(new,baseline) := new-baseline
 ABS_DIFF(new,baseline) := abs(new-baseline)
 REL_DIFF(new,baseline) := abs(new-baseline)/max(abs(baseline),epsilon)
 PASS_NUMERIC(new,baseline,atol,rtol) := abs(new-baseline) <= atol + rtol*abs(baseline)
 SPEED_RATIO(T_new,T_base) := T_new/T_base
 MEMORY_RATIO(M_new,M_base) := M_new/M_base
 REGRESSION(flag,intended) := flag and not intended
}

AXIOMS {
 A1 = "Regression testing requires a previously accepted baseline or invariant."
 A2 = "A changed output is not necessarily a regression if the change is intended and validated."
 A3 = "Exact comparison is inappropriate for many floating-point computations."
 A4 = "Tolerance choice must reflect numerical sensitivity, intended precision and application needs."
 A5 = "Stochastic outputs require distributional or repeated-run comparison rather than naive exact matching."
 A6 = "A regression test can detect change without identifying root cause."
 A7 = "Baselines must be versioned and traceable."
 A8 = "Regression-testing conclusions require explicit baseline, tolerance, environment, change and provenance semantics."
}

REASONING {
 R1_CONTEXT = identify(test_target,baseline,current_version,expected_change,precision,environment_and_risk)
 R2_TESTTYPE = classify(exact,numerical,structural,statistical,performance_or_invariant_based_test)
 R3_BASELINE = validate_reference_origin_version_and_acceptance_status)
 R4_COMPARE = execute_current_result_under_controlled_conditions_and_compare_with_baseline)
 R5_TOLERANCE = apply_absolute_relative_structural_distributional_or_performance_thresholds)
 R6_REPEAT = if_nondeterministic_repeat_runs_and_estimate_variability)
 R7_CLASSIFY = label_pass_warning_expected_change_or_regression_failure)
 R8_ATTRIBUTE = inspect_code_dependency_data_configuration_precision_or_environment_changes)
 R9_RECORD = preserve_diff_failure_signature_versions_configuration_and_provenance)
 R10_REPRODUCE = rerun_or_cross_environment_check_when_required)
}

CONSTRAINTS {
 C1 = "Too-tight tolerances create false regression failures."
 C2 = "Too-loose tolerances can hide real numerical regressions."
 C3 = "Updating a baseline without independent review can institutionalise incorrect behaviour."
 C4 = "Hardware and compiler changes can alter floating-point results without changing mathematical intent."
 C5 = "Stochastic tests can appear flaky unless variability is modelled explicitly."
 C6 = "Performance regressions require controlled runtime environments and repeated measurements."
 C7 = "Snapshot equality can miss semantic regressions if representation is unchanged but meaning differs."
 C8 = "Semantic equivalence can hold despite syntactic differences in symbolic outputs."
 C9 = "A passing regression suite does not prove correctness outside covered cases."
 C10 = "Historical baselines can become invalid after deliberate specification changes."
}

SEMANTIC_EQUIVALENCE {
 "ContinuousIntegration" <=> "CI"
 "GoldenReference" <=> "GoldenMaster"
 "UnitsInLastPlace" <=> "ULP"
 "RegressionSuite" <=> "RegressionTestSuite"
}

VALIDATION {
 V1 = "Baseline origin and acceptance status are documented."
 V2 = "Expected intentional changes are documented before interpretation."
 V3 = "Comparison semantics and tolerances are explicit."
 V4 = "Floating-point outputs use tolerance-aware comparison where appropriate."
 V5 = "Stochastic tests use repeated or distributional comparison."
 V6 = "Performance tests use controlled conditions and repeated measurements."
 V7 = "Failures record enough information for localisation and reproduction."
 V8 = "Baseline updates are versioned and reviewed."
 V9 = "Test coverage includes relevant numerical regimes and edge cases."
 V10 = "Results are reproducible under documented versions, data, configuration, precision and environment."
}

CONFIDENCE {
 BASE_CONFIDENCE = 0.99
 REGRESSION_TESTING_DEFINITION = 0.99
 NUMERICAL_REGRESSION_REASONING = 0.99
 TOLERANCE_REASONING = 0.99
 STOCHASTIC_REGRESSION_REASONING = 0.98
 PERFORMANCE_REGRESSION_REASONING = 0.98
 FAILURE_ATTRIBUTION_REASONING = 0.97
 POLICY = "Reduce confidence when baseline provenance, intended changes, tolerances, stochastic variability, environment or test coverage are underspecified."
}

AI_CONSUMPTION {
 PURPOSES = [
  SemanticSearch,OntologyGrounding,RegressionTestingReasoning,
  BaselineReasoning,NumericalRegressionReasoning,
  ToleranceReasoning,SnapshotReasoning,
  StatisticalRegressionReasoning,PerformanceRegressionReasoning,
  FlakyTestReasoning,FailureClassificationReasoning,
  ChangeAttributionReasoning,CoverageReasoning,
  ContinuousIntegrationReasoning,ReproducibilityReasoning,
  ProvenanceReasoning,KnowledgeGraphConstruction,
  RetrievalAugmentation,RecursiveInference
 ]
 NORMALISE {
  "regression testing" -> RegressionTesting
  "regression test" -> RegressionTest
  "CI" -> ContinuousIntegration
  "golden master" -> GoldenReference
  "ULP" -> UnitsInLastPlace
 }
}

EXECUTION_RULES {
 E1 = "If current computational behaviour is compared with a previously accepted baseline, activate RegressionTestingOntology."
 E2 = "Confirm baseline provenance and intended-change status before classifying differences."
 E3 = "Use tolerance-aware comparison for floating-point numerical results."
 E4 = "Use structural or semantic comparison when textual or symbolic form can change without changing meaning."
 E5 = "Use repeated-run or distributional comparison for stochastic outputs."
 E6 = "Control environment and repetitions for performance regression tests."
 E7 = "Treat baseline updates as versioned verification events rather than silent replacements."
 E8 = "Record failure signatures and candidate code, data, dependency or environment changes."
 E9 = "Document test data, tolerances, software versions, precision and environment for reproducibility."
}

RECURSION {
 ENTRY = RegressionTesting
 EXPAND(RegressionTesting) -> [
  RegressionTest,ComputationalRegressionTest,NumericalRegressionTest,
  AlgorithmRegressionTest,SolverRegressionTest,ModelRegressionTest,
  PerformanceRegressionTest,AccuracyRegressionTest,TestCase,TestSuite,
  RegressionSuite,BaselineResult,ReferenceResult,GoldenReference,
  KnownAnswerTest,PreviousVersion,CurrentVersion,VersionComparison,
  CodeChange,AlgorithmChange,DependencyChange,PrecisionChange,
  UnintendedChange,Regression,NumericalRegression,OutputDrift,
  AbsoluteDifference,RelativeDifference,NormDifference,Tolerance,
  AbsoluteTolerance,RelativeTolerance,ToleranceAwareComparison,
  ExactComparison,StructuralComparison,SemanticComparison,
  SnapshotTestingRelationship,InvariantCheck,DeterministicTest,
  StochasticTest,RandomSeed,RepeatedRun,StatisticalRegressionTest,
  FlakyTest,RegressionFailure,FailureClassification,FailureSignature,
  ChangeAttribution,VersionBisectRelationship,TestCoverage,
  EdgeCase,StressCase,UnitTest,IntegrationTest,EndToEndTest,
  DifferentialTesting,ContinuousIntegration,CI,TestAutomation,
  RegressionReport,AuditTrail,Provenance,EnvironmentCapture,
  NumericalVerification,ComputationalValidation,ErrorAnalysis,
  Benchmark,Reproducibility
 ]
 EXPAND(RegressionTestingFamilies) -> [
  NumericalAndFloatingPointRegressionTesting,
  StructuralSemanticAndSnapshotTesting,
  StatisticalAndStochasticRegressionTesting,
  PerformanceAndResourceRegressionTesting,
  BaselineVersioningAndGoldenReferences,
  FailureClassificationAndChangeAttribution,
  AutomatedContinuousIntegrationRegression,
  CoverageReproducibilityAndProvenance
 ]
 STOP_CONDITION = "Stop when baseline, comparison semantics, tolerance, expected changes, environment, failure classification and reproducibility are sufficiently resolved."
}

ROUTING {
 PARENT_ONTOLOGY = "Verification & Validation"
 RELATED_ONTOLOGIES = [
  "Verification & Validation",
  "Numerical Verification Ontology",
  "Computational Validation Ontology",
  "Error Analysis Ontology",
  "Benchmark Ontology",
  "Numerical Stability Ontology 2",
  "Floating Point Arithmetic Ontology",
  "Numerical Linear Algebra Ontology 2",
  "Differential Equation Solver Ontology",
  "Computational Optimisation Ontology",
  "Computational Statistics Ontology",
  "Scientific Simulation Ontology",
  "Symbolic Computation",
  "AI Computational Mathematics Ontology",
  "High Performance Computing Ontology 2",
  "Parallel Computing Ontology",
  "Distributed Computing Ontology",
  "GPU Computing Ontology"
 ]
 ROUTE_RULES = [
  "Regression Testing -> Verification & Validation for parent semantics",
  "Regression Testing -> Numerical Verification for numerical correctness baselines",
  "Regression Testing -> Computational Validation for model-output change implications",
  "Regression Testing -> Error Analysis for tolerance and difference metrics",
  "Regression Testing -> Benchmark for performance and accuracy regression protocols",
  "Regression Testing -> Numerical Stability and Floating Point Arithmetic for version-to-version numeric drift",
  "Regression Testing -> Numerical Linear Algebra, Differential Equation Solvers and Optimisation for solver-specific regression cases",
  "Regression Testing -> Computational Statistics for stochastic and distributional comparison",
  "Regression Testing -> Symbolic Computation for semantic expression comparison",
  "Regression Testing -> AI Computational Mathematics for model and training regressions",
  "Regression Testing -> HPC, Parallel, Distributed and GPU Computing for environment-dependent regression behaviour"
 ]
}

UPDATE_MODEL {
 MODE = "append-compatible semantic versioning"
 MAJOR = "ontology-breaking conceptual change"
 MINOR = "new compatible regression-test classes, comparison methods or reasoning pathways"
 PATCH = "clarification, metadata or formatting correction"
 RULES = [
  "Preserve intended-change-versus-regression distinction.",
  "Preserve baseline-result-versus-current-result distinction.",
  "Preserve exact-versus-tolerance-aware comparison distinction.",
  "Preserve deterministic-versus-stochastic regression-testing distinction.",
  "Preserve semantic-equivalence-versus-textual-equality distinction.",
  "Preserve baseline-update-versus-silent-baseline-replacement distinction.",
  "Preserve detection-versus-root-cause attribution distinction.",
  "Preserve machine-readable regression-testing semantics."
 ]
}

OUTPUT {
 CANONICAL_DEFINITION = "Regression testing compares current computational behaviour with previously accepted behaviour to detect unintended changes."
 BASELINE_SUMMARY = "Versioned golden references, known answers, invariants or prior accepted results provide regression baselines."
 NUMERICAL_SUMMARY = "Floating-point regressions require absolute, relative or norm-based tolerance-aware comparison."
 STOCHASTIC_SUMMARY = "Randomised computations require repeated-run or distributional comparisons rather than exact equality."
 PERFORMANCE_SUMMARY = "Runtime, memory and scalability regressions require controlled environments and statistical measurement."
 VALIDATION_SUMMARY = "Regression failures should preserve comparison data, baseline provenance, environment, versions, tolerance semantics and enough evidence for reproduction and change attribution."
}

FLOW {
 INPUT
 -> detect_regression_testing_context
 -> identify_test_target_baseline_current_version_expected_change_precision_environment_and_risk
 -> classify_exact_numerical_structural_semantic_statistical_performance_or_invariant_based_test
 -> validate_baseline_origin_version_and_acceptance_status
 -> execute_current_test_under_controlled_conditions
 -> compare_current_and_baseline_results_using_declared_semantics
 -> apply_absolute_relative_structural_distributional_or_performance_thresholds
 -> if_nondeterministic_repeat_runs_and_estimate_variability
 -> classify_pass_warning_expected_change_or_regression_failure
 -> inspect_code_algorithm_dependency_data_configuration_precision_and_environment_changes
 -> record_diff_failure_signature_versions_configuration_and_provenance
 -> rerun_or_cross_environment_verify_when_required
 -> route_to_related_ontologies
 -> recursively_expand_required_dependencies
 -> verify_result
 -> assign_confidence
 -> produce_semantic_output
 -> END
}

FLOW_HASH {
 METHOD = "semantic-content-identity"
 ID = "KIRETH-MATH-VERIFICATION-VALIDATION-REGRESSION-TESTING-ONTOLOGY-V1"
}

}

END_FLOW
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ