● 独立路径:包括一组以前没有处理的语句或条件的一条路径
● 通常环路复杂性可用以下三种方法求得:
v 将环路复杂性定义为控制流图中的区域数。
v 设E为控制流图的边数,N为图的结点数,则定义环路复杂性为 V(G)=E-N+2。
v 若设P为控制流图中的判定结点数,则有 V(G)=P+1。
(4)基本路径测试步骤
● 以详细设计或源代码为基础,导出程序的控制流图
● 计算得到控制流图G的环路复杂性v(g)
● 确定线性无关的路径的基本集
● 生成测试用例,确保基本路径集中每条路径的执行
五、其他白盒测试方法
1.域测试
(1)概述
是一种基于程序结构的测试方法,基于对程序输入空间(域)的分析,选择适的测试点进行测试
(2)Howden错误分类-相对于程序路径分类
● 域错误:程序的控制流存在错误,对于某一特定的输入可能执行的是一条错误路径,这种错误称为路径错误,也叫做域错误
● 计算型错误:对于特定输入执行的路径正确,但赋值语句的错误导致输出结果错误,称为计算型错误
● 丢失路径错误:由于程序中的某处少了一个判定谓词而引起的
(3)测试理想结果:检验输入空间的每一个输入元素是否都产生正确的结果
(4)缺点
● 为进行域测试对程序提出的限制过多
● 当程序存在很多路径时,所需的测试点很多
2.符号测试
(1)概述
● 基本思想是允许程序的输入不仅仅是具体的数值数据,而且包括符号值,符号值可以是基本的符号变量值,也可以是符号变量值的表达式。
● 符号测试执行的是代数运算,可以作为普通测试的一个扩充
● 符号测试可以看作是程序测试和程序验证的一个折衷办法
(2)测试理想情况:程序中仅有有限的几条执行路径,如果都完成了符号测试,就可把握的确认程序的正确性了
(3)缺点
● 分支问题
● 二义性问题
● 大程序问题