paperbot · PL 论文追踪

RSS

Random testing of a higher-order blockchain language (experience report)

ICFP 6(ICFP)2022
Tram Hoang, Anton Trunov, Leonidas Lampropoulos, Ilya Sergey

尚未生成 AI 速览(可能缺少 API key 或等待下次运行补跑)。

原文摘要(Abstract)

We describe our experience of using property-based testing---an approach for automatically generating random inputs to check executable program specifications---in a development of a higher-order smart contract language that powers a state-of-the-art blockchain with thousands of active daily users. We outline the process of integrating QuickChick---a framework for property-based testing built on top of the Coq proof assistant---into a real-world language implementation in OCaml. We discuss the challenges we have encountered when generating well-typed programs for a realistic higher-order smart contract language, which mixes purely functional and imperative computations and features runtime resource accounting. We describe the set of the language implementation properties that we tested, as well as the semantic harness required to enable their validation. The properties range from the standard type safety to the soundness of a control- and type-flow analysis used by the optimizing compiler. Finally, we present the list of bugs discovered and rediscovered with the help of QuickChick and discuss their severity and possible ramifications.

链接与引用

DOI 原文 ·

BibTeX
@article{paperbot1510,
  title = {Random testing of a higher-order blockchain language (experience report)},
  author = {Tram Hoang and Anton Trunov and Leonidas Lampropoulos and Ilya Sergey},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {6},
  number = {ICFP},
  year = {2022},
  doi = {10.1145/3547653}
}