Tag fault localization

ICST’12 paper on Unicorn

Sangmin has a new paper on Unicorn, a tool to pinpoint the location of bugs in parallel and concurrent software programs. Unicorn generalizes his prior work on Falcon to include the case when a bug in a concurrent program involves more than variable (so-called multivariable atomicity violations). The Unicorn paper will appear in the 2012 International Conference on Software Testing, Verification, and Validation (ICST). Congratulations to Sangmin and his advisor, Mary Jean Harrold!

Citation: S. Park, R. Vuduc, and M. J. Harrold. “A unified approach for localizing non-deadlock concurrency bugs.” In Proc. IEEE Int’l. Conf. Software Testing, Verification, and Validation (ICST), Montréal, Canada, April 2012. (accepted)

Falcon @ ICSE’10

Today, Sangmin will present his work on Falcon, a tool to localize faults in concurrent software, at the International Conference on Software Engineering (ICSE), which is being held in Cape Town, South Africa. Here’s a brief summary of the main ideas underlying Sangmin’s work.

Prior work suggests that concurrency bugs can be described heuristically by patterns of thread-interleaved memory references. However, just because a particular pattern occurs at run-time does not mean it is associated with a bug. Thus, the Falcon technique works as follows. First, we assume that a given program can be executed multiple times, and that there is a test oracle that tells us whether an execution “passed” or “failed.” Falcon then works by (a) observing both patterns and test execution outcomes; and (b) analyzes this data statistically to determine which patterns are most associated with the failing runs, and ranks those patterns. Since the patterns themselves correspond to locations in the source code, this overall analysis effectively gives the programmer a ranked list of program locations to inspect. In Sangmin’s benchmark suite, the first or second most highly ranked patterns/locations were always associated with the bug! By contrast, prior efforts of which we are aware produce either an unranked list of patterns, or a ranked list of individual statements rather than complete patterns.

ICSE’10 paper accepted

Sangmin Park‘s paper on fault localization applied to concurrent programs has been accepted for publication! The paper will appear at the ACM/IEEE International Conference on Software Engineering (ICSE), to be held in Cape Town, South Africa in May 2010. This paper describes a novel technique for pinpointing the cause of program failure in multithreaded Java software. Sangmin designed and implemented this approach in a prototype tool called “Falcon.” This effort is joint between Prof. Mary Jean Harrold(Sangmin’s primary advisor) and The HPC Garage.