软件测试复习之路径测试

基本概念

使用路径来覆盖程序中的各种语句执行情况

程序图(CFG)

节点为程序的语句(可能是一条也有可能语句的一部分),边表示控制流,意思就是能紧跟节点后执行。

If-else:

基本概念

使用路径来覆盖程序中的各种语句执行情况

程序图(CFG)

节点为程序的语句(可能是一条也有可能语句的一部分),边表示控制流,意思就是能紧跟节点后执行。

If-else:

While:

Do-while:

For:

圈复杂度计算:e-n+2

DD-路径图

DD路径是程序图中的一条链,这个链内部没有分支。

DD路径图是将DD路径作为节点,边是DD路径的控制流的图,实际上是对程序图的压缩

基路径测试

  1. 获取程序图
  2. 程序图转化DD路径图
  3. 计算圈复杂度,使用e-n+2或者region(图外也是一个区域),圈复杂度就是独立路径的个数,但不唯一。
  4. 根据基路径集合给出测试用例
  5. 翻转法:选定一个最短的基路径,从头开始翻转每个节点

习题

1.  void SelectSort( datalist & list ) {

  2.     for (int i=0; i<list.n-1; i++){

  3.        int k=i;

  4.        for (int j=i+1; j<list.n; j++){

  5.          if (list.V[j].getKey() < list.V[k].getKey()) 

  6.             k=j;

  7.         }

  8.        if (k!=i) 

  9.          Swap(list.V[i], list.V[k]);

10.    }

11.  }

请完成:

根据已编号的程序画出相应的程序图;

根据程序图给出相应的DD-路径图;

计算DD-路径图的复杂度;

用翻转法给出全部的基路径。

程序图:

DD路径图

圈复杂度:13 – 10 + 2 = 5

基路径:

  1. A,B,J
  2. A,B,C,G,H,I,BJ
  3. A,B,C,D,F,E,C,G,H,I,B,J
  4. A,B,C,G,I,B,J
  5. A,B,C,D,E,G,H,I,B,J
  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值