author: Lars Stegeman
title: Testing of concurrent programs
topics: Software Technology , Testing
committee: Marieke Huisman
started: August 2015
end: January 2016


Recently, within the FMT group there have been two Master projects studying run-time checking of concurrent programs.

Jorne Kandziora developed a technique to do interference-free checking of assertions in concurrent programs, by evaluating assertions in snapshots, see

Stijn Gijsen developed a technique to check permissions, which help you to ensure that a program is free of data races, see

Both approaches can be used to test certain aspects of concurrent programs. However, for practical test of concurrent programs, it is also necessary that you can control the scheduler, such that you are able to run the test over different interleavings of the threads. CalFuzzer, see supports active testing, where results of an earlier analysis can be used to influence the scheduler.

The goal of this Bachelorproject is to investigate if and how CalFuzzer can be combined with the run-time checking approaches described above. The following steps are foreseen:

  • understand the different run-time checking techniques and the working of CalFuzzer
  • describe a design to combine CalFuzzer with one of the run-time checking techniques
  • provide a basic implementation of your design
  • demonstrate usability of your approach on several examples, i.e., show that it can be used errors that are caused by different interleavings of a concurrent program.

Additional Resources

  1. The paper