{
  "status": "research",
  "advantages": [],
  "limitations": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-12",
  "slug": "crash-test-oracle",
  "term": "Crash-test oracle",
  "aliases": [
    "recovery correctness checker"
  ],
  "definition": "A crash-test oracle is a checker that decides whether a recovered state satisfies the specified correctness and durability contract.",
  "note": "The allowed outcome can depend on which durable acknowledgements were observed before the fault. Merely opening recovered files does not check that contract; ALICE requires application-specific checkers.",
  "related": [
    "crash-consistency",
    "bounded-crash-testing",
    "persistence-ordering"
  ],
  "citations": [
    {
      "id": "pillai",
      "title": "Pillai et al. All File Systems Are Not Created Equal: On the Complexity of Crafting Crash-Consistent Applications. OSDI 2014; sections 3-4.",
      "url": "https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-pillai.pdf",
      "accessed": "2026-10-12"
    },
    {
      "id": "alice-docs",
      "title": "University of Wisconsin-Madison ADSL. ALICE user documentation: checker contract and caveats.",
      "url": "https://research.cs.wisc.edu/adsl/Software/alice/doc/adsl-doc.html",
      "accessed": "2026-10-12"
    },
    {
      "id": "hesela",
      "title": "Hesela. Crash-consistency tests: the oracle is part of the result.",
      "url": "https://hesela.com/analyses/crash-testing-oracles-and-bounds/",
      "accessed": "2026-10-12"
    }
  ]
}
