@inproceedings{3222c63124284573900340ef8f053419,
title = "PENELOPE: Weaving threads to expose atomicity violations",
abstract = "Testing concurrent programs is challenged by the interleaving explosion problem - - the problem of exploring the large number of interleavings a program exhibits, even under a single test input. Rather than try all interleavings, we propose to test wisely: to exercise only those schedules that lead to interleavings that are typical error patterns. In particular, in this paper we select schedules that exercise patterns of interaction that correspond to atomicity violations. Given an execution of a program under a test harness, our technique is to algorithmically mine from the execution a small set of alternate schedules that cause atomicity violations. The program is then re-executed under these predicted atomicity-violating schedules, and verified by the test harness. The salient feature of our tool is the efficient algorithmic prediction and synthesis of alternate schedules that cover all possible atomicity violations at program locations. We implement the tool PENELOPE that realizes this testing framework and show that the monitoring, prediction, and rescheduling (with precise repro) are efficient and effective in finding bugs related to atomicity violations.",
keywords = "atomicity violation, concurrency, dynamic analysis, predictive analysis, schedule selection, testing",
author = "Francesco Sorrentino and Azadeh Farzan and P. Madhusudan",
year = "2010",
doi = "10.1145/1882291.1882300",
language = "English (US)",
isbn = "9781605587912",
series = "Proceedings of the ACM SIGSOFT Symposium on the Foundations of Software Engineering",
pages = "37--46",
booktitle = "Proceedings of the 18th ACM SIGSOFT International Symposium on Foundations of Software Engineering, FSE-18",
note = "18th ACM SIGSOFT International Symposium on the Foundations of Software Engineering, FSE-18 ; Conference date: 07-11-2010 Through 11-11-2010",
}