Skip to content
SPECIFICTION
Get listed

PropEr

proper-testing.github.io

Free plan Self-hosted

What it is

PropEr is a free, open-source testing tool for Erlang programs. It performs automated, semi-random property-based testing and can generate input data from Erlang type declarations. Functions can be tested automatically from information in their Erlang specifications, while properties are written as Erlang expressions with predefined macros. PropEr also supports model-based random testing for stateful systems and targeted property-based testing using search-based techniques. Failing cases can be shrunk, and the project supports EUnit and Common Test. Constraints that Erlang’s type language cannot express can be handled with custom generators; filtering may keep trying random values until one passes. The generator language differs from Erlang’s type language for list expressions, including support for particular list lengths and element types. PropEr is self-hosted, supports Erlang, and is distributed under GPL version 3 or later. The guide describes installation from GitHub source, with make, or through Homebrew.

Spec sheet

Purpose
PropEr is a tool for automated, semi-random, property-based testing of Erlang programs.Read 5 Oct 2026 · proper-testing.github.io
Intended users
PropEr is designed for testing programs written in Erlang, with a focus on pure functions and library modules for stateful code.Read 5 Oct 2026 · proper-testing.github.io
Integrations
The user guide explains using PropEr with EUnit and describes handling a shared ?LET macro and captured output.Read 5 Oct 2026 · proper-testing.github.io
Support
The developers invite comments, suggestions, feature requests, bug reports, patches, and other contributions through the project website, GitHub, or email.Read 5 Oct 2026 · proper-testing.github.io
License
PropEr is open-source software distributed under the GPL, version 3 or later.Read 5 Oct 2026 · proper-testing.github.io
Automatic testing
PropEr can test functions automatically using information in their Erlang specifications.Read 5 Oct 2026 · proper-testing.github.io
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.Read 5 Oct 2026 · proper-testing.github.io
Erlang types
Erlang type declarations can be used as input specifications, and PropEr can generate data from them.Read 5 Oct 2026 · proper-testing.github.io
Installation
The user guide describes obtaining source from GitHub, compiling it with make, or installing it with Homebrew.Read 5 Oct 2026 · proper-testing.github.io
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.Read 5 Oct 2026 · proper-testing.github.io
Properties
Properties are written using Erlang expressions with predefined macros.Read 5 Oct 2026 · proper-testing.github.io
Stateful testing
It can also be used for model-based random testing of stateful systems.Read 5 Oct 2026 · proper-testing.github.io
Targeted testing
Recent releases support targeted property-based testing, which brings search-based testing techniques into property-based testing.Read 5 Oct 2026 · proper-testing.github.io

Plans and prices

PropEr Free Open-source software · GPL version 3 or later Read 5 Oct 2026 · proper-testing.github.io

Every PropEr plan and price →

Strong points and limits

Strong points

  • Generates data from Erlang type declarations
  • Supports model-based stateful testing
  • Includes targeted property-based testing
  • Supports EUnit and Common Test
  • Provides failing-case shrinking

Limits

  • Filtering may retry random values repeatedly
  • Generator and type languages differ for lists
  • Self-hosted deployment is required

Who it suits

PropEr suits Erlang developers testing pure functions, library modules, and stateful code. It is aimed at teams wanting property-based testing with EUnit or Common Test integration.

Verdict

PropEr focuses on property-based and model-based testing for Erlang, with targeted searches, shrinking, and test-runner support. Its self-hosted GPL licensing and generator-language details are important planning considerations.

Where Specifiction places it

Alternatives to PropErAll alternatives →