Guided Testing of Concurrent Programs Using Value Schedules

作者: Jun Chen

DOI:

关键词:

摘要: Testing concurrent programs remains a difficult task due to the non-deterministic nature of execution. Many approaches have been proposed tackle complexity uncovering potential concurrency bugs. Static analysis tackles problem by analyzing program looking for situations/patterns that might lead possible errors during In general, static cannot precisely locate all errors. Dynamic testing examines and controls its execution also dynamic needs examine paths detect errors, which is intractable. Motivated these observation, new technique developed uses collaboration between find first error but using less time space. scheme, interact iteratively throughout process. provides coarse-grained flow-information guide through relevant search space, while collects concrete runtime-information guided exploration. The feedback refine analysis, then feed forward provide more precise guidance testing. collaborative able uncover concurrency-related bug in faster storage than state-of-the-art testing-tool Java PathFinder. implementation consists static-analysis module based on Soot dynamic-analysis

参考文章(78)
Donald E. Knuth, The Art of Computer Programming, Volume 4, Fascicle 2: Generating All Tuples and Permutations (Art of Computer Programming) The Art of Computer Programming, Volume 4, Fascicle 2: Generating All Tuples and Permutations (Art of Computer Programming). ,(2005)
E. Pozniansky, A. Schuster, Efficient on-the-fly data race detection in multithreaded C++ programs international parallel and distributed processing symposium. pp. 287- ,(2003) , 10.1109/IPDPS.2003.1213513
David A. Padua, Jaejin Lee, Compilation techniques for explicitly parallel programs University of Illinois at Urbana-Champaign. ,(1999)
Kenneth Lauchlin McMillan, Symbolic model checking: an approach to the state explosion problem Ph. D. Thesis, Carnegie Mellon University. ,(1992)
Shady Copty, Shmuel Ur, Multi-threaded Testing with AOP Is Easy, and It Finds Bugs! Euro-Par 2005 Parallel Processing. pp. 740- 749 ,(2005) , 10.1007/11549468_81
Ganeshan Jayaraman, Venkatesh Prasad Ranganath, John Hatcliff, Kaveri: Delivering the Indus Java Program Slicer to Eclipse Fundamental Approaches to Software Engineering. pp. 269- 272 ,(2005) , 10.1007/978-3-540-31984-9_20
Amy Williams, William Thies, Michael D. Ernst, Static deadlock detection for java libraries european conference on object oriented programming. pp. 602- 629 ,(2005) , 10.1007/11531142_26
Koushik Sen, Gul Agha, CUTE and jCUTE: Concolic Unit Testing and Explicit Path Model-Checking Tools Computer Aided Verification. pp. 419- 423 ,(2006) , 10.1007/11817963_38
Martin Rinard, Analysis of Multithreaded Programs static analysis symposium. pp. 1- 19 ,(2001) , 10.1007/3-540-47764-0_1
Klaus Havelund, Scott D. Stoller, Shmuel Ur, Yaniv Eytani, Towards a framework and a benchmark for testing tools for multi-threaded programs: Research Articles Concurrency and Computation: Practice and Experience. ,vol. 19, pp. 267- 279 ,(2007) , 10.1002/CPE.V19:3