Java & JVMJava & JVM
Conference50min
INTERMEDIATE

Concurrency testing on the JVM

This talk explores practical tools—Lincheck and Fray—for testing concurrent programs. Since formal proofs are often infeasible, these tools increase confidence by deterministically exploring thread interleavings. The session compares their capabilities, demonstrates usage, and discusses real issues they can detect and have already helped uncover in concurrent code.

talk.summaryAiDisclaimer

Adam Warski
Adam WarskiVirtusLab

talkDetail.whenAndWhere

Wednesday, June 17, 16:40-17:30
Room 1
talks.roomOccupancytalks.noOccupancyInfo
talks.description
When testing a concurrent program, you never know if it really works or if you got lucky. As the famous Dijkstra quote says: "Program testing can be used to show the presence of bugs, but never to show their absence!".

Full model checking or formal correctness proofs remain largely intractable: too expensive, too slow to develop (even with AI assistance), and too hard to maintain over time. However, not all hope is lost: a growing body of tools is available to help you gain more confidence with your concurrent programs.

These tools work by instrumenting the bytecode and executing a series of thread interleavings deterministically. It's not a correctness proof, but it might boost your confidence just enough to ship the code.

In the talk, I'd like to present two such tools: Lincheck and Fray, compare their functionalities, demonstrate how they work, identify the kinds of problems they might detect, discuss their applications, and highlight the issues they have already helped uncover.
tools
verification
testing
concurrency
talks.speakers
Adam Warski

Adam Warski

VirtusLab

Poland

I am the co-founder of SoftwareMill, now part of VirtusLab, where I primarily generate code using Java, Scala, Rust and other interesting technologies. I am actively involved in open-source projects, such as Ox, Jox, Tapir, sttp, and others. I have also been a speaker at major conferences, including JavaOne, Devoxx, GeeCON and ScalaDays.

In addition to writing closed- and open-source software, I spend my free time exploring various programming-related subjects. Any ideas or insights I gain usually end up with a blog (https://warski.org/articles).