Mica: Automated Differential Testing for OCaml Modules
<|reference_start|>Mica: Automated Differential Testing for OCaml Modules: 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.<|reference_end|>
@article{ng2024mica:,
    title={Mica: Automated Differential Testing for OCaml Modules},
    author={Ernest Ng, Harrison Goldstein, Benjamin C. Pierce},
    journal={arXiv preprint arXiv:2408.14561},
    year={2024},
    archivePrefix={arXiv},
    eprint={2408.14561},
    primaryClass={cs.PL cs.SE}
}