Developments in Property-Based Testing (Invited Talk)
Property-based testing (aka. QuickCheck) is a successful automated testing approach originating in the programming language community (Claessen-Hughes:ICFP00). It unites the well-known idea of randomized testing with that of ensuring program-specific properties akin to those encountered within verification and theorem proving. Starting as a Haskell library the approach has grown to become language independent with ports to over 30 different programming languages. Over the years property-based testing has been used to pinpoint an impressive amount of software errors in a multitude of settings, initially within academia but more and more so also in the software industry.
In this talk I will first recall the basic concepts of property-based testing and then cover a couple of recent applications, while sharing some of the folklore and community know-how. This includes quite a bit of symbolic program manipulation at the heart of the PEPM community. I will then offer a personal perspective on the approach, both in terms of programming language theory and software engineering.