Skip to content

Commit

Permalink
Add collection of PBT ressources
Browse files Browse the repository at this point in the history
This is a collection of PBT ressources that I've found useful in the
past. My hope is that others find/have useful ressources to share
too, so they can be curated here. This also links any reimplementations
of blogposts people have done with Supposition.jl!
  • Loading branch information
Seelengrab committed Feb 20, 2024
1 parent 99a392c commit 965e151
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 0 deletions.
1 change: 1 addition & 0 deletions docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ function builddocs(clear=false)
"Alignment of Documentation" => "Examples/docalignment.md",
"Stateful Testing" => "Examples/stateful.md",
],
"PBT Ressources" => "ressources.md",
"FAQ" => "faq.md",
"Interfaces" => "interfaces.md",
"Benchmarks" => "benchmarks.md",
Expand Down
23 changes: 23 additions & 0 deletions docs/src/ressources.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# PBT Ressources

This page contains a collection of PBT tutorials and other useful ressources
for learning PBT techniques. Most, if not all, should be directly translatable to
Supposition.jl in one form or another. If you find a new tutorial or ressource
that helped you test your code with Supposition.jl in some manner, please don't
hesitate to open a PR adding the ressource here!

* [Hypothesis testing with Oracle functions](https://www.hillelwayne.com/post/hypothesis-oracles/) by Hillel Wayne
* A blogpost about using existing (but slower/partially incorrect) implementations to make sure
a refactored or new implementation still conforms to all expected contracts of the old implementation.
* [Solving the Water Jug Problem from Die Hard 3 with TLA+ and Hypothesis](https://nchammas.com/writing/how-not-to-die-hard-with-hypothesis) by Nicholas Chammas
* A blogpost about helping out John McClan (Bruce Willis) and Zeus Carver (Samuel L. Jackson) ~defuse a bomb~ solve fun children's games.
* This blogpost has been translated to Supposition.jl! Check it out in [the examples](@ref "Juggling Jugs").
* [Rule Based Stateful Testing](https://hypothesis.works/articles/rule-based-stateful-testing/) by David R. MacIver
* A blogpost from the main developer behind Hypothesis, showing how to test stateful systems with Hypothesis.
* This blogpost has been translated to Supposition.jl! Check it out in [the examples](@ref "Juggling Jugs").
* Note: Not all features of Hypothesis have been ported to Supposition.jl, in particular the UX for stateful testing
is very bare bones. The linked example contains a very manual implementation of the features utilized by
Hypothesis for much the same thing, but should be easily adaptable for all kinds of stateful tests.
* [Proprty Testing Stateful Code in Rust](https://rtpg.co/2024/02/02/property-testing-with-imperative-rust/) by Raphael Gashignard
* A blogpost about fuzzing internal datastructures of [nushell](https://www.nushell.sh/) using PBT and the Rust library
[proptest](https://github.com/proptest-rs/proptest).

0 comments on commit 965e151

Please sign in to comment.