Concurrency Unit Testing with Coyote

26/08/2022, 3:00pm

Speaker

Akash Lal

Venue: MR1 (Tentative) + Zoom (link TBA)

Abstract

Concurrency is fundamental for building scalable software systems. Despite the prevalence of such systems, testing them remains an uncomfortable problem for developers. Concurrency bugs are hard to find, reproduce and fix, and for most part, they get ignored in standard industry practices. Controlled concurrency testing (CCT) techniques aim to offer a solution, where a scheduler explores the space of possible interleavings of a concurrent program looking for bugs. Since the set of possible interleavings is typically very large, these schedulers employ heuristics that prioritize the search to "interesting" subspaces.

In this talk, I will describe the evolution of the open-source Coyote tool for testing C# applications. Coyote has been downloaded around a million times, and is used routinely for testing several Azure services. The talk will cover the architecture of the tool, specialized scheduling techniques, such as the use of reinforcement learning to find bugs, and also the experience of using it in production.

Bio

Akash Lal is a Senior Principal Researcher at Microsoft Research. He works broadly in the area of programming languages. His interests are in language design, compiler implementation and program analysis targeted towards helping developers deal with the complexity of modern software. At Microsoft, Akash has worked on the verification engine behind Microsoft's Static Driver Verifier tool that has won multiple best-paper awards. More recently, he has been working on project Coyote for building highly-reliable asynchronous systems. Akash completed his PhD from University of Wisconsin-Madison and jointly received the ACM SIGPLAN Outstanding Doctoral Dissertation Award for his thesis.