ACM Home Page
Please provide us with feedback. Feedback
Towards a better collaboration of static and dynamic analyses for testing concurrent programs
Full text PdfPdf (185 KB)
Source International Symposium on Software Testing and Analysis archive
Proceedings of the 6th workshop on Parallel and distributed systems: testing, analysis, and debugging table of contents
Seattle, Washington
Article No. 8  
Year of Publication: 2008
ISBN:978-1-60558-052-4
Authors
Jun Chen  University of Waterloo, Ontario, Canada
Steve MacDonald  University of Waterloo, Ontario, Canada
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 10,   Downloads (12 Months): 89,   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/1390841.1390849
What is a DOI?

ABSTRACT

Testing concurrent programs remains a difficult task due to the non-deterministic nature of concurrent executions. Many approaches have been proposed to combine static and dynamic analysis to reduce the complexity of uncovering potential concurrency bugs. However, the existing collaboration schemes only provide a limited mechanism for exchanging relevant information between the two analyses. For example, alias information only flows from the static analysis module to the dynamic analysis module at the beginning of the dynamic analysis. Therefore, we cannot fully exploit the advantages of each type of analysis. Motivated by this observation, in this paper we present a new testing technique which enables a tighter collaboration between static analysis and dynamic analysis. In this collaboration scheme, static analysis and dynamic analysis interact iteratively throughout the whole testing process. Static analysis uses coarse-grained analysis to guide the dynamic analysis to concentrate on the relevant search space, while dynamic analysis collects concrete runtime information during the guided exploration. The runtime information provided by the dynamic analysis helps the static analysis to refine its coarse-grained analysis and provides better guidance on dynamic analysis. Currently, our implementation consists of a static analysis module based on Soot and a dynamic analysis module based on JPF (Java PathFinder).


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
2
 
3
 
4
M. Biberstein, E. Farchi, and S. Ur. Fidgeting to the point of no return. In Proc. 18th International Parallel and Distributed Processing Symposium, page 266b, 2004.
 
5
6
 
7
J. Chen and S. MacDonald. Incremental testing of concurrent programs using value schedules. Submitted to 23rd IEEE/ACM International Conference on Automated Software Engineering, 2008.
 
8
S. Copty and S. Ur. Multi-threaded testing with AOP is easy, and it finds bugs!. In Proc. 11th International Euro-Par Conference, volume 3648 of Lecture Notes in Computer Science, pages 740--749. Springer-Verlag, 2005.
9
10
 
11
12
 
13
S. MacDonald, J. Chen, and D. Novillo. Choosing among alternative futures. In Haifa Verification Conference, volume 3875 of Lecture Notes in Computer Science, pages 247--264. Springer-Verlag, 2005.
14
15
16
17
18
 
19
R. N. Taylor. Complexity of analyzing the synchronization structure of concurrent programs. Acta Informatica, 19(1):57--84, 1983.
 
20
 
21
22

Collaborative Colleagues:
Jun Chen: colleagues
Steve MacDonald: colleagues