Affiliation:
1. Chalmers University of Technology
Abstract
QuickCheck is a previously published random testing tool for Haskell programs. In this paper we show how to use it for testing monadic code, and in particular imperative code written using the
ST
monad. QuickCheck tests a program against a specification: we show that QuickCheck's specification language is sufficiently powerful to represent common forms of specifications: algebraic, model-based (both functional and relational), and pre-/post-conditional. Moreover, all these forms of specification can be used directly for testing. We define a new language of monadic properties, and make a link between program testing and the notion of observational equivalence.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
14 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. How to safely use extensionality in Liquid Haskell;Proceedings of the 15th ACM SIGPLAN International Haskell Symposium;2022-09-06
2. Conjectures, Tests and Proofs: An Overview of Theory Exploration;Electronic Proceedings in Theoretical Computer Science;2021-09-06
3. Facebook’s Cyber–Cyber and Cyber–Physical Digital Twins;Evaluation and Assessment in Software Engineering;2021-06-18
4. The essence of live coding: change the program, keep the state!;Proceedings of the 7th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems;2020-11-15
5. Specification testing of agent-based simulation using property-based testing;Autonomous Agents and Multi-Agent Systems;2020-06-19