Hernandez, Monica Maria2007-08-232011-08-242007-08-232011-08-242007-08-23December 2http://hdl.handle.net/10106/150Java 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.ENTesting Java Monitors By State Space ExplorationM.E.