property-based-testing

Apply property-based testing to verify invariants across codebases and languages.

5|1|Updated Jan 26, 2026
One-click install
npx skills add https://github.com/ed3dai/ed3d-plugins-testing --skill property-based-testing-ed3dai
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: property-based-testing
Source: https://github.com/ed3dai/ed3d-plugins-testing/tree/main/plugins/ed3d-house-style/skills/property-based-testing
Command: npx skills add https://github.com/ed3dai/ed3d-plugins-testing --skill property-based-testing-ed3dai

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill helps teams shift from example-based tests to property-based testing, enabling automatic discovery of edge cases by checking invariants across inputs.

Core Features & Use Cases

  • Property Catalog: organize invariants and test strategies for serialization, normalization, and pure functions.
  • Pattern Detection: identify common testing patterns such as roundtrip, idempotence, and invariants to improve coverage.
  • Library Guidance: reference and apply popular property-based testing libraries (e.g., Hypothesis, fast-check, Proptest, jqwik) across languages.
  • Use Case: implement a property-based test suite for a data serialization module to ensure decode(encode(x)) == x for all x.

Quick Start

Create a property-based test suite for a Python function using Hypothesis to verify invariants.

Frequently Asked Questions about property-based-testing

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

FAQPage Schema
How do I test invariants and edge cases automatically instead of writing example-based tests?

Property-based testing verifies invariants across generated inputs to automatically discover edge cases. You define properties like roundtrip or idempotence, and the framework checks them against hundreds of inputs.

How do I verify that decode(encode(x)) equals x for a serialization module?

Use property-based testing to verify serialization roundtrips by defining decode(encode(x)) == x as a property. The framework generates diverse inputs to validate this invariant across your entire input domain.

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

Property-based testing supports multiple libraries including Hypothesis for Python, fast-check for JavaScript, Proptest for Rust, and jqwik for Java, applying invariants across various codebases and languages.

What common patterns can I use to identify properties for testing pure functions and normalization?

Common property-based testing patterns include roundtrip validation for serialization, idempotence for normalization, and invariant checking for pure functions. These patterns detect edge cases and improve test coverage.

When should I shift from example-based tests to property-based testing?

Shift to property-based testing when example-based tests miss edge cases or fail to cover invariants comprehensively. It automatically generates inputs to test conditions like serialization roundtrips and normalization idempotence.

How do I organize invariants and test strategies for multiple codebases?

Use a property catalog to organize invariants and test strategies for serialization, normalization, and pure functions. This structure helps manage property-based testing across multiple codebases and languages.