Property Testing in Effekt
Testing is one of the most important methods for ensuring software quality. However, traditional example-based testing methods have inherent limitations: they are restricted to evaluating individual scenarios, yet they are often used to justify broader claims than these scenarios can support.
Property-based testing offers an alternative approach that is, in many cases, more powerful. Rather than focusing on specific scenarios, property-based testing allows programmers to define general properties about a program, which are then automatically verified against a wide range of generated inputs. This approach enables developers to uncover edge cases and subtle bugs that might otherwise go undetected using standard testing practices.
The goal of this thesis is to leverage the algebraic effects and handlers provided by the Effekt programming language to design and implement a property-based testing library for Effekt.