Recommended tag: show, because this is definitely something you should be proud of :)
Nice work @cmeiklejohn. Congrats on the awesome results!
Author here. This case study dives into a bit more complex functionality than the previous one, including a few fun bugs that I found using “oracle generators” and property-based testing. I hope these real-world examples are motivating showcases of the effectivenses of PBT in an “industrial” setting. This is not a commercial project, but complicated nonetheless. Enjoy!
Thanks for writing this series. I’m looking forward to adding some property tests to my projects and these posts really help with the thinking and approach.
Thank you so much for the feedback! I’m happy that they’re appreciated. On to the final case study… :)
Great article! Very interesting to read about an application of property-based testing to an unusual domain. Also a very clear example of using oracle generators. I found that generating input data was a tricky problem in PBT, and oracle generators look like a good alternative to distribution-based input generation.
Thank you! Yeah, I’m glad I found this example to showcase how the “backwards” style of oracle generators is practical and can help overcome that issue. And also that it found some bugs! It’s fun when there were actual bugs found, not only “what if I had mad this error” kind of scenarios.
I really enjoy how this article shows various techniques, evalutating how they fail or succeed, and not only the technique that worked best. Hillel’s blog is a streak of good posts!
Thank you! I think it’s important to talk both about what works and what doesn’t work, so people know the pitfalls before they do the same thing.
Using property-based testing at the “integration” level. Put differently, testing the entire application stack with minimal stubs using properties, runnings housands of cases. Also working on a series of articles on this very topic, where 2 out of 5 are published so far at https://wickstrom.tech/blog.html. I love this stuff!