ACM Home Page
Please provide us with feedback. Feedback
Unit testing concurrent software
Full text PdfPdf (229 KB)
Source
Automated Software Engineering archive
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering table of contents
Atlanta, Georgia, USA
POSTER SESSION: Posters table of contents
Pages 513-516  
Year of Publication: 2007
ISBN:978-1-59593-882-4
Authors
William Pugh  Univ. of Maryland, College Park, MD
Nathaniel Ayewah  Univ. of Maryland, College Park, MD
Sponsors
ACM: Association for Computing Machinery
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 17,   Downloads (12 Months): 139,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1321631.1321722
What is a DOI?

ABSTRACT

There are many difficulties associated with developing correct multithreaded software, and many of the activities that are simple for single threaded software are exceptionally hard for multithreaded software. One such example is constructing unit tests involving multiple threads. Given, for example, a blocking queue implementation, writing a test case to show that it blocks and unblocks appropriately using existing testing frameworks is exceptionally hard. In this paper, we describe the MultithreadedTC framework which allows the construction of deterministic and repeatable unit tests for concurrent abstractions. This framework is not designed to test for synchronization errors that lead to rare probabilistic faults under concurrent stress. Rather, this framework allows us to demonstrate that code does provide specific concurrent functionality (e.g., a thread attempting to acquire a lock is blocked if another thread has the lock).

We describe the framework and provide empirical comparisons against hand-coded tests designed for Sun's Java concurrency utilities library and against previous frameworks that addressed this same issue. The source code for this framework is available under an open source license.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Jsr 166: Concurrency utilities. http://www.jcp.org/en/jsr/detail?id=166, 2004.
 
2
Junit testing framework. http://www.junit.org, 2007.
 
3
Multithreadedtc. http://code.google.com/p/multithreadedtc/, 2007.
 
4
Swat4j. http://www.codeswat.com, 2007.
 
5
M. Albrecht. Using multi-threaded tests. http://groboutils.sourceforge.net/testingjunit/ using mtt.html, September 2004.
 
6
C. Beust and A. Popescu. Testng: Testing, the next generation. http://www.testng.org, 2007.
 
7
8
 
9
O. Edelstein, E. Farchi, Y. Nir, G. Ratsaby, and S. Ur. Multithreaded java program test generation. IBM Systems Journal, 41(1):111--125, 2002.
 
10
P. B. Hansen. Reproducible testing of monitor. Softw., Pract. Exper., 8(6):721--729, 1978.
 
11
B. Long. Testing Concurrent Java Components. PhD thesis, The University of Queensland, July 2005.
 
12
B. Long, D. Hoffman, and P. Strooper. Tool support for testing concurrent java components. IEEE Transactions on Software Engineering, 29(6), 2003.
 
13

Collaborative Colleagues:
William Pugh: colleagues
Nathaniel Ayewah: colleagues