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

Joseph Blomstedt
Distributed Systems Enthusiast and Platform Engineer @ Basho
Basho Technologies

Joseph Blomstedt lives in Seattle, WA and is a Software Engineer at Basho Technologies, as well as a PhD candidate at the University of Colorado at Boulder. At Basho, Joe works predominately on riak_core, the underlying clustering and distribution system powering Riak, as well as investigates new approaches to distributed consistency.

Joseph Blomstedt is Giving the Following Talks
Test-First Construction of Distributed Systems

With the power provided by Erlang/OTP, developing complex distributed systems is easier than ever. However, verifying the correctness of these complex systems remains a challenge. This talk will present an approach to testing that I have used at Basho which leverage's QuviQ's QuickCheck. I will present how to build a system model in QuickCheck to test an early-stage idea against random orderings of client events and server state transitions. Then, how the model can be converted into the actual intended product code. And finally, how unit tests and system tests can be extracted from the original model, with the system tests leveraging a QuickCheck harness that deploys and runs command sequences against a cluster of multiple Erlang VMs. I will also present preliminary details about integrating the Concuerror tool into this approach, as well as thoughts on generating Coq proof scripts from the original Erlang model.

Talk objectives: This talk presents a practical approach to using property-based testing to gain confidence in a complex distributed system, from early stage prototyping to final implementation. A developer attending this talk will learn how to use property-based testing as a tool during early state prototyping, as well as understand how to extend the underlying test model into a final implementation along with integration tests that verify that the implementation matches the model used during prototyping/exploratory research.

Target audience: This talk is aimed at existing Erlang developers who understand first hand the challenges of verifying and trusting complex systems and are interested in new approaches to this problem. This talk also demonstrates how the abstractions used by Erlang/OTP simplify reasoning about complex systems, and may therefore serve as motivation
for those new to Erlang or who are still contemplating using Erlang in their organization.