软件测试——Homework-3

a) 为 printPrimes() 方法画控制流图

 

b) 考虑测试用例 t1=(n=3) 和 t2=(n=5)。设计一个简单的错误,使得 t2 比 t1 更容易发现。

将代码中的判断函数 isDivisible(primes[i], curPrime) 改成 isDivisible(primes[0], curPrime)

这样对于 t1 用例,程序输出无问题;但是对于 t2 用例,程序输出为 [2, 3, 5, 7, 9],与正确答案 [2, 3, 5, 7, 11] 不符合

 

c) 找到一个测试用例,使得相应的测试路径访问连接 while 语句开始到 for 语句的边,而不用通过 while 循环体。

n = 1, 测试路径:1-2-10-11-12-10-13,未通过 while 循环体

 

d) 列举每个节点覆盖,边覆盖和主路径覆盖的测试需求

节点覆盖 (NC) :

TR:{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}

path(p1) = [1, 2, 3, 4, 5, 7, 4, 5, 6, 8, 9, 2, 10, 11, 12, 13, 11, 14]

 

边覆盖 (EC) :

TR:{(1, 2), {2, 3}, {3, 4}, {4, 5}, {5, 7}, {7, 4}, {4, 8}, {5, 6}, {6, 8}, {8, 9}, {8, 2}, {9, 2}, {2, 10}, {10, 11}, {11, 12}, {12, 13}, {13, 11}, {11, 14}}

path(p1) = [1, 2, 3, 4, 5, 7, 4, 8, 2, 10, 11, 12, 13, 11, 14]

path(p2) = [1, 2, 3, 4, 5, 6, 8, 9, 2, 10, 11, 13]

 

主路径覆盖 (PPC) :

TR{

[1, 2, 3, 4, 8, 9],

[1, 2, 3, 4, 5, 6, 8, 9],

[1, 2, 3, 4, 5, 7],

[1, 2, 10, 11, 14],

[1, 2, 10, 11, 12, 13],

 

[3, 4, 8, 2, 3],

[3, 4, 8, 2, 10, 11, 14],

[3, 4, 8, 2, 10, 11, 12, 13],

[3, 4, 8, 9, 2, 3],

[3, 4, 8, 9, 2, 10, 11, 14],

[3, 4, 8, 9, 2, 10, 11, 12, 13],

[3, 4, 5, 6, 8, 2, 3],

[3, 4, 5, 6, 8, 2, 10, 11, 14],

[3, 4, 5, 6, 8, 2, 10, 11, 12, 13],

[3, 4, 5, 6, 8, 9, 2, 3],

[3, 4, 5, 6, 8, 9, 2, 10, 11, 14],

[3, 4, 5, 6, 8, 9, 2, 10, 11, 12, 13],

 

[4, 5, 7, 4],

[4, 8, 2, 3, 4],

[4, 8, 9, 2, 3, 4],

 

[5, 6, 8, 2, 3, 4, 5],

[5, 6, 8, 9, 2, 3, 4, 5],

[5, 7, 4, 5],

[5, 7, 4, 8, 2, 3],

[5, 7, 4, 8, 9, 2, 3],

[5, 7, 4, 8, 2, 10, 11, 14],

[5, 7, 4, 8, 9, 2, 10, 11, 14],

[5, 7, 4, 8, 2, 10, 11, 12, 13],

[5, 7, 4, 8, 9, 2, 10, 11, 12, 13],

 

[6, 8, 2, 3, 4, 5, 6],

[6, 8, 9, 2, 3, 4, 5, 6],

[6, 8, 2, 3, 4, 5, 7],

[6, 8, 9, 2, 3, 4, 5, 7],

 

[7, 4, 5, 7],

[7, 4, 5, 6, 8, 2, 10, 11, 14],

[7, 4, 5, 6, 8, 2, 10, 11, 12, 13],

[7, 4, 5, 6, 8, 9, 2, 10, 11, 14],

[7, 4, 5, 6, 8, 9, 2, 10, 11, 12, 13],

[7, 4, 8, 2, 3],

[7, 4, 8, 9, 2, 3],

 

 

[8, 2, 3, 4, 8],

[8, 2, 3, 4, 5, 6, 8],

[8, 9, 2, 3, 4, 8],

[8, 9, 2, 3, 4, 5, 6, 8],

[8, 2, 3, 4, 5, 7],

[8, 9, 2, 3, 4, 5, 7],

 

[9, 2, 3, 4, 8, 9],

[9, 2, 3, 4, 5, 6, 8, 9],

[9, 2, 3, 4, 5, 7],

 

[11, 12, 13, 11],

 

[12, 13, 11, 12],

[12, 13, 11, 14],

 

[13, 11, 12, 13],

}

 

 

- 基于 Junit 以及 Eclemma (Jacoco) 实现一个主路径覆盖的测试

 1 package code;
 2 
 3 import org.junit.Test;
 4 
 5 import static org.junit.Assert.*;
 6 
 7 public class DroneTest {
 8 
 9     @Test
10     public void printPrimes() {
11         Drone one = new Drone();
12 
13         int[] two = new int[]{2, 3};
14         assertArrayEquals( two, one.printPrimes(2));
15 
16         two = new int[]{2, 3, 5};
17         assertArrayEquals( two, one.printPrimes(3));
18 
19         two = new int[]{2, 3, 5, 7, 11};
20         assertArrayEquals( two, one.printPrimes(5));
21 
22     }
23 }

测试结果:

 

 

转载于:https://www.cnblogs.com/drone/p/8620972.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值