代码转换成图
graph:通常是控制流图(CFG)
- 节点覆盖:执行每个语句
- 边覆盖:执行每个分支
- 循环:循环结构,如for循环、while循环等。
数据流覆盖:增加CFG
- defs是为变量赋值的语句
- uses是使用变量的语句
控制流图
if Statement
Loops
switch
try-catch
数据流图
- def:一个值存储在内存中
x出现在赋值的左侧(x=44;)
x是调用中的实际参数,该方法更改其值
x是方法的形式参数(方法启动时的隐式定义)
x是程序的输入
- use:访问变量的值
x出现在赋值的右侧
x出现在条件测试中
x是方法的实际参数
x是程序的输出
x是return语句中方法的输出
如果def和use出现在同一个节点上,def发生在use之后并且该节点处于Loop中,那么def和use是DU-pair
Example
版权声明:本文为weixin_43201090原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。