How We Test Concurrent Algorithms in Kotlin Coroutines

May 04, 2023 45 min Free

Description

In this talk, Nikita Koval discusses the challenges of testing concurrent algorithms, particularly within Kotlin Coroutines. He introduces Lincheck, a framework developed at JetBrains that simplifies writing robust concurrent tests by allowing users to define operations and letting Lincheck verify thread-safety. The presentation covers the principles of linearizability, demonstrates how Lincheck identifies bugs with detailed traces, and explains the underlying bytecode transformation techniques that enable its model-checking capabilities. The talk emphasizes that while tools like ChatGPT can generate code, they lack the critical thinking for concurrency, making robust testing frameworks like Lincheck essential for developers building concurrent systems.