Board Electronics Computer Data Processing 50711

Random Data Generation with ScalaCheck by Daniela Sfregola

Board Electronics Computer Data Processing 50711

Image credit ScalaItaly

We hope that everyone who went to Scala Italy had a great time! We are very proud to have been sponsors of the conference and there were so many amazing speakers to hear from including Scala Tech Leader Daniela Sfregola. Check out Daniela's talk on Random Data Generation with ScalaCheck below. 


Scala Italy 2018 - Random Data Generation with ScalaCheck

ScalaCheck is a well-known library for property-base testing. However, property-based testing is not always possible when side effects are involved, for example when writing an integration test that involves data being stored in a database.

When writing non-property-base tests, we often need to initialise some data and then verify some assertions on it. However, manual data generation can make our data biased and preventing us from spotting bugs in our code.

Having our data generated randomly not only it would make our test less biased, but it will also make it a lot more readable by highlighting what part of our data is actually relevant in our test.

In this talk, we will discuss how to reuse some of the existing ScalaCheck code to generate random instances of given types and how these can be combined to generate random case classes. We will analyse the properties of a ScalaCheck generator and provide examples of how we can manipulate existing generators to meet our needs.