Propwise
AST-based property-based testing candidate analyzer for Elixir.
analyzes Elixir Abstract Syntax Trees to identify functions ideal for property-based testing and scaffold StreamData generators automatically.
The Pitch
Property-based testing (PBT) is unmatched at catching edge cases in software logic, but bootstrapping property tests requires identifying candidate functions, writing complex generators, and defining algebraic properties manually.
Propwise removes the entry barrier to property testing in Elixir. By analyzing function signatures, pattern matches, type specs, and AST control flow, Propwise discovers candidate functions and generates initial StreamData generator templatesโletting teams unlock PBT with minimal setup.
Why Propwise?
AST Candidate Detection
Scans modules to locate pure functions and complex control-flow branches suitable for property validation.
Type Spec & Guard Analysis
Extracts type constraints from
@spec
definitions and guard clauses to infer generator types automatically.
StreamData Boilerplate Generation
Emits clean ExUnit property test templates integrated directly with
StreamData
.
Incremental Adoption
Run AST scans on legacy modules to steadily expand property testing coverage over time.
The Tech
| Language | Elixir |
| PBT Library | StreamData |
| Analysis Level | AST & Type Specs |
| Hex Package |
propwise
|
Who It's For
- Elixir Developers wanting to adopt property-based testing without writing verbose generator boilerplate.
- QA & Testing Specialists expanding test coverage across pure functional pipelines.
- Library Maintainers ensuring robust invariant checks across public APIs.
Bottom Line
Automate candidate selection and generator setup for property-based testing in Elixir with Propwise.