More about HKUST
Search Strategies in Dynamic Symbolic Execution
PhD Thesis Proposal Defence Title: "Search Strategies in Dynamic Symbolic Execution" by Mr. Hyunmin SEO Abstract: One of the biggest challenges in Dynamic Symbolic Execution (DSE), an automatic test generation technique based on symbolic execution, is its huge search space. DSE generates next inputs by selecting branches from previous execution paths, but a large number of candidate branches makes a simple exhaustive search infeasible, which often leads to poor test coverage. Several search strategies have been proposed to explore high-priority branches only. Each strategy applies different criteria to the branch selection process but most do not consider context, how we got to the branch, in the selection process. In this work, we introduce a context-guided search (CGS) strategy. CGS looks at preceding branches in execution paths and selects a branch in a new context for the next input. We evaluate CGS with two publicly available concolic testing tools, CREST and CarFast, on six C subjects and six Java subjects. The experimental results show that CGS achieves the highest coverage of all twelve subjects and reaches target coverage with a much smaller number of iterations on most subjects than other strategies. This work has been accepted in FSE 2014. Although CSG achieves higher coverage with a smaller number of inputs, it may still suffer from UNSAT results from the SMT solvers. A branch selected by a strategy may only be covered from specific execution paths only but search strategies do not know this information and may result in continuously selecting a branch until it is covered wasting a large portion of testing budget. To address this problem, we propose a technique combining static analysis results based on abstract interpretation with DSE. Abstract interpretation is a theory of sound approximation of the semantics of computer programs. We define domains for the possible values of variables in a program and run a pre-analysis and exploit this information in the branch selection process. This technique can be combined with search strategies to improve coverage in general or to guide the execution toward specific code area to test recently changed code such as software patches. Date: Thursday, 3 July 2014 Time: 9:30am - 11:30am Venue: Room 3501 lifts 25/26 Committee Members: Dr. Sunghun Kim (Supervisor) Dr. Charles Zhang (Chairperson) Prof. Shing-Chi Cheung Dr. Lei Chen **** ALL are Welcome ****