A Late Treatment of C Precondition in Dynamic Symbolic Execution Testing Tools

  • Mickaël Delahaye
  • Nikolai Kosmatov
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8174)

Abstract

This paper presents a novel technique for handling a precondition in dynamic symbolic execution (DSE) testing tools. It delays precondition constraints until the end of the program path evaluation. This method allows PathCrawler, a DSE tool for C programs, to accept a precondition defined as a C function. It provides a convenient way to express a precondition even for developers who are not familiar with specification formalisms. Our initial experiments show that it is more efficient than early precondition treatment, and has a limited overhead compared to a native treatment of a precondition directly expressed in constraints. It has also proven useful for combinations of static and dynamic analysis.

Keywords

test input generation dynamic symbolic execution concolic testing executable preconditions 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Botella, B., Delahaye, M., Hong-Tuan-Ha, S., Kosmatov, N., Mouy, P., Roger, M., Williams, N.: Automating structural testing of C programs: Experience with PathCrawler. In: AST 2009 (2009)Google Scholar
  2. 2.
    Milicevic, A., Misailovic, S., Marinov, D., Khurshid, S.: Korat: A tool for generating structurally complex test inputs. In: ICSE 2007 (2007)Google Scholar
  3. 3.
    Visser, W., Pǎsǎreanu, C.S., Khurshid, S.: Test input generation with Java PathFinder. In: ISSTA 2004 (2004)Google Scholar
  4. 4.
    Sen, K., Marinov, D., Agha, G.: CUTE: a concolic unit testing engine for C. In: ESEC/ FSE 2013 (2013)Google Scholar
  5. 5.
    Barnett, M., Fahndrich, M., de Halleux, P., Logozzo, F., Tillmann, N.: Exploiting the synergy between automated-test-generation and programming-by-contract. In: ICSE 2009 (2009)Google Scholar
  6. 6.
    Godefroid, P.: Compositional dynamic test generation. In: POPL 2007 (2007)Google Scholar
  7. 7.
    Kosmatov, N.: All-paths test generation for programs with internal aliases. In: ISSRE 2008 (2008)Google Scholar
  8. 8.
    Kosmatov, N.: Online version of PathCrawler (2010–2013), http://pathcrawler-online.com/
  9. 9.
    Chebaro, O., Kosmatov, N., Giorgetti, A., Julliand, J.: Program slicing enhances a verification technique combining static and dynamic analysis. In: SAC 2012 (2012)Google Scholar
  10. 10.
    Delahaye, M., Kosmatov, N., Signoles, J.: Common specification language for static and dynamic analysis of C programs. In: SAC 2013 (2013)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Mickaël Delahaye
    • 1
  • Nikolai Kosmatov
    • 2
  1. 1.LIGUniversité Grenoble AlpesGrenobleFrance
  2. 2.Software Reliability LaboratoryCEA, LISTGif-sur-YvetteFrance

Personalised recommendations