Tag Archives: John Hughes

  • CodeMesh 2014 – John Hughes – QuickCheck Evolution
    2014-11-25 Erlang Central

    Videos



    QuickCheck Evolution http://www.codemesh.io/codemesh2014/john-hughes QuickCheck, our random testing tool, has a long track record of nailing serious and hard-to-find bugs and boosting quality, in software like dets (part of mnesia), Riak, and the embedded software in cars. QuickCheck is usually used manually and interactively: the developer invokes QuickCheck, finds a bug, and fixes it--rinse and repeat. But how should QuickCheck be deployed in the longer term? How should it be used for re ...


    Read more


  • EUC 2014 – John Hughes – QuickCheck Evolution
    2014-07-08 Erlang Central

    Videos



    QuickCheck, our random testing tool, has a long track record of nailing serious and hard-to-find bugs and boosting quality, in software like dets (part of mnesia), Riak, and the embedded software in cars. QuickCheck is usually used manually and interactively: the developer invokes QuickCheck, finds a bug, and fixes it--rinse and repeat. But how should QuickCheck be deployed in the longer term? How should it be used for regression testing, continuous integration, etc? Can we derive further power ...


    Read more


  • Certifying your car with Erlang
    2012-03-26 Erlang Central

    Videos



    Modern cars are full of software, with 50-100 processors and tens of millions of lines of code. Increasingly, this software is based on the AUTOSAR standard, drawn up by a consortium including Toyota, Ford, GM, and most of the world's other major car manufacturers. AUTOSAR defines the "basic software" which should run on each processor, providing a standardised environment enabling AUTOSAR applications to be distributed freely around the processors in the car. Such is the theory. In practice, ...


    Read more


  • How I found five lurking race conditions in mnesia with 200 lines of QuickCheck code
    2011-06-06 Erlang Central

    Presentations Videos

    Race conditions are among the worst kind of problem to debug: they tend to appear only rarely (and unrepeatably), often arise only in long running cases in production, and leave little evidence of what went wrong. Erlang is not immune to race conditions, despite its excellent support for concurrency, and they can give rise to rare intermittent failures in OTP libraries such as mnesia, the OTP database. Mnesia is known to fail "once every month or two" in production, and race conditions are one l ...


    Read more


  • Free QuickCheck for all
    2011-03-21 Erlang Central

    Videos



    On the face of it, property-based testing is a no-brainer: you write shorter, clearer test code, and in return test your system more thoroughly using thousands of generated tests. In practice, many developers are unsure where to start. How do you come up with good properties? How do you generate good test data? How do you evaluate the quality of your testing? In this talk, I’ll show how to overcome these difficulties, and give rules of thumb that can help you get started with property-based ...


    Read more


  • Testing Asynchronous Behaviour in ejabberd with QuickCheck
    2010-06-07 Erlang Central

    Videos



    Ejabberd is an instant messaging server with lots of asynchronous behaviour. Such asynchronous behaviour is awkward to test, because of its inherent non-determinism. Variable event order and timing uncertainties can easily lead test cases to fail when they ought to pass, generating "false positives" that hinder testing. Yet coping with all possible event orderings and timings can make test cases hopelessly complex. When test cases are generated, these problems become even harder. In this talk ...


    Read more


  • Power debugging C code with Erlang
    2010-03-22 Erlang Central

    Videos



    QuickCheck tests stateful code beautifully, generating short sequences of API calls that reveal broken behaviour. Great for testing Erlang code... but equally useful for other programming languages, provided we can invoke them seamlessly from Erlang. John will demonstrate Quviq's new link to C, which relieves the user from writing any boiler-plate code whatsoever, making property-driven development in C, with the properties written in Erlang, truly practical. ...


    Read more


  • Testing Erlang programs for multicore
    2009-04-27 Erlang Central

    Videos

    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 multicor ...


    Read more


  • QuickCheck for Erlang
    2008-06-23 Erlang Central

    Presentations

    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. In this talk we present QuickCheck, a tool which addresses these pro ...


    Read more


  • QuickCheck Tutorial: Using QuickCheck to Test Erlang Programs
    2008-06-23 Erlang Central

    Videos

    QuickCheck is an automated testing tool which addresses these problems by 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 dramatically improve test coverage, and find obscure errors at an earlier stage, lowering costs and improving quality as a result. In this tutorial, John Hughes and Thomas Arts will use ...


    Read more