Testing of concurrent software written in programming languages like Java and C/C++ is a challenging task due to the many possible interactions among threads. A simple, cheap, and effective approach that addresses this challenge is testing with noise injection which influences the scheduling so that different interleavings of concurrent actions are witnessed. In the talk, we will review the basic principles of testing based on noise injection as well as various advances achieved in the area in the past few years. These advances range from new noise injection heuristics through new concurrency coverage metrics to using search techniques or data mining for finding suitable parameters of testing based on noise injection.
Track: ECOOP Summer School
Tomas Vojnar focuses on automated verification, especially over infinite-state and concurrent systems. In the former area, his work has included formal verification of parameterized systems, abstract regular model checking, and shape analysis of programs with pointers and dynamic linked data structures. He has also worked on efficient ways of dealing with various kinds of non-deterministic automata and logics, with applications in the above mentioned verification approaches. As for concurrent programs, he has mainly worked in the area of their noise-based testing and dynamic analysis, self-healing, as well as applications of search techniques in noise-based testing. His works won multiple best paper awards, such as the EATCS Best Theory Paper Award of ETAPS’10, the best tool paper of RV’12, as well as multiple medals in the international software verification competition SV-COMP’12-14, including a Goedel medal at the FLoC Olympic Games 2014.