图 : 通常是控制流图 (CFG)
•点覆盖: 执行每一行代码
•边覆盖: 执行每一个分支
•循环 : for循环, while循环等
•数据流覆盖: 通常作为控制流覆盖的补充
–定义:变量赋值的代码–引用:使用变量值的代码
McCabe’s 基本路径
1: 控制流图
2: 计算圈复杂性
3: 选择基本路径集合
4: 生成测试数据覆盖基本路径
圈复杂度:
V(G)=e-n+2=d+1 e边n点
基本路径测试:
数据流覆盖
•定义 : 将某个值存储进内存的代码点
–程序输入值
–赋值语句的左边变量(x = 44;)
–实参调用过程中的值改变
–实例化时方法参数的赋值
•引用 : 变量值使用的代码点
–程序输出值
–赋值语句的右边变量(x=y;)
–函数/方法返回值
–实参调用
•定义-引用(DU)对:
如果同一语句包含定义变量和引用变量,则定义在引用之前才构成有效的DU对。