OSCAR: A Noise Injection Framework for Concurrent Java Programs
by Filipe de Luna, Joao Lourenco, Jeremy S. Bradbury
Abstract: Concurrent programs offer scalable performance, at the cost of being notoriously hard to design and verify due to the nondeterministic nature of thread scheduling. These programs also are susceptible to new and challenging bugs not present in sequential programs. Noise injection is a a strategy to mitigate the negative effects of non-determinism in concurrent software testing, relying on the “probe effect”—the observable shift in the behaviour of concurrent programs upon the introduction of white noise into their routines—to increase diversity (coverage) in the observed interleavings. However, the lack of availability of noise injection frameworks, especially for the Java programming language, is an obstacle to the development of new dynamic analysis techniques that often utilize noising. In this paper we propose OSCAR, a novel open-source noise injection framework for Java, as well as a novel taxonomy for categorising new and existing noise injection heuristics. Our evaluation of OSCAR with different heuristics validates that OSCAR is highly effective at increasing the coverage of the interleaving space, and that the different heuristics provide diverse trade-offs on the cost and benefit (time/coverage) of the noise injection process
Bibliography: Filipe de Luna, Joao Lourenco, Jeremy S. Bradbury. “OSCAR: A Noise Injection Framework for Concurrent Java Programs.” Proc. of the 36th IEEE International Conference on Collaborative Advances in Software and Computing (CASCON 2026), 10pp. [to appear]
Paper: [PDF] Presentation: [PDF] Software: [GitHub]
Media

