property-based-testing

Guide property-based testing across languages and smart contracts.

Updated Jan 17, 2026
One-click install
npx skills add https://github.com/mejango/juicy-vision --skill property-based-testing-mejango
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: property-based-testing
Source: https://github.com/mejango/juicy-vision/tree/main/.claude/plugins/property-based-testing/skills/property-based-testing
Command: npx skills add https://github.com/mejango/juicy-vision --skill property-based-testing-mejango

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Property-based testing helps teams replace brittle example-based tests with input-driven validation, enabling earlier detection of edge cases and more robust software.

Core Features & Use Cases

  • Guidance to identify PBT opportunities across languages and smart contracts (e.g., encode/decode, validators, normalizers, pure functions, invariants).
  • Techniques to design property-based tests with appropriate input strategies and clear properties.
  • Reviews of existing PBT tests to surface tautologies, vacuous tests, and weak assertions.
  • Design workflow using Property-Driven Development to define specifications before implementation.

Quick Start

Prompt Claude to design a roundtrip property for a serializer using a Hypothesis/fast-check style strategy in Python or JavaScript.

Frequently Asked Questions about property-based-testing

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
What is property-based testing and how does it find edge cases?

Property-based testing replaces brittle example-based tests with input-driven validation, generating randomized inputs to detect edge cases and verify invariants for more robust software. It validates that specific properties hold true across a wide range of generated data.

How do I design property-based tests for serialization and validation functions?

Design property-based tests by defining clear properties and appropriate input strategies for serialization, normalization, and validation. Use Property-Driven Development to specify roundtrip properties and invariants before writing the actual implementation code.

Can I use property-based testing for smart contracts in Solidity and Vyper?

Yes, property-based testing supports smart contracts written in Solidity and Vyper. It guides the application of invariant testing for contract validation using specialized tools like Echidna or Medusa to ensure contract robustness against unexpected states.

Does this property-based testing guidance work with Python Hypothesis and JavaScript fast-check?

Yes, the guidance covers practical use of libraries like Hypothesis for Python and fast-check for JavaScript. It provides executable patterns and input strategies across multiple languages including Rust, Go, Java, and Haskell.

How do I review existing property-based tests for weak assertions and tautologies?

Review existing property-based tests to surface tautologies, vacuous tests, and weak assertions. This process identifies tests that always pass regardless of input quality, ensuring your input strategies and properties genuinely validate logic.