When
11:15 AM Saturday
Where
VPA-115
Silicon Valley Code Camp : October 3rd and 4th 2015session

Composable Generators and Property-based Testing in C++14

Data generators and property-based testing in C++14 for a searialization/deserialization library called RefleX. Functional concepts including functors, monoids, and monads. Type generators using C++ TMP.

About This Session

C++14 has an enviable collection of functional programming features such as generic lambdas, type inference, variadic templates, function types with co-/contra-variance and so on. With mature compiler support, designing and implementing performant functional-style libraries has become very pleasant in modern C++. Tools and techniques (e.g., property-based testing) enjoyed by the programmers in only elite functional languages (Haskell, Scala) now appear to be within C++'s reach. This presentation will discuss two classic techniques from the functional domain -- composable data generators and property-based testing -- implemented in C++14 for testing a generic serialization and deserialization library (RefleX). We will look at techniques of constructing complex generators using a random number generator and a tolerable dose of monoids, functors, and of course, monads. We won't stop there though! We will look at automatic type generators using C++ TMP. Equipped with data and type generators, we'll take property-based testing to a whole new level where lazy programmers don't have to do anything to test their programs beyond just compilation and running the test over and over.

Time: 11:15 AM Saturday    Room: VPA-115 

The Speaker(s)

undefined undefined

Sumant Tambe

Senior Software Engineer , LinkedIn

Kafka-Dev, Microsoft MVP, Open-Source Contributor, Blogger, Author, Father, and Gamer