The execution proceeds as in a normal execution except that values may be symbolic formulas over the input symbols. A particular system called effigy which provides symbolic execution for program testing and debugging is also described. Symbolic execution is a popular program analysis technique introduced in the. In software testing, symbolic execution is used to generate a test input for each feasible execution path of a program. An execution path is a sequence of true and false, where a value of true respectively false at the ith position in the sequence denotes that the ith conditional statement encountered along the. In computer science, symbolic execution is a means of analyzing a program to determine what. Consider the c code of figure 1 and assume that our goal is to determine. In software testing, symbolic execution is used to generate a test input for each execution path of a program. This paper describes the symbolic execution of programs. Symbolic execution and program testing king1976symbolic. King marie nesfield 31st jan 2017 testing sy mb o l i c ex ecu ti o n p ro vi n g exercises a single program tracedynamic tries to exhaust all program tracesdynamic need not be dynamic ensures property holds on single trace ensures property holds on as much as maybe executed. Fundamental approaches, pioneered by king in a seminal paper 68, are the following. Programs interact with their environment by performing system calls, receiving signals, etc.
However, if few inputs take the same path through the program, there is little savings over testing each of the inputs separately. Symbolic execution and program testing semantic scholar. Ppt symbolic execution and program testing powerpoint. Draws an execution tree corresponding to the symbolic execution of a subset of the language described in the paper symbolic execution and program testing by james c. Generalizing symbolic execution to library classes the university. Symbolic execution and program testing communications of the acm. King,symbolic execution and program testing, communications of the acm, volume 19, number 7, 1976, 385. Symbolic execution and program testing communications of. Symbolic execution for software testing in practice patrice godefroid. Watson research center this paper describes the symbolic execution of pro grams. The symbolic execution of programs in this simple language is. Applications of symbolic execution to program testing.
1208 98 507 37 573 612 797 1421 1483 92 373 336 1256 848 346 1187 1404 812 1294 66 621 211 1026 304 1389 1190 502 569 1139 207 348 532 1360 1190 1121 387