Dynamic symbolic execution for the analysis of web server applications in Java

Daniel Balasubramanian, Zhenkai Zhang, Dan McDermet, Gabor Karsai

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

Symbolic execution is a well-known program analysis technique that explores multiple program paths simultaneously. Among other things, it is used to uncover subtle bugs and corner cases in programs, as well as to produce high-coverage test suites. Even though symbolic execution has seen successful use in practice, there remain challenges in applying it to programs like web servers that use features such as multithreading and callbacks. This paper describes our dynamic symbolic execution framework for Java that was designed with these types of features in mind. Our framework uses bytecode instrumentation combined with a run-time agent to perform the symbolic execution. We give a detailed description of the challenges we faced along with our design choices. We also present benchmark results on various examples including programs that use web server frameworks.

Original languageEnglish
Title of host publicationProceedings of the ACM Symposium on Applied Computing
PublisherAssociation for Computing Machinery
Pages2178-2185
Number of pages8
ISBN (Print)9781450359337
DOIs
StatePublished - 2019
Event34th Annual ACM Symposium on Applied Computing, SAC 2019 - Limassol, Cyprus
Duration: Apr 8 2019Apr 12 2019

Publication series

NameProceedings of the ACM Symposium on Applied Computing
VolumePart F147772

Conference

Conference34th Annual ACM Symposium on Applied Computing, SAC 2019
CountryCyprus
CityLimassol
Period04/8/1904/12/19

Keywords

  • Program analysis
  • Symbolic execution
  • Testing

Fingerprint Dive into the research topics of 'Dynamic symbolic execution for the analysis of web server applications in Java'. Together they form a unique fingerprint.

  • Cite this

    Balasubramanian, D., Zhang, Z., McDermet, D., & Karsai, G. (2019). Dynamic symbolic execution for the analysis of web server applications in Java. In Proceedings of the ACM Symposium on Applied Computing (pp. 2178-2185). (Proceedings of the ACM Symposium on Applied Computing; Vol. Part F147772). Association for Computing Machinery. https://doi.org/10.1145/3297280.3297494