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

John Hughes
Inventor of QuickCheck and Erlanger of the year
QuviQ AB

John Hughes is co-founder and CEO of Quviq AB, and the originator of Quviq QuickCheck. From 2002-2005 he led a major research project in software verification, funded by the Swedish Strategic Research Foundation. This led to the development of Quviq QuickCheck in Erlang. Before John's involvement with Erlang, he was deeply involved with the design of Haskell from the start, and co-chaired the committee that defined the current language standard. At the Erlang eXchange, John will talk about Quick Check for Erlang.

John Hughes is Giving the Following Talks
Testing Erlang programs for multicore

Erlang programs are easily ported to multicore; one gets a great speed-up for free, because the Erlang programs are concurrent in nature. Nevertheless, running your Erlang application on a multicore processor may well reveal errors that you have never spotted before. The Erlang scheduler on a single core is very deterministic and certain sequences of events simply cannot occur, although they do occur in theory and certainly on a multicore. Since the number of possible interleavings on a multicore is impractically large, successfully running your old test suite may not give you the confidence you need to ship you software. More testing is necessary, but running the same suite many times or adding more test cases hardly solves the problem.

As a result of the ProTest research project, QuickCheck comes with an extension to test Erlang programs for multicore. Defects that cannot be detected on a single core, can be revealed by this extension. The extension also improves the analysis phase of the defect by presenting the simplest interleaving that lead to the defect and a visualization of the messages send and received.
John Hughes is Teaching the Following Courses

Target Audience: Software Developers
Prerequisites: Participants should be familiar with Erlang and use it frequently.
• Use the important features of QuickCheck
• Build-up to a realistic example of building a banking server
Goal: Understand QuickCheck and be able to use it with Erlang.
Duration: Three days.
Registration: 08:30 on 27th April 2009 at the Sheraton Palo Alto.
Description:This course is intensive, modular and hands-on, with each module made-up of lectures and practical exercises. Since QuickCheck builds on Erlang, we take advantage of participants' prior knowledge to introduce QuickCheck more quickly.