Last Thursday, I gave another short talk at the Heidelberg
Chaostreff NoName e.V. This time I talked about writing tests in C++
using the testing libraries
rapidcheck and
Catch.
In the talk I presented some ideas how to incorporate property-based
testing into test suites for C++
programs. The idea of property-based
testing originates from the Haskell library
QuickCheck, which tries to
use properties of the input data and of properties of the output data in
order to generate random test cases for a code unit. So instead of
testing a piece of code with just a small number of static tests, which
are the same for each run of the test suite, we test with randomly
seeded data. Additionally, if a test fails, QuickCheck/rapidcheck
automatically simplifies the test case in order to find the simplest
input, which yields a failing test. This of cause eases finding the
underlying bug massively.
Since this was our first Treff in the new Mathematikon
building, the University just
opened
recently,
we had a few technical difficulties with our setup. As a result there is
no recording of my talk available this time, unfortunately. The example
code I used during the presentation, however, is available
on github. It contains
a couple of buggy classes and functions and a Catch
based test
program, which can be used to find these bugs.