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