ABSTRACT
In this paper, we describe (con)2colic testing - a systematic testing approach for concurrent software. Based on concrete and symbolic executions of a concurrent program, (con)2colic testing derives inputs and schedules such that the execution space of the program under investigation is systematically explored. We introduce interference scenarios as key concept in (con)2colic testing. Interference scenarios capture the flow of data among different threads and enable a unified representation of path and interference constraints. We have implemented a (con)2colic testing engine and demonstrate the effectiveness of our approach by experiments.
- J. Burnim and K. Sen. Heuristics for Scalable Dynamic Test Generation. In ASE, pages 443–446, 2008. Google ScholarDigital Library
- F. Chen, T. Serbanuta, and G. Ro¸su. JPredictor: A Predictive Runtime Analysis Tool for Java. In ICSE, pages 221–230, 2008. Google ScholarDigital Library
- M. Emmi, S. Qadeer, and Z. Rakamari´c. Delay-Bunded Scheduling. SIGPLAN Not., 46(1):411–422, 2011. Google ScholarDigital Library
- A. Farzan, P. Madhusudan, N. Razavi, and F. Sorrentino. Predicting Null-Pointer Dereferences in Concurrent Programs. In FSE, pages 47:1–47:11, 2012. Google ScholarDigital Library
- P. Godefroid. Model Checking for Programming Languages Using VeriSoft. In POPL, pages 174–186, New York, NY, USA, 1997. ACM. Google ScholarDigital Library
- P. Godefroid, N. Klarlund, and K. Sen. DART: Directed Automated Random Testing. In PLDI, pages 213–223, 2005. Google ScholarDigital Library
- P. Godefroid, M. Y. Levin, and D. A. Molnar. Active Property Checking. In EMSOFT, pages 207–216, 2008. Google ScholarDigital Library
- A. Lal and T. Reps. Reducing Concurrent Analysis Under a Context Bound to Sequential Analysis. Form. Methods Syst. Des., 35:73–97, 2009. Google ScholarDigital Library
- S. Lu, Z. Li, F. Qin, L. Tan, P. Zhou, and Y. Zhou. BugBench: Benchmarks for Evaluating Bug Detection Tools. In Workshop on the Evaluation of Software Defect Detection Tools, 2005.Google Scholar
- M. Musuvathi and S. Qadeer. Iterative Context Bounding for Systematic Testing of Multithreaded Programs. SIGPLAN Not., 42(6):446–455, 2007. Google ScholarDigital Library
- M. Musuvathi, S. Qadeer, and T. Ball. CHESS: A Systematic Testing Tool for Concurrent Software, 2007.Google Scholar
- S. Park, S. Lu, and Y. Zhou. Ctrigger: Exposing Atomicity Violation Bugs from Their Hiding Places. In ASPLOS, pages 25–36, 2009. Google ScholarDigital Library
- S. Qadeer. Poirot: A Concurrency Sleuth. In ICFEM, pages 15–15, 2011. Google ScholarDigital Library
- S. Qadeer and J. Rehof. Context-Bounded Model Checking of Concurrent Software. In In TACAS, pages 93–107. Springer, 2005. Google ScholarDigital Library
- S. Qadeer and D. Wu. KISS: Keep It Simple and Sequential. SIGPLAN Not., pages 14–24, 2004. Google ScholarDigital Library
- Z. Rakamari´c. STORM: Static Unit Checking of Concurrent Programs. In ICSE, pages 519–520, 2010. Google ScholarDigital Library
- N. Razavi, F. Ivancic, V. Kahlon, and A. Gupta. Concurrent Test Generation Using Concolic Multi-Trace Analysis. In APLAS, 2012.Google ScholarCross Ref
- K. Sen. Scalable Automated Methods for Dynamic Program Analysis. PhD thesis, University of Illinois at Urbana-Champaign, 2006. Google ScholarDigital Library
- K. Sen and G. Agha. Concolic Testing of Multithreaded Programs and Its Application to Testing Security Protocols. Technical Report UIUCDCS-R-2006-2676, University of Illinois at Urbana Champaign, 2006.Google Scholar
- N. Sinha and C. Wang. Staged Concurrent Program Analysis. In FSE, FSE’10, pages 47–56, 2010. Google ScholarDigital Library
- N. Sinha and C. Wang. On Interference Abstractions. In POPL, pages 423–434, 2011. Google ScholarDigital Library
- F. Sorrentino, A. Farzan, and P. Madhusudan. PENELOPE: Weaving Threads to Expose Atomicity Violations. In FSE, pages 37–46, 2010. Google ScholarDigital Library
- S. Torre, P. Madhusudan, and G. Parlato. Reducing Context-Bounded Concurrent Reachability to Sequential Reachability. In CAV, pages 477–492, 2009. Google ScholarDigital Library
- C. Wang, S. Kundu, M. Ganai, and A. Gupta. Symbolic Predictive Analysis for Concurrent Programs. In FM, pages 256–272. Springer, 2009. Google ScholarDigital Library
- W. Zhang, J. Lim, R. Olichandran, J. Scherpelz, G. Jin, S. Lu, and T. Reps. ConSeq: Detecting Concurrency Bugs through Sequential Errors. In ASPLOS, pages 251–264, 2011. Google ScholarDigital Library
Index Terms
- Con2colic testing
Recommendations
Predictable and Progressive Testing of Multithreaded Code
Developing concurrent software is hard. Testing concurrent software is harder. Although sequential program testing has many useful concepts, techniques, and tools (for example, assertions, unit testing, test-driven development, code coverage, and test ...
Maple: a coverage-driven testing tool for multithreaded programs
OOPSLA '12Testing multithreaded programs is a hard problem, because it is challenging to expose those rare interleavings that can trigger a concurrency bug. We propose a new thread interleaving coverage-driven testing tool called Maple that seeks to expose ...
Testing atomicity of composed concurrent operations
OOPSLA '11: Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applicationsWe address the problem of testing atomicity of composed concurrent operations. Concurrent libraries help programmers exploit parallel hardware by providing scalable concurrent operations with the illusion that each operation is executed atomically. ...
Comments