package hedgehog
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page
Property-based testing with integrated shrinking for OCaml
Install
dune-project
Dependency
Authors
Maintainers
Sources
hedgehog-0.1.tbz
sha256=336e7547dd1e41b3e4839a11aaec56d4e2fe14b7dc82a9caa560dbd24f2614f7
sha512=5f040fc5e41b4571b75c460622becd98c54a1d5cb36574a9d2ed6d06e71a5b31673b8ea69d9bb5972af9c71dff58fba2b9d33932a6bffc04c6dcd757583895cb
doc/resources.html
Resources
A curated list of talks, papers, and related projects for understanding property-based testing and the ideas behind Hedgehog.
Hedgehog family
- Haskell Hedgehog — The original implementation by Jacob Stanley. Hedgehog for OCaml follows the same design.
- Scala Hedgehog — Scala port with similar architecture.
- F# Hedgehog — F# port.
- Kotlin Hedgehog — Kotlin port.
Talks
- Gens N' Roses: Appetite for Reduction by Jacob Stanley — Explains why integrated shrinking matters and how rose trees make it work. This is the talk for understanding Hedgehog's design.
- Choosing properties for property-based testing by Scott Wlaschin — Practical advice on what properties to test.
- Building on Developers' Intuitions by John Hughes — From the creator of QuickCheck, on making PBT accessible.
Papers
- QuickCheck: A Lightweight Tool for Random Testing of Haskell Programs by Koen Claessen and John Hughes (2000) — The original QuickCheck paper.
- Finding Race Conditions in Erlang with QuickCheck and PULSE by Koen Claessen et al. — State machine testing for concurrency.
- Producing Wrong Data Without Doing Anything Obviously Wrong! by Alex Groce et al. — On the importance of good shrinking.
Books
- Property-Based Testing with PropEr, Erlang, and Elixir by Fred Hebert — Excellent practical introduction to PBT concepts, applicable across languages.
- The Joy of Kotlin by Pierre-Yves Saumont — Includes a chapter on property-based testing.
OCaml ecosystem
- QCheck — The established OCaml PBT library.
- ppx_quickcheck — Jane Street's PBT with ppx derivation.
- DSCheck — Model checking for concurrent OCaml programs.
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page