Monitorexplorer: A State-space Exploration Based Tool To Test Java Monitors Implementations
MetadataShow full item record
A monitor is a concurrency construct that encapsulates data. There are many application classes which are written using the Java Monitors and these are difficult to test due to the inherent complexities of the concurrent programs. The key challenge is to be able to trace all possible execution paths and then able to reproduce them for regression testing. Our work explores the state-space of the monitor application. The state space is explored in the depth first fashion. At each state the next possible transition is executed. This process is repeated till a duplicate or invalid state is detected. The key features of the approach are data abstraction and introduction of threads on the fly to execute the selected transition that simulate the race conditions. We have developed 'MonitorExplorer', a tool that can used to test monitor applications. The experimental results show that the tool is effective in detecting synchronization bugs.