How to write a robust test for a concurrent data structure? Straightforward stress tests are unlikely to catch all possible bugs and flack periodically. The quality of such testing is below the bar. We need a way to write concurrent tests in a convenient, declarative way, keeping in mind "what" we are testing as opposed to "how" we are testing it. With this in mind, the Lincheck framework for writing concurrent tests was introduced. Users list all the data structure operations, and Lincheck verifies whether these operations are thread-safe. This talk presents Lincheck and explains how you can apply it to your setting while also giving a brief overview of the framework’s internals. https://github.com/JetBrains/lincheck

Talk Level:
ADVANCED

Bio:
Nikita is a technical lead at JetBrains. He currently builds AI-first products and helps people adapt to working efficiently with AI. He regularly publishes research papers, serves on program committees of leading academic conferences, and teaches computer science at universities and for companies. His earlier work includes building core primitives for Kotlin coroutines and Lincheck, a framework for concurrency testing.