We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Understanding the Internal Mechanics of StreamData, an Elixir Property Testing Library
145
clicks
Source: andrealeopardi.com
Andrea Leopardi offers a deep-dive into StreamData, a property testing library for Elixir he developed, which generates random test data to uncover bugs in software. Property-based testing, exemplified by QuickCheck in Haskell, has been adapted for several languages, including Erlang, Scala, and now Elixir with StreamData. Unlike traditional expository posts, Leopardi delves into StreamData's complex innards, from data generation using infinite streams, randomness reproducibility, and generator structuring, to specifics like random seed splitting. A significant focus lies on the concept and execution of shrinking, a method of reducing noisy failure-inducing data to its simplest, most informative form, contrasting with other languages' strategic approaches. The library's generator design structure facilitates seamless generation and shrinking, resulting in more efficient testing. The article concludes by acknowledging the influence of other property testing tools and the author's own learnings from creating StreamData. Leopardi expresses gratitude towards the contributors to similar projects like QuickCheck and test.check, which guided StreamData's development.
Related posts
© HashMerge 2024