<

Thomas Arts

Erlang developer since 1997, co-founder and CTO of Quviq

Thomas Arts co-founder and CTO of Quviq has an academic background with a PhD in theoretical computer science. Directly after his PhD, Thomas started at Ericsson's computer Science Lab on verification tools for Erlang. After a short return to academia as professor at Chalmers, he is now fully devoted to amazing testing tools.

Quviq is the company that productified QuickCheck, a tool that automatically generates tests. The tool is written in Erlang, but can be used to test systems written in a variety of languages. Among other successes, it is heavily used within the telecom and automotive industry, for example for testing 5G base stations and AUTOSAR standard software. Recently Quviq has put a lot of effort in the development and testing of blockchain implementations.

 

Upcoming conferences:

Thomas Arts
Code BEAM STO 2019

How to sleep well after a major code refactoring

We all change our mind and realise that our code needs a major refactoring in order to meet new ideas. In the Aeternity blockchain project this has happened several times. A block chain is very sensitive to changes, because blockchains elementary are based upon hashes of terms that should match with earlier hashes. A change that causes a hash to differ could mean that people can no longer access their assets on the blockchain.

OBJECTIVES

Explain how refactoring can be addressed without too much worrying.

AUDIENCE

Software engineers and managers that like a good night's sleep.

Past conferences

Thomas Arts
Code BEAM Lite Amsterdam 2018
30 Nov 2018
17.20 - 18.00

Automatically generating your tests from a specification

Have you ever been designed a back-end and give another team responsibility for the front-end or your system? Then you most likely agreed upon some API that the front-end developers could use.

This API is a kind of promise of what the system will do but also flags the limits of the system. It's a lightweight specification, a kind of contract between you and the front-end developers. You need to guarantee that your software follows this specification, otherwise, you're swamped in questions and reported issues. Automatically generating tests from such a specification would, therefore, be really nice to have.

Specifications are changing through the lifetime of the project, the front-end may need different features or the back-end developers come to the conclusion that they cannot implement it in this way. The contract changes, both parties need to be aware! Automatically generated tests show immediately where the system is not compatible with the changes to the API and remove the need to refactor hundreds of existing test cases.

Testing is a major part of all software development - yet no matter how much effort is spent on manually writing test cases, some errors always seem to slip through. Cases which no-one thought to test crash systems late in development or out in the field, revealing errors which cost time and money to analyse, diagnose, and fix.

Property Based Testing enables developers to generate tests from specifications. It enables them to find errors at an earlier stage, lowering costs and improving quality as a result. In this talk, Thomas Arts will use examples to show how to get from a purely syntactic API specification to a specification that can be used to test a simple stateful web service. We will see how shrinking finds tiny examples that provoke errors, making the step from observing a bug to diagnosing it very short indeed.

Thomas Arts
Code BEAM STO 2018
31 May 2018
15.30 - 15.55

Using Property-Based Testing in Blockchain and P2P Networks

Testing is a major part of all software development - yet no matter how much effort is spent on it, some errors always seem to slip through. Cases which "no-one thought to test" crash systems late in development or out in the field, revealing errors which cost time and money to analyze, diagnose, and fix. In the worst case, such errors reveal fundamental flaws which force a redesign of part of the system, at disproportionate cost.

QuickCheck is an automated testing tool addressing the testing challenges by automatically generating test cases from a concise specification (so that many more cases can be tested), and simplifying failing cases to a minimal example on a test failure (so that fault diagnosis is quick and easy). QuickCheck enables developers to generate tests from specifications. It enables them to find errors at an earlier stage, lowering costs and improving quality as a result. In this tutorial, Thomas Arts will 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 see how QuickCheck's shrinking finds tiny examples that provoke errors, making the step from observing a bug to diagnosing it very short indeed.