2012 34th International Conference on Software Engineering (ICSE) 2012
DOI: 10.1109/icse.2012.6227145
|View full text |Cite
|
Sign up to set email alerts
|

Ballerina: Automatic generation and clustering of efficient random unit tests for multithreaded code

Abstract: Abstract-Testing multithreaded code is hard and expensive. A multithreaded unit test creates two or more threads, each executing one or more methods on shared objects of the class under test. Such unit tests can be generated at random, but basic random generation produces tests that are either slow or do not trigger concurrency bugs. Worse, such tests have many false alarms, which require human effort to filter out.We present BALLERINA, a novel technique for automated random generation of efficient multithread… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
37
0
2

Year Published

2013
2013
2022
2022

Publication Types

Select...
3
3
2

Relationship

1
7

Authors

Journals

citations
Cited by 47 publications
(39 citation statements)
references
References 53 publications
0
37
0
2
Order By: Relevance
“…For our experiment, six open source projects including Mozilla Rhino, Eclipse AspectJ, Apache Log4j, and Apache Commons (Math, Lang, Collections) were selected, since they are commonly used in the literature [6], [19], [20] and have well-maintained bug reports. We tried to search their corresponding issue trackers for reproducible bugs.…”
Section: A Experimental Designmentioning
confidence: 99%
“…For our experiment, six open source projects including Mozilla Rhino, Eclipse AspectJ, Apache Log4j, and Apache Commons (Math, Lang, Collections) were selected, since they are commonly used in the literature [6], [19], [20] and have well-maintained bug reports. We tried to search their corresponding issue trackers for reproducible bugs.…”
Section: A Experimental Designmentioning
confidence: 99%
“…Ballerina [19] uses random test prefixes, and then explores two methods executed in parallel in two different threads. Sen and Agha [22] combined jCute [23] with race detection algorithms.…”
Section: B Concurrent Testingmentioning
confidence: 99%
“…Sen and Agha [22] combined jCute [23] with race detection algorithms. The Ballerina tool [19] is the most similar to the approach described in this paper: It randomly invokes methods on a shared object under test in parallel. However, it cannot find concurrency issues that require execution of parallel sequences of code rather than individual method calls, and it cannot find data races based on more than two memory access points [16] (e.g., Figure 4).…”
Section: B Concurrent Testingmentioning
confidence: 99%
See 1 more Smart Citation
“…First, a recent study on real-world concurrency bugs shows that most bugs (96%) can be reproduced with two threads [11]. Second, the execution of concurrent suffixes with a single method call can be efficiently explored and still reveals many real-world bugs [12].…”
Section: Test Generationmentioning
confidence: 99%