Property-based testing
Hi! You’re probably here because of some talk or lecture I did on property-based testing. A download link to the slides will also appear here after the talk
Slides: Handout
- I know that Python’s
hypothesis
library has a special component for model-based (or stateful) testing. Documentation can be found here.
- I did not cover it because I would have to explain it and my talk already went for quite long.
- Not all property-based testing libraries are guaranteed to have this (good libraries should, though) so using only the basic tools that
hypothesis
gives means that my examples are more transferrable to other libraries and languages.
- My classification of property-based testing design patterns is just a general overview. I have seen other talks where people group property-based testing patterns in different ways. As far as I know, there has been no definitive classification.
- In my explanation of what formal verification is, I was quite vague and my explanation can be interpreted as a program generating the proofs of correctness. Typically, all that proof assisitants do is check if your proof is correct, not generate proofs by themselves. However, automated proving is its own field!
- For those who were disappointed that my talk wasn’t in Haskell, I do apologise. Can I offer you a nice BubbleT in this trying time?
Resources
Here are some resources I found quite useful when researching this topic.
Papers
Blogs
Talks
Just for fun
- John Hughes and co. made a company called QuviQ that provides property-based testing services!
Acknowledgements
Special thanks to the University of New South Wales course COMP3141 “Software System Design and Implementation” for initially introducing me to property-based testing.
Also thanks to Churchill College, University of Cambridge for providing the venue to host my talk and my epic Director of Studies Mr Matthew Ireland for his support and encouragement. You can find out more about the Churchill College CompSci Talks here.
Thanks for listening! ~💜