heisenbug Heisenbug 2019 Msc (05.12.2019 — 06.12.2019)

Lincheck. Testing concurrent data structures in Java


The talk about automate testing of multi-threaded data structures in Java and approaches to checking the execution of multi-threaded structures for linearizability.

If you’ve ever been into multi-threaded programming, you know that writing concurrent programs is hard. Usually, just a few dangerous execution scenarios are covered with stress tests. But often, such testing can not help in finding bugs. To solve this problem, lincheck was created — the only JVM tool so far that allows you to test multi-threaded code correctness (usually linearizability) conveniently.

First, Maria will describe lincheck work steps: generating scenarios of the tested program execution, strategies for running these scenarios, approaches for program verification, then will talk about lincheck usage.