符号执行
符号执行是一种软件测试技术,可用于帮助生成测试数据和证明程序质量。
1. 使用符号执行的步骤
-
执行需要选择由一组数据值执行的路径。使用实际数据执行的程序导致输出一系列值。
-
在符号执行中,数据由具有表达式集的符号值替换,每个输出变量一个表达式。
-
符号执行的常用方法是执行程序分析,从而创建流程图。
-
流程图识别决策点和与每个流相关的分配。通过从入口点遍历流图,生成赋值语句和分支谓词的列表。
2. 符号执行问题
-
如果已知循环中的迭代次数,则无法进行符号执行。
-
第二个问题是调用任何外部代码或模块调用。
-
符号执行不能与数组一起使用。
-
符号执行无法识别不可行的路径。
3. 符号执行应用程序
-
路径域检查
-
测试数据生成
-
分区分析
-
符号调试