<
Luis Eduardo Bueso de Barrio

Luis Eduardo Bueso de Barrio

PhD candidate at Universidad Politécnica de Madrid

Luis is a PhD student at the Universidad Politécnica de Madrid (UPM). He is part of the Babel Group where he was first introduced to Erlang and Elixir by Lars-Åke Fredlund, Clara Benac Earle and Ángel Herranz. His main research interests are programming languages (especially functional and logic), formal methods and last but not least testing.

Past Activities

Luis Eduardo Bueso de Barrio
Code BEAM Europe 2022
20 May 2022
12.15 - 12.40

Improve your tests with Makina

Writing good tests for complex software can be quite difficult. In the BEAM ecosystem, tools like QuickCheck and PropEr have demonstrated that Property-Based Testing (PBT) is an effective technique to find bugs in complex software.  Such testing normally involves checking that the tested system performs as predicted by a state machine programmed in a QuickCheck domain-specific language (DSL).
In spite of their proven effectiveness, the adoption of PBT state-machine models is frustratingly slow. Why? Writing state-machine models of complex systems can be a time consuming and error-prone activity, which requires substantial training. Moreover, maintaining such state-machine models is hard, even for PBT experts. To address such issues many projects attempt to automate testing. We, instead, aim to empower the test programmer by providing a more productive tool for writing test models: Makina.

Makina is a new test library for Elixir, compatible with PropEr and QuickCheck state-machine models. This library provides a DSL that aims to improve early error detection in test models providing static and dynamic type checking. It also facilitates test model development encouraging code reuse with built-in composition mechanisms and automatic model documentation.

OBJECTIVES

In this talk, we will discuss the design of Makina, and illustrate how the library enables us to efficiently test smart contracts running on the Ethereum blockchain.

AUDIENCE

Elixir and Erlang developers interested in testing in general and PBT in particular.