PropertyDamage.FailureIntelligence.Verification (PropertyDamage v0.2.0)

View Source

Fix verification mode for confirming that fixes are robust.

Runs the original failing seed and variations to ensure:

  1. The original failure no longer reproduces
  2. Similar command sequences also pass
  3. The fix is robust across different conditions

Summary

Functions

Generates a verification report for display.

Quick check if a single seed still fails.

Runs verification against a cluster of similar failures.

Verifies that a fix is robust by testing the original seed and variations.

Verifies multiple fixes at once, useful for batch verification.

Types

options()

@type options() :: [
  adapter: module(),
  adapter_config: map(),
  max_variations: non_neg_integer(),
  variation_range: integer(),
  include_similar: boolean(),
  similar_threshold: float()
]

verification_result()

@type verification_result() :: %{
  status: :verified | :still_failing | :partially_fixed | :flaky,
  original_seed: integer(),
  original_passes: boolean(),
  variations_run: non_neg_integer(),
  variations_passed: non_neg_integer(),
  variations_failed: non_neg_integer(),
  failed_variations: [integer()],
  similar_failures: [PropertyDamage.FailureReport.t()],
  confidence: float(),
  summary: String.t()
}

Functions

format_result(result)

@spec format_result(verification_result()) :: String.t()

Generates a verification report for display.

still_fails?(seed, model, adapter, adapter_config \\ %{})

@spec still_fails?(integer(), module(), module(), map()) :: boolean()

Quick check if a single seed still fails.

verify_cluster(cluster, model, opts)

@spec verify_cluster(
  PropertyDamage.FailureIntelligence.Patterns.cluster(),
  module(),
  options()
) :: %{
  cluster_id: String.t(),
  total: non_neg_integer(),
  fixed: non_neg_integer(),
  remaining: non_neg_integer(),
  status: :fully_fixed | :partially_fixed | :not_fixed,
  remaining_failures: [PropertyDamage.FailureIntelligence.Fingerprint.t()]
}

Runs verification against a cluster of similar failures.

If the fix addresses the root cause, all similar failures should pass.

verify_fix(failure, model, opts \\ [])

Verifies that a fix is robust by testing the original seed and variations.

Options

  • :adapter - The adapter module to use (required)
  • :adapter_config - Configuration for the adapter
  • :max_variations - Maximum number of seed variations to test (default: 10)
  • :variation_range - Range for generating seed variations (default: 1000)
  • :include_similar - Whether to test similar failure patterns (default: true)
  • :similar_threshold - Threshold for similarity matching (default: 0.80)

verify_fixes(failures, model, opts \\ [])

Verifies multiple fixes at once, useful for batch verification.