property-based-testing
Writes, reviews, and debugs property-based tests — Hypothesis, fast-check, proptest, jqwik, rapid, and Echidna or Medusa for Solidity invariants. Use whenever tests should cover a whole input domain instead of a hand-picked list of examples: encode/decode and serialize/deserialize pairs, parsers, canonicalizers and normalizers, validators, numeric and Decimal types, comparators and sort order, data structures, and smart-contract state invariants. Also use when adding cases to an existing @given, fast-check, or proptest suite, when judging whether existing property tests assert anything real, and when a generator has shrunk a counterexample and you need to tell a wrong property from a genuine bug. Not for coverage-guided binary fuzzing (libFuzzer, AFL), mutation-testing campaigns, static analysis, benchmarking, or end-to-end UI tests.
Pinned to revision 768a93096fb1, so it is the text this page describes rather than whatever the author pushed since.
Files
- skills/property-based-testing/SKILL.md
- skills/property-based-testing/README.md
- skills/property-based-testing/UPSTREAM-LICENSE.txt
- skills/property-based-testing/agents/openai.yaml
- skills/property-based-testing/assets/trail-of-bits-mark.svg
- skills/property-based-testing/references/generating.md
- skills/property-based-testing/references/interpreting-failures.md
- skills/property-based-testing/references/libraries.md
- skills/property-based-testing/references/refactoring.md
- skills/property-based-testing/references/reviewing.md
Every link opens the file at its source, pinned to the revision this page describes.