  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.
