Automatic fault localization in concurrent programs using noising and search strategies
Abstract
Multithreaded programs can have considerable performance benefits over sequential programs. However, these advantages often come at a cost with respect to program understandability as well as testing and debugging challenges. To address these challenges we have developed CFLASH (Concurrency Faults Localized Automatically using Search Heuristics), an automatic fault localization tool for multithreaded Java programs. CFLASH utilizes a combination of noise-based code injection and a heuristic search algorithm to identify potentially faulty code sections containing concurrency bugs. We demonstrated the effectiveness of CFLASH by localizing concurrency faults in a set of benchmarked concurrent programs as well as student programs collected at Ontario Tech University.