skip to main content
10.1145/3106237.3121275acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
short-paper

Practical symbolic verification of regular properties

Published: 21 August 2017 Publication History

Abstract

It is challenging to verify regular properties of programs. This paper presents symbolic regular verification (SRV), a dynamic symbolic execution based technique for verifying regular properties. The key technique of SRV is a novel synergistic combination of property-oriented path slicing and guiding to mitigate the path explosion problem. Indeed, slicing can prune redundant paths, while guiding can boost the finding of counterexamples. We have implemented SRV for Java and evaluated it on 16 real-world open-source Java programs (totaling 270K lines of code). The experimental results demonstrate the effectiveness and efficiency of SRV.

References

[1]
C. Allan, P. Avgustinov, A. S. Christensen, L. J. Hendren, S. Kuzins, O. Lhot ák, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble. Adding trace matching with free variables to AspectJ. In OOPSLA, pages 345–364, 2005.
[2]
C. Cadar, D. Dunbar, and D. Engler. KLEE: Unassisted and automatic generation of high-coverage tests for complex systems programs. In OSDI, pages 209–224, 2008.
[3]
F. Chen and G. Rosu. MOP: an efficient and generic runtime verification framework. In OOPSLA, pages 569–588, 2007.
[4]
E. M. Clarke, O. Grumberg, and D. Peled. Model checking. MIT press, 1999.
[5]
Clemens Hammacher, Martin Burger, and Valentin Dallmeier. JavaSlicer. https: //www.st.cs.unisaarland.de/javaslicer/, 2008.
[6]
H. Cui, G. Hu, J. Wu, and J. Yang. Verifying systems rules using rule-directed symbolic execution. In ASPLOS, pages 329–342, 2013.
[7]
M. Das, S. Lerner, and M. Seigle. ESP: path-sensitive program verification in polynomial time. In PLDI, pages 57–68, 2002.
[8]
D. R. Engler, B. Chelf, A. Chou, and S. Hallem. Checking system rules using system-specific, programmer-written compiler extensions. In OSDI, pages 1–16, 2000.
[9]
S. J. Fink, E. Yahav, N. Dor, G. Ramalingam, and E. Geay. Effective typestate verification in the presence of aliasing. In ISSTA, pages 133–144, 2006.
[10]
A. Gill et al. Introduction to the theory of finite-state machines. 1962.
[11]
P. Godefroid, N. Klarlund, and K. Sen. DART: directed automated random testing. In PLDI, pages 213–223, 2005.
[12]
R. Jhala and R. Majumdar. Path slicing. In PLDI, pages 38–47, 2005.
[13]
R. Just, D. Jalali, L. Inozemtseva, M. D. Ernst, R. Holmes, and G. Fraser. Are mutants a valid substitute for real faults in software testing? In FSE, pages 654–665, 2014.
[14]
J. King. Symbolic execution and program testing. Communications of the ACM, 19(7):385–394, 1976.
[15]
M. Leucker and C. Schallhart. A brief account of runtime verification. J. Log. Algebr. Program., 78(5):293–303, 2009.
[16]
Y. Liu, C. Xu, and S.-C. Cheung. Characterizing and detecting performance bugs for smartphone applications. In ICSE, pages 1013–1024, 2014.
[17]
G. J. Myers, C. Sandler, and T. Badgett. The art of software testing. John Wiley & Sons, 2011.
[18]
F. Nielson, H. R. Nielson, and C. Hankin. Principles of Program Analysis. Springer, 2015.
[19]
A. V. Nori, S. K. Rajamani, S. Tetali, and A. V. Thakur. The YOGI project: Software property checking via static analysis and testing. In TACAS, pages 178–181, 2009.
[20]
T. Reps, S. Horwitz, and M. Sagiv. Precise interprocedural dataflow analysis via graph reachability. In POPL, pages 49–61, 1995.
[21]
K. Sen, D. Marinov, and G. Agha. CUTE: a concolic unit testing engine for C. In FSE, pages 263–272, 2005.
[22]
X. Yang, J. Wang, and X. Yi. Slicing execution with partial weakest precondition for model abstraction of C programs. Comput. J., pages 37–49, 2010.
[23]
Y. Zhang, Z. Chen, J. Wang, W. Dong, and Z. Liu. Regular property guided dynamic symbolic execution. In ICSE, pages 643–653, 2015.
[24]
Abstract 1 Introduction 2 SRV: Symbolic Regular Verification 3 Evaluation 4 Related Work 5 Conclusion References

Index Terms

  1. Practical symbolic verification of regular properties

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ESEC/FSE 2017: Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering
    August 2017
    1073 pages
    ISBN:9781450351058
    DOI:10.1145/3106237
    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: 21 August 2017

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Guiding
    2. Regular property
    3. Slicing
    4. Verification

    Qualifiers

    • Short-paper

    Conference

    ESEC/FSE'17
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 112 of 543 submissions, 21%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • 0
      Total Citations
    • 112
      Total Downloads
    • Downloads (Last 12 months)2
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 08 Mar 2025

    Other Metrics

    Citations

    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