软件测试技术基础教程16.用例设计方法-路径覆盖

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

以经典的闰年计算算法为例。
Int IsLeap(int year) { if (year % 4 == 0) {
if (year % 100 == 0) {
if ( year % 400 == 0) leap = 1;
else leap = 0;
} else
leap = 1; } else leap = 0; return leap; }
路径覆盖在程序控制流图基础上,通过分析控制结构的环形复杂度,导出执行路径的基本集, 再从该基本集设计测试用例。基本路径测试方法包括以下4个步骤: (1)画出程序的控制流图。 (2)计算程序的环形复杂度,导出程序基本路径集中的独立路径条数,这是确定程序中每个 可执行语句至少执行一次所必须的测试用例数目的上界。 (3)导出基本路径集,确定程序的独立路径。 (4)根据(3)中的独立路径,设计测试用例的输入数据和预期输出。
四条基本路径:
P1:1、2、8 P2:1、3、4、8 P3:1、3、5、6、8 P4:1、3、5、7、8
根据以上4条基本路径设计测试用例如下:
P1:1、2、8 P2:1、3、4、8 P3:1、3、5、6、8 P4:1、3、5、7、8
1
2
3
4
5
7 6
8
问题答疑渠道
汇智动力软件测试技术交流群
汇智动力学院微信公众号
接下来计算圈复杂度,根据公式:
V(G)=E-V+2P
1
2
3
4
5
wenku.baidu.com7 6
8
其中E表示程序控制流程图中边的数量,V表示流程图中节点的数量,P则表示流程图中连接组 件的数量。图7- 21所有组件是相通的,没有独立的部分,因此P为1。
综合上述,E=10,共计有10条边,即连接线,V=8,共计有8个节点,即8个圆圈,则圈复杂度 为: V(G)=10-8+2*1=4
用例设计方法-路径覆盖
语句覆盖、判定覆盖、条件覆盖、判定条件覆盖这四种覆盖方法都在一定程度上进行测试路 径的覆盖,但每种方法都无法做到100%路径覆盖,都存在漏测的风险,而被测对象要得到正 确的结果,按照预期的行为去运行,就必须保证被测对象的每一条路径都经过测试,才能使 被测对象受到全面的验证。
路径覆盖期望将被测对象的所有路径都能验证到,对于比较简单的代码而言,实现100%路径 覆盖是可能的,但如果代码中出现较多判定和较多循环时,路径数目将急剧增长,要在测试 中覆盖所有路径几乎不可能或投入成本可能很高。有必要把覆盖路径数量压缩到一定的限度 内。
1
2
3
4
5
7 6
8
每个圆圈表示代码中的逻辑语句,如下:
1:if (year % 4 == 0); 2:leap = 0; 3:if (year % 100 == 0) 4:leap = 1; 5:if ( year % 400 == 0) 6:leap = 1; 7:leap = 0; 8:return leap;
相关文档
最新文档