2015-03-31

Testing for Concurrency Errors in Elixir Code with QuickCheck

We address the problem of testing and debugging concurrent, distributed Elixir applications. In concurrent programs, race conditions are a common class of bugs and are very hard to find in practice. Traditional unit testing is normally unable to help finding all race conditions, because their occurrence depends so much on timing. Therefore, race conditions are often found during system testing, where due to the vast amount of code under test, it is often hard to diagnose the error resulting from race conditions. We present QuickCheck and PULSE that in combination can be used to test and debug concurrent programs with a much better possibility of detecting race conditions.

Talk objectives:

- Learn how to find and debug your most difficult errors.

Target audience:

- Elixir developers as well as Erlang QuickCheck enthusiasts

Show more