skip to main content
research-article

Minimizing Test Suites with Unfoldings of Multithreaded Programs

Authors Info & Claims
Published:03 February 2017Publication History
Skip Abstract Section

Abstract

This article focuses on computing minimal test suites for multithreaded programs. Based on previous work on test case generation for multithreaded programs using unfoldings, this article shows how this unfolding can be used to generate minimal test suites covering all local states of the program. Generating such minimal test suites is shown to be NP-complete in the size of the unfolding. We propose an SMT encoding for this problem and two methods based on heuristics which only approximate the solution, but scale better in practice. Finally, we apply our methods to compute the minimal test suites for several benchmarks.

References

  1. Parosh Aziz Abdulla, Stavros Aronis, Mohamed Faouzi Atig, Bengt Jonsson, Carl Leonardsson, and Konstantinos F. Sagonas. 2015. Stateless model checking for TSO and PSO. In Proceedings of the 21st International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS 2015). Lecture Notes in Computer Science, Vol. 9035. Springer, 353--367. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Parosh Aziz Abdulla, Stavros Aronis, Bengt Jonsson, and Konstantinos F. Sagonas. 2014. Optimal dynamic partial order reduction. In Proceedings of the 41st Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’14). ACM, 373--384. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Parosh Aziz Abdulla, Mohamed Faouzi Atig, Bengt Jonsson, and Carl Leonardsson. 2016. Stateless model checking for POWER. In Proceedings of the 28th International Conference on Computer Aided Verification (CAV’16). Lecture Notes in Computer Science, Vol. 9780. Springer, 134--156. Google ScholarGoogle ScholarCross RefCross Ref
  4. Paolo Baldan, Andrea Corradini, and Ugo Montanari. 2001. Contextual petri nets, asymmetric event structures, and processes. Inf. Comput. 171, 1 (2001), 1--49. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Sébastien Bornot, Rémi Morin, Peter Niebert, and Sarah Zennou. 2002. Black box unfolding with local first search. In Proceedings of the 8th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’02). Lecture Notes in Computer Science, Vol. 2280. Springer, 386--400. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ’08). Lecture Notes in Computer Science, Vol. 4963. Springer, 337--340. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Volker Diekert and Grzegorz Rozenberg (Eds.). 1995. The Book of Traces. World Scientific Publishing Co., Inc. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Javier Esparza and Keijo Heljanko. 2008. Unfoldings—Partial-Order Approach to Model Checking. Springer. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Azadeh Farzan, Andreas Holzer, Niloofar Razavi, and Helmut Veith. 2013. Con2colic testing. In Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE’13). ACM, 37--47. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Azadeh Farzan and P. Madhusudan. 2006. Causal atomicity. In Proceedings of the 18th International Conference on Computer Aided Verification (CAV’06). Lecture Notes in Computer Science, Vol. 4144. Springer, 315--328. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Cormac Flanagan and Patrice Godefroid. 2005. Dynamic partial-order reduction for model checking software. In Proceedings of the 32nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’05). ACM, 110--121. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Patrice Godefroid. 1996. Partial-Order Methods for the Verification of Concurrent Systems—An Approach to the State-Explosion Problem. Lecture Notes in Computer Science, Vol. 1032. Springer. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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. ACM, 213--223. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Kari Kähkönen. 2015. Automated Systematic Testing Methods for Multithreaded Programs. Doctoral Dissertation. School of Science, Aalto University.Google ScholarGoogle Scholar
  15. Kari Kähkönen and Keijo Heljanko. 2014a. Lightweight state capturing for automated testing of multithreaded programs. In Proceedings of the 8th International Conference on Tests and Proofs (TAP’14). Lecture Notes in Computer Science, Vol. 8570. Springer, 187--203. Google ScholarGoogle ScholarCross RefCross Ref
  16. Kari Kähkönen and Keijo Heljanko. 2014b. 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 Computer Society, 142--151. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Kari Kähkönen, Olli Saarikivi, and Keijo Heljanko. 2012. Using unfoldings in automated testing of multithreaded programs. In Proceedings of the IEEE/ACM International Conference on Automated Software Engineering (ASE’12). ACM, 150--159. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Victor Khomenko, Alex Kondratyev, Maciej Koutny, and Walter Vogler. 2006. Merged processes: A new condensed representation of petri net behaviour. Acta Inf. 43, 5 (2006), 307--330. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Kenneth L. McMillan. 1995. A technique of state space search based on unfolding. Formal Methods Syst. Des. 6, 1 (1995), 45--65. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Ugo Montanari and Francesca Rossi. 1995. Contextual nets. Acta Inf. 32, 6 (1995), 545--596. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Peter Niebert, Michaela Huhn, Sarah Zennou, and Denis Lugiez. 2001. Local first search - a new paradigm for partial order reductions. In Proceedings of the 12th International Conference on Concurrency Theory (CONCUR’01). Lecture Notes in Computer Science, Vol. 2154. Springer, 396--410. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Mogens Nielsen, Gordon D. Plotkin, and Glynn Winskel. 1981. Petri nets, event structures and domains, part i. Theor. Comput. Sci. 13 (1981), 85--108. Google ScholarGoogle ScholarCross RefCross Ref
  23. Sampo Niskanen and Patric Östergård. 2002. Cliquer - routines for clique searching. Retrieved from http://users.aalto.fi/∼pat/cliquer.html.Google ScholarGoogle Scholar
  24. Patric Östergård. 2002. A fast algorithm for the maximum clique problem. Discr. Appl. Math. 120, 1--3 (2002), 197--207. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Hernán Ponce de León and Andrey Mokhov. 2015. Building bridges between sets of partial orders. In Proceedings of the 9th International Conference on Language and Automata Theory and Applications (LATA’15). Lecture Notes in Computer Science, Vol. 8977. Springer, 145--160. Google ScholarGoogle ScholarCross RefCross Ref
  26. Hernán Ponce de León, Olli Saarikivi, Kari Kähkönen, Keijo Heljanko, and Javier Esparza. 2015. Unfolding based minimal test suites for testing multithreaded programs. In Proceedings of the 15th International Conference on Application of Concurrency to System Design (ACSD’15). IEEE Computer Society, 40--49. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. César Rodríguez. 2013. Verification Based on Unfoldings of Petri Nets with Read Arcs. Thèse de doctorat. Laboratoire Spécification et Vérification, ENS Cachan, France.Google ScholarGoogle Scholar
  28. César Rodríguez, Marcelo Sousa, Subodh Sharma, and Daniel Kroening. 2015. Unfolding-based partial order reduction. In Proceedings of the 26th International Conference on Concurrency Theory (CONCUR’15). 456--469.Google ScholarGoogle Scholar
  29. Koushik Sen. 2006. Scalable Automated Methods for Dynamic Program Analysis. Ph.D. Thesis. University of Illinois. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Antti Valmari. 1996. The state explosion problem. In Lectures on Petri Nets I: Basic Models, Advances in Petri Nets, the Volumes Are Based on the Advanced Course on Petri Nets. 429--528. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Minimizing Test Suites with Unfoldings of Multithreaded Programs

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          • Published in

            cover image ACM Transactions on Embedded Computing Systems
            ACM Transactions on Embedded Computing Systems  Volume 16, Issue 2
            Special Issue on LCETES 2015, Special Issue on ACSD 2015 and Special Issue on Embedded Devise Forensics and Security
            May 2017
            705 pages
            ISSN:1539-9087
            EISSN:1558-3465
            DOI:10.1145/3025020
            Issue’s Table of Contents

            Copyright © 2017 ACM

            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]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 3 February 2017
            • Accepted: 1 October 2016
            • Revised: 1 September 2016
            • Received: 1 February 2016
            Published in tecs Volume 16, Issue 2

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article
            • Research
            • Refereed

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader