Testing Java Monitors By State Space Exploration

Date

2007-08-23T01:56:10Z

Authors

Journal Title

Journal ISSN

Volume Title

Publisher

Computer Science & Engineering

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.

Description

Keywords

Citation