\emph{Symbolic execution/} is an important program analysis technique that provides auxiliary execution semantics to execute programs with symbolic rather than concrete values. There has been much recent interest in symbolic execution for automatic test case generation and security vulnerability detection, resulting in various tools being deployed in academia and industry. Nevertheless, (subtype or dynamic) polymorphism of object-oriented programs has been neglected: existing symbolic execution techniques can explore different targets of conditional branches but not different targets of method invocations. We address
the problem of how this polymorphism can be expressed in a symbolic execution framework. We propose the notion of \emph{symbolic types/}, which make object types symbolic. With symbolic types, \emph{various targets of a method invocation can be
explored systematically} by mutating the type of the receiver object of the method during automatic test case generation.
To the best of our knowledge, this is the first attempt to address polymorphism in symbolic execution. Mutation of method invocation targets is critical for effectively testing object-oriented programs, especially libraries.
Our experimental results show that symbolic types
are significantly more effective than existing symbolic execution techniques in achieving test coverage and finding bugs and security vulnerabilities in \code{OpenJDK}.
Mon 6 FebDisplayed time zone: Saskatchewan, Central America change
10:20 - 11:45 | |||
10:20 28mTalk | Data Structure–Aware Heap Partitioning Research Papers DOI | ||
10:48 28mTalk | Dynamic Symbolic Execution for Polymorphism Research Papers Lian Li Institute of Computing Technology at Chinese Academy of Sciences, China, Yi Lu Oracle, Jingling Xue UNSW Australia DOI | ||
11:16 28mTalk | rev.ng: A Unified Binary Analysis Framework to Recover CFGs and Function Boundaries Research Papers Alessandro Di Federico Politecnico di Milano, Italy, Mathias Payer Purdue University, Giovanni Agosta Politecnico di Milano, Italy DOI |