skip to main content
10.1145/3297280.3297457acmconferencesArticle/Chapter ViewAbstractPublication PagessacConference Proceedingsconference-collections
research-article

Parallel property checking with staged symbolic execution

Published: 08 April 2019 Publication History

Abstract

While annotating functional correctness properties of code is useful in many bug finding techniques, efficiently checking properties in practice remains challenging. Symbolic execution is a powerful technique for systematically checking properties; however, it is expensive and can take long time before giving any results. In this paper, we introduce a novel approach for checking properties in parallel with staged symbolic execution. It consists of two stages running in parallel: one stage for finding all feasible paths to properties and the other stage for checking properties along these paths in parallel. Memoized analysis is applied to efficiently explore the state space during the latter stage. We implement our approach on top of Symbolic PathFinder, and evaluate it on several Java subjects with assertions. The experimental results show the effectiveness of our approach compared to sequential property checking using conventional symbolic execution. In particular, our approach finds the same assertion violations as sequential property checking while achieving up to 5.65X speedup, thereby our approach provides users earlier reports of assertion checking.

References

[1]
SMT-COMP 2018. http://www.smtcomp.org.
[2]
https://www.tacc.utexas.edu/systems/lonestar.
[3]
S. Bucur, V. Ureche, C. Zamfir, and G. Candea. Parallel symbolic execution for automated real-world software testing. In Proceedings of the Sixth Conference on Computer Systems, EuroSys '11, pages 183--198, New York, NY, USA, 2011. ACM.
[4]
L. A. Clarke. A program testing system. In Proceedings of the 1976 Annual Conference, ACM '76, pages 488--491, New York, NY, USA, 1976. ACM.
[5]
L. A. Clarke and D. S. Rosenblum. A historical perspective on runtime assertion checking in software development. SIGSOFT Softw. Eng. Notes, 31(3):25--37, May 2006.
[6]
J. C. Corbett, M.B. Dwyer, J. Hatcliff, and Robby. Bandera: A source-level interface for model checking java programs. In Proceedings of the 22Nd International Conference on Software Engineering, ICSE '00, pages 762--765, New York, NY, USA, 2000. ACM.
[7]
M. D. Ernst, J. H. Perkins, P. J. Guo, S. McCamant, C. Pacheco, M. S. Tschantz, and C. Xiao. The daikon system for dynamic detection of likely invariants. Sci. Comput. Program., 69(1--3):35--45, Dec. 2007.
[8]
E. Fredkin. Trie memory. Commun. ACM, 3(9):490--499, Sept. 1960.
[9]
P. Godefroid. Model checking for programming languages using verisoft. In Proceedings of the 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL '97, pages 174--186, New York, NY, USA, 1997. ACM.
[10]
P. Godefroid, N. Klarlund, and K. Sen. DART: directed automated random testing. In PLDI '05, pages 213--223, 2005.
[11]
S. Guo, M. Kusano, C. Wang, Z. Yang, and A. Gupta. Assertion guided symbolic execution of multithreaded programs. In Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering, ESEC/FSE 2015, pages 854--865, New York, NY, USA, 2015. ACM.
[12]
S. Khurshid, C. S. Păsăreanu, and W. Visser. Generalized symbolic execution for model checking and testing. In Proceedings of the 9th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, TACAS'03, pages 553--568, Berlin, Heidelberg, 2003. Springer-Verlag.
[13]
M. Kim, Y. Kim, and G. Rothermel. A scalable distributed concolic testing approach: An empirical evaluation. In Proceedings of the 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation, ICST '12, pages 340--349, Washington, DC, USA, 2012. IEEE Computer Society.
[14]
J. C. King. Symbolic execution and program testing. Commun. ACM, 19(7):385--394, July 1976.
[15]
S. Person, G. Yang, N. Rungta, and S. Khurshid. Directed incremental symbolic execution. In PLDI, pages 504--515, 2011.
[16]
C. S. Păsăreanu and N. Rungta. Symbolic pathfinder: Symbolic execution of java bytecode. In Proceedings of the IEEE/ACM International Conference on Automated Software Engineering, ASE '10, pages 179--180, New York, NY, USA, 2010. ACM.
[17]
R. Qiu, S. Khurshid, C. S. Păsăreanu, J. Wen, and G. Yang. Using test ranges to improve symbolic execution. In A. Dutle, C. Muñoz, and A. Narkawicz, editors, NASA Formal Methods, NFM 2018, pages 416--434, Cham, 2018. Springer International Publishing.
[18]
K. Sen and G. Agha. Cute and jcute: Concolic unit testing and explicit path model-checking tools. In CAV, pages 419--423, 2006.
[19]
J. Siddiqui and S. Khurshid. Parsym: Parallel symbolic execution. In Proceedings of 2010 2nd International Conference on Software Technology and Engineering, volume 1 of ICSTE 2010, pages V1--405, 11 2010.
[20]
J. H. Siddiqui and S. Khurshid. Scaling symbolic execution using ranged analysis. In Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA '12, pages 523--536, New York, NY, USA, 2012. ACM.
[21]
M. Staats and C. Pǎsǎreanu. Parallel symbolic execution for structural test generation. In ISSTA '10, pages 183--194, 2010.
[22]
J. Wen and G. Yang. Parallel property checking with symbolic execution. In The 30th International Conference on Software Engineering and Knowledge Engineering, SEKE 2018, pages 554--553, 2018.
[23]
G. Yang, Q. C. D. Do, and J. Wen. Distributed assertion checking using symbolic execution. SIGSOFT Softw. Eng. Notes, 40(6):1--5, Nov. 2015.
[24]
G. Yang, S. Khurshid, S. Person, and N. Rungta. Property differencing for incremental checking. In Proceedings of the 36th International Conference on Software Engineering, ICSE 2014, pages 1059--1070, New York, NY, USA, 2014. ACM.
[25]
G. Yang, S. Person, N. Rungta, and S. Khurshid. Directed incremental symbolic execution. ACM Trans. Softw. Eng. Methodol., 24(1):3:1--3:42, Oct. 2014.
[26]
G. Yang, C. S. Păsăreanu, and S. Khurshid. Memoized symbolic execution. In Proceedings of the 2012 International Symposium on Software Testing and Analysis, ISSTA 2012, pages 144--154, New York, NY, USA, 2012. ACM.
[27]
L. Zhang, G. Yang, N. Rungta, S. Person, and S. Khurshid. Feedback-driven dynamic invariant discovery. In Proceedings of the 2014 International Symposium on Software Testing and Analysis, ISSTA 2014, pages 362--372, New York, NY, USA, 2014. ACM.

Cited By

View all
  • (2019)A synergistic approach to improving symbolic execution using test rangesInnovations in Systems and Software Engineering10.1007/s11334-019-00331-915:3-4(325-342)Online publication date: 1-Sep-2019

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SAC '19: Proceedings of the 34th ACM/SIGAPP Symposium on Applied Computing
April 2019
2682 pages
ISBN:9781450359337
DOI:10.1145/3297280
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: 08 April 2019

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. memoized analysis
  2. program assertions
  3. symbolic execution

Qualifiers

  • Research-article

Conference

SAC '19
Sponsor:

Acceptance Rates

Overall Acceptance Rate 1,650 of 6,669 submissions, 25%

Upcoming Conference

SAC '25
The 40th ACM/SIGAPP Symposium on Applied Computing
March 31 - April 4, 2025
Catania , Italy

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)0
Reflects downloads up to 05 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2019)A synergistic approach to improving symbolic execution using test rangesInnovations in Systems and Software Engineering10.1007/s11334-019-00331-915:3-4(325-342)Online publication date: 1-Sep-2019

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media