Scala, because of its functional nature, already gives us some design tools to write correct programs: type polymorphism, higher-order functions, immutability, and others. There are also many test frameworks that allow us to detect some bugs. But we can do more: proving the absence of bugs. This talk will go through a number of techniques for testing, reasoning & proving correctness of Scala code. We’ll see how to formulate universal properties on programs and how to check them. Also, we’ll take a look at a completely different approach of writing Scala code.
voted / votable