Suggestions appear as you type. Use the up and down arrows to choose one and Enter to open it.

StreamData review

Free#17 of 27 in Property-Based Testing Tools

A focused, open-source choice for repeatable property-based testing in ExUnit.

7.7/10Editor score
StreamData7.7 Visit StreamData

Reviewed by iTechGuides Editors · Editorial team · Updated Oct 2026

StreamData is an open-source Elixir library for generating test data and writing property-based tests. It is aimed at Elixir developers working on applications and libraries who need randomized, repeatable testing. Its ExUnitProperties integration connects property checks with ExUnit, while composable generators cover common Elixir data types and support custom generator construction. Infinite randomized generator streams, filtering, and binding give teams control over how test values are produced.

The library’s pricing model is straightforward: StreamData is free and open source, with no paid tiers described. Its strongest technical depth is in generator-driven testing. Generated values can be shrunk to smaller counterexamples when a property fails, and seeded generation supports deterministic reproduction. Together, these features make it suitable for investigating failures without giving up randomized input generation. The generator model also supports reusable building blocks for application- or library-specific data.

StreamData fits most directly into an Elixir and ExUnit ecosystem. That focused integration is useful for teams already working in that stack, but it narrows the audience for projects using other languages or test runners. It also does not provide verified stateful testing, so teams testing complex state transitions should consider a tool with that capability. Choose StreamData for composable data generation, property checks, shrinking, filtering, binding, and reproducible failures in ExUnit; look elsewhere when cross-language coverage or stateful testing is central.

StreamData pros and cons

  • Where it wins
    • Composable generators cover common Elixir data types and custom construction.
    • Shrinking reduces failures to smaller counterexamples.
    • Seeded generation supports deterministic reproduction of failures.
  • Where it doesn't
    • Supports Elixir rather than multiple programming languages.
    • Designed for ExUnit rather than a broad range of test runners.
    • Does not provide verified stateful testing.

StreamData fact sheet, pricing and score →

Advertiser disclosure: iTechGuides is reader-supported. Vendors can pay for top positions in our rankings and for a place on other products' pages, and we may earn a commission when you click some links. Bought places stand at the number bought; this page and our disclosure say so. Paying vendors may get a fuller, more detailed review from our editors, and that review can change their score. How we rank.

Last updated · How we research and update