[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/1390841.1390849acmconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedingsconference-collections
research-article

Towards a better collaboration of static and dynamic analyses for testing concurrent programs

Published: 20 July 2008 Publication History

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

[1]
M. Abadi, C. Flanagan, and S. N. Freund. Types for safe locking: Static race detection for Java. ACM Transactions on Programming Languages and Systems, 28(2):207--255, 2006.
[2]
R. Agarwal, A. Sasturkar, L. Wang, and S. D. Stoller. Optimized run-time race detection and atomicity checking using partial discovered types. In Proc. 20th IEEE/ACM International Conference on Automated Software Engineering, pages 233--242, 2005.
[3]
M. Biberstein, E. Farchi, and S. Ur. Choosing among alternative pasts. In Proc. 17th International Symposium on Parallel and Distributed Processing, page 289.1, 2003.
[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]
G. Brat and W. Visser. Combining static analysis and model checking for software analysis. In Proc. 16th IEEE International Conference on Automated Software Engineering, pages 262--269, 2001.
[6]
J. Chen and S. MacDonald. Testing concurrent programs using value schedules. In Proc. 22nd IEEE/ACM International Conference on Automated Software Engineering, pages 313--322, 2007.
[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]
B. Dufour, B. G. Ryder, and G. Sevitsky. Blended analysis for performance understanding of framework-based applications. In Proc. 2007 International Symposium on Software Testing and Analysis, pages 118--128, 2007.
[10]
D. Engler and K. Ashcraft. Racerx: Effective, static detection of race conditions and deadlocks. In Proc. 19th ACM Symposium on Operating Systems Principles, pages 237--252, 2003.
[11]
Y. Eytani, K. Havelund, S. D. Stoller, and S. Ur. Towards a framework and a benchmark for testing tools for multi-threaded programs. Concurrency and Computation: Practice and Experience, 19(3):267--279, 2007.
[12]
P. Godefroid. Model checking for programming languages using VeriSoft. In Proc. 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 174--186, 1997.
[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]
M. Naik and A. Aiken. Conditional must not aliasing for static race detection. In Proc. 34th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 327--338, 2007.
[15]
M. Naik, A. Aiken, and J. Whaley. Effective static race detection for Java. In Proc. ACM SIGPLAN 2006 Conference on Programming Language Design and Implementation, pages 308--319, 2006.
[16]
R. O'Callahan and J.-D. Choi. Hybrid dynamic data race detection. In Proc. 9th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 167--178, 2003.
[17]
G. Ramalingam. Context-sensitive synchronization-sensitive analysis is undecidable. ACM Transactions on Programming Languages and Systems, 22(2):416--430, 2000.
[18]
S. Savage, M. Burrows, G. Nelson, P. Sobalvarro, and T. Anderson. Eraser: A dynamic data race detector for multi-threaded programs. In Proc. 16th ACM Symposium on Operating Systems Principles, pages 27--37, 1997.
[19]
R. N. Taylor. Complexity of analyzing the synchronization structure of concurrent programs. Acta Informatica, 19(1):57--84, 1983.
[20]
R. Vallée-Rai, L. Hendren, V. Sundaresan, P. Lam, E. Gagnon, and P. Co. Soot - a Java bytecode optimization framework. In Proc. 1999 Conference of the Centre for Advanced Studies on Collaborative Research, pages 125--135, 1999.
[21]
W. Visser, K. Havelund, G. Brat, S. Park, and F. Lerda. Model checking programs. Automated Software Engineering, 10(2):203--232, 2003.
[22]
Y. Yu, T. Rodeheffer, and W. Chen. Racetrack: Efficient detection of data race conditions via adaptive tracking. In Proc. 20th ACM Symposium on Operating Systems Principles, pages 221--234, 2005.

Cited By

View all
  • (2019)DFTrackerFrontiers of Computer Science: Selected Publications from Chinese Universities10.1007/s11704-016-6383-813:2(247-263)Online publication date: 1-Apr-2019
  • (2016)A systematic review of approaches for testing concurrent programsConcurrency and Computation: Practice & Experience10.1002/cpe.371128:5(1572-1611)Online publication date: 10-Apr-2016
  • (2012)A systematic mapping study on the combination of static and dynamic quality assurance techniquesInformation and Software Technology10.1016/j.infsof.2011.06.00354:1(1-15)Online publication date: 1-Jan-2012
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
PADTAD '08: Proceedings of the 6th workshop on Parallel and distributed systems: testing, analysis, and debugging
July 2008
78 pages
ISBN:9781605580524
DOI:10.1145/1390841
  • General Chair:
  • Shmuel Ur
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 20 July 2008

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article

Conference

ISSTA '08
Sponsor:

Upcoming Conference

ISSTA '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)2
Reflects downloads up to 09 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2019)DFTrackerFrontiers of Computer Science: Selected Publications from Chinese Universities10.1007/s11704-016-6383-813:2(247-263)Online publication date: 1-Apr-2019
  • (2016)A systematic review of approaches for testing concurrent programsConcurrency and Computation: Practice & Experience10.1002/cpe.371128:5(1572-1611)Online publication date: 10-Apr-2016
  • (2012)A systematic mapping study on the combination of static and dynamic quality assurance techniquesInformation and Software Technology10.1016/j.infsof.2011.06.00354:1(1-15)Online publication date: 1-Jan-2012
  • (2011)Research in concurrent software testingProceedings of the Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging10.1145/2002962.2002964(1-5)Online publication date: 17-Jul-2011
  • (2010)A platform for search-based testing of concurrent softwareProceedings of the 8th Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging10.1145/1866210.1866215(48-58)Online publication date: 13-Jul-2010
  • (2009)A self-adaptive test framework for concurrent programsProceedings of the International Conference on Management of Emergent Digital EcoSystems10.1145/1643823.1643911(456-457)Online publication date: 27-Oct-2009

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media