软件测试基本概念 - 覆盖率
测试计划中就需要考虑如何提高覆盖率的细节问题。
1 覆盖率分析,基于需求(功能,性能),基于结构。
1.1 结构化测试,缺点:不能发现需求疏忽的错误;但是需求定义有时并不存在,而且不完整,所以有必要进行这种测试。
可根据代码外观目的,写测试用例,然后再与开发的评审中,发现是否与需求一致。因为下面的方法,都无法检查代码中&&, || 写错的情况。据说MC/DC覆盖可以检查,有待考查。
1.1.1 逻辑覆盖法 基础:规格说明书,每条通路是否都有按照预定要求工作,不顾功能,与开发确认。
1.1.1.1 语句覆盖: 至少被执行一次。对||, && 反应迟钝。
1.1.1.2 分支覆盖
1.1.1.3 条件覆盖
1.1.1.4 条件组合覆盖 至少出现一次,可能未包含所有路径
条件判定表达式1,。(1)A>1,B=0 (2)A>1,B!=0 (3) A<=1, B=0 (4)A<=1, B!=0
条件判定表达式2, (5) A=2,X>1 (6) A=2, X<=1 (7)A!=2, X>1 (8) A!=2, X<=1
条件组合,(1)A=2, B=0, X=4 (1,5)
(2)a=1, b=1, x=1 (2,6)
(3) a=1, b=0, x=2 (3,7)
(4) a=1, b=1, x=1 (4,8)
1.1.1.5 路径覆盖 覆盖所有可能路径,数量大,但是未考虑条件组合or。
1.1.2.1 基本路径测试法
(1)程序控制流图 (2) 圈复杂度 V(G)= e-n+2 , V(G)=p+1 (谓词结点的数量)(3)测试用例
1.1.2.2 循环测试
整个跳过,only one, two, m次, n-1/n+1次 嵌套测试。
基本路径测试法,达到了语句覆盖的标准。
逻辑覆盖中的路径覆盖,是覆盖所有可能的路径,数量大。