Subscribe to our Erlang Factory newsletter to receive the latest updates and news

Thomas Arts
Professor and co-founder of QuviQ AB
QuviQ AB

Prof Thomas Arts is the co-founder and CTO of Quviq, a small company that produced QuickCheck, as testing tool for Erlang. Thomas has over 30 publications in various journals and has experience refereeing conferences and workshops. He has successfully introduced some new technologies to the industry, the latest being QuickCheck, a tool for property based testing and aims to support test driven development. Thomas is also a professor at Chalmers University of Technology in Gothenburg, Sweden.

Thomas was one of the members of Ericsson's computer science lab where he worked on program verification and the development of the Erlang programming language. He has also worked in the broad spectrum theoretical computer science, formal methods and industrial case-study research, mainly applying all kind of techniques to systems written in Erlang. 

Thomas Arts is Giving the Following Talks
Tutorial: Quickcheck for EUnit

Writing EUnit tests is more common than writing QuickCheck specifications, although QuickCheck specifications potentially explore far more scenarios than manually written unit tests. In particular for implementations that have side-effects, writing a good set of EUnit tests is often difficult and labour intensive.

In this tutorial  we explain a mechanism to extract QuickCheck specifications from EUnit test suites. We use the QSM algorithm to infer state machines from sets of positive and negative traces derived from the test suite. These traces can be derived either statically or dynamically and we describe both approaches here. Finally we show how to move from the inferred state machine to a QuickCheck state machine. This QuickCheck state machine can then be used to generate tests, which include the EUnit tests, but also include many new and different combinations that can augment the test suite. In this way, one can achieve substantially better testing with little extra work.

We'll show the method in action with a test-driven development example, and encourage you to try the method out too. Please bring your own EUnit test suit to play with and see the results.
Tutorial: QuickCheck Mini

QuickCheck support property based development. Instead of writing test cases for your applications, you write a one-pager with a QuickCheck property from which hundreds of test cases are generated automatically. QuickCheck simplifies failing cases to a minimal example on a test failure (so that fault diagnosis is quick and easy). QuickCheck enables developers to dramatically improve test coverage, and find obscure errors at an earlier stage, lowering costs and improving quality as a result.

In this tutorial we will look at QuickCheck Mini, the free version of the QuickCheck library, and use examples to show how developers write QuickCheck specifications—which are actually Erlang programs using the QuickCheck API—and use them to test code written in Erlang or other programming languages. We will show how QuickCheck’s shrinking finds tiny examples that provoke errors, making the step from observing a bug to diagnosing it very short indeed, and we will show how property driven development can produce code that is solid from the word go.