About the Talk
March 29, 2012 7:25 AM
Marines’ Memorial Club & Hotel 609 Sutter Street San FranciscoMarines’ Memorial Club & Hotel 609 Sutter Street San Francisco
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.