ScalaCheck, the property-based testing library for Scala, is a powerful tool for automating test coverage. Out of the box, you can easily generate gobs of test data and automatically shrink failure cases down to specific causes. Who was ever satisfied with out of the box, though?!? At Reverb, we've been exploring the outer edges of ScalaCheck's capabilities to generate extensive and deep coverage of our code base. We'll walk through some of the techniques we've been playing with and their possibilities, including building complex custom data generators, shrinking smarter, basing data generation on samples from production data, using ScalaCheck to power performance benchmarks, and automatically generating Arbitrary and Shrink instances for case classes using Shapeless.
Sign in to add slides, notes or videos to this session