Predictive Typestate Checking of Multithreaded Java Programs

TitlePredictive Typestate Checking of Multithreaded Java Programs
Publication TypeConference Paper
Year of Publication2008
AuthorsJoshi, P., & Sen K.
Conference Name23rd IEEE/ACM International Conference on Automated Software Engineering (ASE'08)
Date Published09/2008
Conference LocationL'Aquila, Italy

Abstract—Writing correct multithreaded programs is difficult.
Existing tools for finding bugs in multithreaded programs pri-
marily focus on finding generic concurrency problems such as
data races, atomicity violations, and deadlocks. However, these
generic bugs may sometimes be benign and may not help to catch
other functional errors in multithreaded programs. In this paper,
we focus on a high-level programming error, called typestate
error, which happens when a program does not follow the correct
usage protocol of an object. We present a novel technique that
finds typestate errors in multithreaded programs by looking at a
successful execution. An appealing aspect of our technique is that
it not only finds typestate errors that occur during a program
execution, but also many other typestate errors that could have
occurred in a different execution. We have implemented this
technique in a prototype tool for Java and have experimented it
with a number of real-world Java programs.

Predictive Typestate Checking-ASE08350.36 KB