代码转换成图
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