PropEr
PropEr is a free, open-source tool for automated, semi-random property-based testing of Erlang programs.
What PropEr is
PropEr is a free, open-source tool for automated, semi-random property-based testing of Erlang programs. It can use Erlang type declarations as input specifications to generate data, and can test functions automatically using information in their Erlang specifications. Properties are written as Erlang expressions with predefined macros. For stateful systems, PropEr supports model-based random testing; recent releases also support targeted property-based testing using search-based techniques. The project supports EUnit and Common Test, as well as failing-case shrinking. Its generator language differs from Erlang’s type language for list expressions, allowing generators to specify particular list lengths and element types. Custom generators can express constraints that Erlang types cannot, though filtering may keep trying random values until one passes. PropEr is designed for Erlang programs, particularly pure functions and library modules for stateful code. The user guide describes obtaining source from GitHub and compiling with make, or installing through Homebrew. The software is distributed under GPL version 3 or later.
Good
- Generates test data from Erlang type declarations.
- Supports model-based testing of stateful systems.
- Works with EUnit and Common Test.
- Includes failing-case shrinking.
- Free and distributed under GPL version 3 or later.
Watch out
- Designed for Erlang programs.
- Filtering may keep trying random values until one passes.
- Self-hosted installation involves source or Homebrew.
Who it suits
PropEr is for developers testing Erlang programs, especially pure functions and library modules for stateful code. It suits users comfortable working with Erlang and a self-hosted tool.
Verdict
PropEr offers property-based and model-based testing for Erlang, with integrations for established Erlang test runners. Its language focus and generator constraints are worth considering when designing tests.
Plans and prices
From PropEr's own pricing page, checked 5 Oct 2026.
| Plan | Price | What it gives you |
|---|---|---|
| PropEr | Free | Open-source software · GPL version 3 or later |
The facts
Each one read from PropEr's own pages, with the date it was checked.
What it does
- Automatic testing
- PropEr can test functions automatically using information in their Erlang specifications.checked 5 Oct 2026
- Constraints
- Constraints that cannot be expressed in Erlang's type language can be expressed with custom generators; the FAQ cautions that filtering may keep trying random values until one passes.checked 5 Oct 2026
- Erlang types
- Erlang type declarations can be used as input specifications, and PropEr can generate data from them.checked 5 Oct 2026
- Installation
- The user guide describes obtaining source from GitHub, compiling it with make, or installing it with Homebrew.checked 5 Oct 2026
- Integrations
- The user guide explains using PropEr with EUnit and describes handling a shared ?LET macro and captured output.checked 5 Oct 2026
- Intended users
- PropEr is designed for testing programs written in Erlang, with a focus on pure functions and library modules for stateful code.checked 5 Oct 2026
- Known limitation
- PropEr's generator language and Erlang type language differ for list expressions, allowing generators to specify lists of particular lengths and element types.checked 5 Oct 2026
- License
- PropEr is open-source software distributed under the GPL, version 3 or later.checked 5 Oct 2026
- Properties
- Properties are written using Erlang expressions with predefined macros.checked 5 Oct 2026
- Purpose
- PropEr is a tool for automated, semi-random, property-based testing of Erlang programs.checked 5 Oct 2026
- Stateful testing
- It can also be used for model-based random testing of stateful systems.checked 5 Oct 2026
- Support
- The developers invite comments, suggestions, feature requests, bug reports, patches, and other contributions through the project website, GitHub, or email.checked 5 Oct 2026
- Targeted testing
- Recent releases support targeted property-based testing, which brings search-based testing techniques into property-based testing.checked 5 Oct 2026
Alternatives to PropEr
- 1

fast-check
Free planOpen sourceWebAPILinuxSelf-hosted7.1Free plan - 2
ScalaCheck
Free planLinuxmacOSWindows6.6Free plan - 3
Gopter
Free planLinuxSelf-hosted6.4Free plan - 4
JSVerify
Free planWebSelf-hosted6.4Free plan - 5
Racket QuickCheck
Free planLinuxmacOSWindows6.4Free plan - 6
FsCheck
Free planLinuxmacOSWindows6.3Free plan
