property-based-testing

Installation
SKILL.md

What this skill does

Guides property-based testing (PBT) across Python, Rust, JavaScript/TypeScript, Solidity, and Go to surface security-relevant edge cases that example-based unit tests systematically miss. Rather than asserting that specific inputs produce specific outputs, PBT defines invariants the system must always satisfy — then lets a framework generate hundreds or thousands of inputs to try to break them. This skill covers property identification, framework selection, test writing, counterexample minimization, and failure triage with a focus on overflow/underflow, deserialization roundtrips, access control invariants, and state machine violations.

When to use

  • When auditing cryptographic primitives, parsers, or serialization libraries for correctness under adversarial input
  • When reviewing smart contracts for arithmetic invariants before or alongside a formal audit
  • When a function has a large or unbounded input domain that example tests cannot adequately cover
  • When debugging a known crash and needing a minimal reproducible input automatically
  • When adding regression coverage to a function that previously had a security-relevant bug

Prerequisites

Install the framework for the target language:

Installs
5
GitHub Stars
21
First Seen
May 9, 2026
property-based-testing — woohyun212/security-skill