Finding Bugs with Specification-Based Testing is Easy!
Janice Chin, David Pearce

TL;DR
This paper evaluates the effectiveness of specification-based automated testing in finding bugs in Whiley programs, demonstrating its practical utility and efficiency through extensive experiments and real-world case studies.
Contribution
It introduces novel approaches for parameterizing input spaces in Whiley testing and provides a comprehensive empirical analysis of its bug-finding capabilities.
Findings
Automated testing effectively finds bugs in Whiley programs.
Sampling techniques reduce testing time with minimal impact on bug detection.
The tool successfully identified bugs in real-world library code.
Abstract
Automated specification-based testing has a long history with several notable tools having emerged. For example, QuickCheck for Haskell focuses on testing against user-provided properties. Others, such as JMLUnit, use specifications in the form of pre- and post-conditions to drive testing. An interesting (and under-explored) question is how effective this approach is at finding bugs in practice. In general, one would assume automated testing is less effective at bug finding than static verification. But, how much less effective? To shed light on this question, we consider automated testing of programs written in Whiley -- a language with first-class support for specifications. Whilst originally designed with static verification in mind, we have anecdotally found automated testing for Whiley surprisingly useful and cost-effective. For example, when an error is detected with automated…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
