Title :
Finding Inputs that Reach a Target Expression
Author :
Naylor, Matthew ; Runciman, Colin
Author_Institution :
Univ. of York, York
fDate :
Sept. 30 2007-Oct. 1 2007
Abstract :
We present an automated program analysis, called Reach, to compute program inputs that cause evaluation of explicitly-marked target expressions. Reach has a range of applications including property refutation, assertion breaking, program crashing, program covering, program understanding, and the development of customised data generators. Reach is based on lazy narrowing, a symbolic evaluation strategy from functional-logic programming. We use Reach to analyse a range of programs, and find it to be a useful tool with clear performance benefits over a method based on exhaustive input generation. We also explore different methods for bounding the search space, the selective use of breadth-first search to find the first solution quickly, and techniques to avoid evaluation that is unnecessary to reach a target.
Keywords :
functional programming; logic programming; program diagnostics; program testing; symbol manipulation; Reach automated program analysis; assertion breaking; breadth-first search; customised data generator; explicitly-marked target expression; functional-logic programming; lazy narrowing; program covering; program crashing; program testing; program understanding; property refutation; symbolic evaluation strategy; Application software; Automatic testing; Computer crashes; Computer science; Concrete; Functional programming; Performance analysis; Power generation; Program processors; Target recognition;
Conference_Titel :
Source Code Analysis and Manipulation, 2007. SCAM 2007. Seventh IEEE International Working Conference on
Conference_Location :
Paris
Print_ISBN :
978-0-7695-2880-9
DOI :
10.1109/SCAM.2007.30