Developments in Property-Based Testing
Monday, May 13, 2019Jan Midtgaard (SDU - University of Southern Denmark)
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. I will then offer a personal
perspective on the approach, both in terms of programming language
theory and software engineering.