Abstract
In this article, we present a new algorithm that combines contextual unfoldings and dynamic symbolic execution to systematically test multithreaded programs. The approach uses symbolic execution to limit the number of input values and unfoldings to thus limit the number of thread interleavings that are needed to cover reachable local states of threads in the program under test. We show that the use of contextual unfoldings allows interleavings of threads to be succinctly represented. This can in some cases lead to a substantial reduction in the number of needed test executions when compared to previous approaches.
- Parosh Aziz Abdulla, Stavros Aronis, Bengt Jonsson, and Konstantinos F. Sagonas. 2014. Optimal dynamic partial order reduction. In POPL, Suresh Jagannathan and Peter Sewell (Eds.). ACM, 373--384. Google Scholar
Digital Library
- Paolo Baldan, Alessandro Bruni, Andrea Corradini, Barbara König, César Rodríguez, and Stefan Schwoon. 2012. Efficient unfolding of contextual Petri nets. Theor. Comput. Sci. 449 (2012), 2--22. Google Scholar
Digital Library
- Paolo Baldan, Andrea Corradini, Barbara König, and Stefan Schwoon. 2008. McMillan’s complete prefix for contextual nets. T. Petri Nets and Other Models of Concurrency 1 (2008), 199--220. Google Scholar
Digital Library
- Leonardo Mendonça de Moura and Nikolaj Bjørner. 2008. Z3: An efficient SMT solver. In Proceedings of the 14th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS 2008) (Lecture Notes in Computer Science), Vol. 4963. Springer, 337--340. Google Scholar
Digital Library
- Volker Diekert. 1995. The Book of Traces. World Scientific Publishing Co., Inc., River Edge, NJ, USA. Google Scholar
Digital Library
- Javier Esparza and Keijo Heljanko. 2008. Unfoldings -- A Partial-Order Approach to Model Checking. Springer-Verlag. 172 pages. Google Scholar
Digital Library
- Azadeh Farzan and P. Madhusudan. 2006. Causal atomicity. In CAV (Lecture Notes in Computer Science), Thomas Ball and Robert B. Jones (Eds.), Vol. 4144. Springer, 315--328. Google Scholar
Digital Library
- Cormac Flanagan and Patrice Godefroid. 2005. Dynamic partial-order reduction for model checking software. In POPL, Jens Palsberg and Martín Abadi (Eds.). ACM, 110--121. Google Scholar
Digital Library
- Patrice Godefroid. 1996. Partial-Order Methods for the Verification of Concurrent Systems: An Approach to the State-Explosion Problem. Springer-Verlag. Google Scholar
Digital Library
- Patrice Godefroid. 1997. Model checking for programming languages using Verisoft. In POPL, Peter Lee, Fritz Henglein, and Neil D. Jones (Eds.). ACM Press, 174--186. Google Scholar
Digital Library
- Patrice Godefroid, Nils Klarlund, and Koushik Sen. 2005. DART: Directed automated random testing. In Proceedings of the ACM SIGPLAN 2005 Conference on Programming Language Design and Implementation (PLDI’05). ACM, 213--223. Google Scholar
Digital Library
- Kari Kähkönen. 2015. Automated Systematic Testing Methods for Multithreaded Programs. Doctoral Dissertation. School of Science, Aalto University.Google Scholar
- Kari Kähkönen and Keijo Heljanko. 2014. Lightweight state capturing for automated testing of multithreaded programs. In TAP (Lecture Notes in Computer Science), Martina Seidl and Nikolai Tillmann (Eds.), Vol. 8570. Springer, 187--203.Google Scholar
- Kari Kähkönen and Keijo Heljanko. 2014. Testing multithreaded programs with contextual unfoldings and dynamic symbolic execution. In Proceedings of the 14th International Conference on Application of Concurrency to System Design (ACSD’14). IEEE. Google Scholar
Digital Library
- Kari Kähkönen, Olli Saarikivi, and Keijo Heljanko. 2012. Using unfoldings in automated testing of multithreaded programs. In Proceedings of the 27th IEEE/ACM International Conference Automated Software Engineering (ASE’12). 150--159. Google Scholar
Digital Library
- Kari Kähkönen, Olli Saarikivi, and Keijo Heljanko. 2015. Unfolding based automated testing of multithreaded programs. Autom. Softw. Eng. 22, 4 (2015), 475--515. Google Scholar
Digital Library
- Victor Khomenko, Alex Kondratyev, Maciej Koutny, and Walter Vogler. 2005. Merged processes - A new condensed representation of Petri net behaviour. In CONCUR (Lecture Notes in Computer Science), Martín Abadi and Luca de Alfaro (Eds.), Vol. 3653. Springer, 338--352. Google Scholar
Digital Library
- Ugo Montanari and Francesca Rossi. 1995. Contextual nets. Acta Inf. 32, 6 (1995), 545--596. Google Scholar
Digital Library
- Doron Peled. 1993. All from one, one for all: On model checking using representatives. In CAV (Lecture Notes in Computer Science), Costas Courcoubetis (Ed.), Vol. 697. Springer, 409--423. Google Scholar
Digital Library
- César Rodríguez, Stefan Schwoon, and Victor Khomenko. 2013. Contextual merged processes. In Petri Nets (Lecture Notes in Computer Science), José Manuel Colom and Jörg Desel (Eds.), Vol. 7927. Springer, 29--48. Google Scholar
Digital Library
- Olli Saarikivi, Kari Kähkönen, and Keijo Heljanko. 2012. Improving dynamic partial order reductions for concolic testing. In Proceedings of the 12th International Conference on Application of Concurrency to System Design (ACSD’12). 132--141. Google Scholar
Digital Library
- Koushik Sen. 2006. Scalable Automated Methods for Dynamic Program Analysis. Doctoral thesis. University of Illinois. Google Scholar
Digital Library
- Koushik Sen and Gul Agha. 2006. A race-detection and flipping algorithm for automated testing of multi-threaded programs. In Haifa Verification Conference (Lecture Notes in Computer Science), Vol. 4383. Springer, 166--182. Google Scholar
Digital Library
- Antti Valmari. 1991. Stubborn sets for reduced state space generation. In Proceedings of the 10th International Conference on Applications and Theory of Petri Nets: Advances in Petri Nets 1990. Springer-Verlag, London, UK, 491--515. Google Scholar
Digital Library
Index Terms
Testing Programs with Contextual Unfoldings
Recommendations
Unfolding Based Minimal Test Suites for Testing Multithreaded Programs
ACSD '15: Proceedings of the 2015 15th International Conference on Application of Concurrency to System DesignThis paper focuses on the problem of computing the minimal test suite for a terminating multithreaded program that covers all its executable statements. We have in previous work shown how to use unfoldings to capture the true concurrency semantics of ...
Using unfoldings in automated testing of multithreaded programs
ASE '12: Proceedings of the 27th IEEE/ACM International Conference on Automated Software EngineeringIn multithreaded programs both environment input data and the nondeterministic interleavings of concurrent events can affect the behavior of the program. One approach to systematically explore the nondeterminism caused by input data is dynamic symbolic ...
Unfolding based automated testing of multithreaded programs
In multithreaded programs both environment input data and the nondeterministic interleavings of concurrent events can affect the behavior of the program. One approach to systematically explore the nondeterminism caused by input data is dynamic symbolic ...






Comments