Using Relational Problems to Teach Property-Based Testing
Fri 26 Mar 2021 15:00 - 15:30 at Virtual Space A - Session 16 Chair(s): Theo D'Hondt
CONTEXT The success of QuickCheck has led to the development of property-based testing (PBT) libraries for many languages and the process is getting increasing attention. However, unlike regular testing, PBT is not widespread in collegiate curricula.
Furthermore, the value of PBT is not limited to software testing. The growing use of formal methods in, and the growth of software synthesis, all create demand for techniques to train students and developers in the art of specification writing. We posit that PBT forms a strong bridge between testing and the act of specification: it’s a form of testing where the tester is actually writing abstract specifications.
INQUIRY Even well-informed technologists mention the difficulty of finding good motivating examples for its use. We take steps to fill this lacuna.
APPROACH & KNOWLEDGE We find that the use of “relational” problems—those for which an input may admit multiple valid outputs—easily motivates the use of PBT. We also notice that such problems are readily available in the computer science pantheon of problems (e.g., many graph and sorting algorithms). We have been using these for some years now to teach PBT in collegiate courses.
GROUNDING In this paper, we describe the problems we use and report on students’ completion of them. We believe the problems overcome some of the motivation issues described above. We also show that students can do quite well at PBT for these problems, suggesting that the topic is well within their reach. In the process, we introduce a simple method to evaluate the accuracy of their specifications, and use it to characterize their common mistakes.
IMPORTANCE Based on our findings, we believe that relational problems are an underutilized motivating example for PBT. We hope this paper initiates a catalog of such problems for educators (and developers) to use, and also provides a concrete (though by no means exclusive) method to analyze the quality of PBT.
Wed 24 MarDisplayed time zone: Belfast change
15:00 - 16:30 | Session 3Research Papers at Virtual Space A Chair(s): Jeremy Gibbons Department of Computer Science, University of Oxford | ||
15:00 30mLive Q&A | Using Relational Problems to Teach Property-Based Testing Research Papers John Wrenn Brown University, Tim Nelson Brown University, Shriram Krishnamurthi Brown University, United States DOI Media Attached | ||
15:30 30mLive Q&A | Bacatá: Notebooks for DSLs, Almost for Free Research Papers Mauricio Verano Merino Technische Universiteit Eindhoven, Jurgen Vinju CWI, Netherlands, Tijs van der Storm CWI & University of Groningen, Netherlands DOI Media Attached | ||
16:00 30mLive Q&A | Reusing Static Analysis across Different Domain-Specific Languages using Reference Attribute Grammars Research Papers Johannes Mey Technische Universität Dresden, Thomas Kühn Karlsruhe Institute of Technology, René Schöne Technische Universität Dresden, Uwe Aßmann TU Dresden, Germany DOI Media Attached |
Fri 26 MarDisplayed time zone: Belfast change
15:00 - 16:30 | |||
15:00 30mLive Q&A | Using Relational Problems to Teach Property-Based Testing Research Papers John Wrenn Brown University, Tim Nelson Brown University, Shriram Krishnamurthi Brown University, United States DOI Media Attached | ||
15:30 30mLive Q&A | Reference Capabilities for Safe Parallel Array Programming Research Papers Beatrice Åkerblom Stockholm University, Elias Castegren KTH, Tobias Wrigstad Uppsala University, Sweden DOI Media Attached | ||
16:00 30mLive Q&A | Lake symbols for island parsing Research Papers Katsumi Okuda The University of Tokyo / Mitsubishi Electric Corporation, Shigeru Chiba The University of Tokyo DOI Media Attached |