English

Mica: Automated Differential Testing for OCaml Modules

Programming Languages 2024-08-28 v1 Software Engineering

Abstract

Suppose we are given two OCaml modules implementing the same signature. How do we check that they are observationally equivalent -- that is, that they behave the same on all inputs? One established technique is to use a property-based testing (PBT) tool such as QuickCheck. Currently, however, this can require significant amounts of boilerplate code and ad-hoc test harnesses. To address this issue, we present Mica, an automated tool for testing observational equivalence of OCaml modules. Mica is implemented as a PPX compiler extension, allowing users to supply minimal annotations to a module signature. These annotations guide Mica to automatically derive specialized PBT code that checks observational equivalence. We discuss the design of Mica and demonstrate its efficacy as a testing tool on various modules taken from real-world OCaml libraries.

Cite

@article{arxiv.2408.14561,
  title  = {Mica: Automated Differential Testing for OCaml Modules},
  author = {Ernest Ng and Harrison Goldstein and Benjamin C. Pierce},
  journal= {arXiv preprint arXiv:2408.14561},
  year   = {2024}
}

Comments

OCaml Workshop 2024

R2 v1 2026-06-28T18:24:27.229Z