Testing Java Monitors By State Space Exploration
Date
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
Java monitors are classes that are intended to be accessed by multiple threads at the same time. Detecting synchronization faults in Java Monitors is considerably more challenging than testing regular classes, due to the inherent non-determinism of concurrent programs. This thesis proposes a state based exploration approach to testing Java monitors. This approach consists of exploring the state space of a Java monitor in a depth-first manner, dynamically building test sequences, which are comprised by the states explored along each path. Moreover, threads are introduced on the fly during the exploration of each path, based on several rules for simulating race conditions that may occur when more than one thread is trying to access the monitor at the same time. A prototype tool called MonitorExplorer was developed, and case studies were reported in which the tool was applied to several Java monitors as well as their mutants. The experimental results indicate that the approach is effective in detecting synchronization faults due to the existence of race conditions.