【单元测试】Junit 4教程(一)--白盒测试方法

本文详细介绍了软件测试中的几种覆盖率标准,包括语句覆盖、判定/分支覆盖、条件覆盖、判定条件覆盖和条件组合覆盖,以及基本路径覆盖。同时强调了这些方法的优缺点,并提供了与软件测试面试相关的资源链接。
摘要由CSDN通过智能技术生成
1.0 流程图标识

1.1 语句覆盖法(C0标准)

① 目标

​ 程序中的每个可执行语句至少被执行一次

后面如未说明那就是还是用的这个样例

程序源代码:

 
  1. import java.util.Scanner;

  2. public class Demo {

  3. public static void main(String[] args) {

  4. int a, b;

  5. double c;

  6. Scanner scanner = new Scanner(System.in);

  7. a = scanner.nextInt();

  8. b = scanner.nextInt();

  9. c = scanner.nextDouble();

  10. if (a > 0 && b > 0) {

  11. c = c / a;

  12. } else if (a > 1 || c > 1) {

  13. c = c + 1;

  14. }

  15. c = b + c;

  16. System.out.println("a=" + a);

  17. System.out.println("b=" + b);

  18. System.out.println("c=" + c);

  19. scanner.close();

  20. }

  21. }

画出流程图:

② 用例

输入输出
a = 2 b = 1 c = 6a = 2 b = 1 c = 7

③ 优缺点

  • 语句覆盖发现语句错误
  • 语句覆盖不能发现逻辑错误
1.2 判定/分支覆盖法(C1标准)

① 目标

​ 程序中每个判定的取真分支和取假分支至少执行一次

② 用例

输入输出
a = 2 b = 1 c = 6a = 2 b = 1 c = 5
a = -1 b = 1 c = 1a = -1 b = 1 c = 7

③ 优缺点

  • 判定/分支覆盖发现逻辑错误
  • 判定/分支覆盖不能发现组合判断中的条件错误
1.3 条件覆盖法(C2标准)

① 目标

​ 程序中每个判定每个条件的可能取值至少满足一次

② 用例

​ 判定3:(a > 0 && b > 0)

​ 判定6:(a > 1 || c > 1)

​ 原子条件集:

​ a > 0

​ b > 0

​ a > 1

​ c > 1

要求:各原子条件集真假各取一次

输入原子条件判定条件
a = -1 b = 2 c = 3a>0取假,b>0取真,a>1取假,c>1取真判定3取假,判定6取真
a = 2 b = -1 c = -2a>0取真,b>0取假,a>1取真,c>1取假判定3取假,判定6取真

③ 优缺点

  • 未必比判定/分支覆盖更全面
  • 不能发现逻辑错误
1.4 判定条件覆盖法(C1+C2标准)

① 目标

​ 每个条件中的所有可能取值至少执行一次,同时,每个判定的可能结果至少执行一次

② 用例

输入原子条件判定条件
a = 2 b = 1 c = 4a>0取真,b>0取真,a>1取真,c>1取真判定3取真,判定6取真
a = -1 b = -2 c = -3a>0取假,b>0取假,a>1取假,c>1取假判定3取假,判定6取假

③ 优缺点

  • 可能会导致某些条件掩盖了另一些条件
1.5 条件组合覆盖法(C3标准)

① 目标

​ 每个判定中的所有的条件取值组合至少执行一次

② 用例

​ 判定3:(a > 0 && b > 0)

​ 判定6:(a > 1 || c > 1)

​ 原子条件集:

​ a > 0 b > 0 a > 1 c > 1

要求:

​ a>0时,b>0真假各一次

​ a<=0时,b>0真假各一次

​ a>1时,c>1真假各一次

​ a<=1时,c>1真假各一次

输入原子条件判定条件
a = 2 b = 1 c = 6a>0取真,b>0取真,a>1取真,c>1取真判定3取真,判定6取真
a = 2 b = -1 c = -2a>0取真,b>0取假,a>1取真,c>1取假判定3取假,判定6取真
a = -1 b = 2 c = 3a>0取假,b>0取真,a>1取假,c>1取真判定3取假,判定6取真
a = -1 b = -2 c = -3a>0取假,b>0取假,a>1取假,c>1取假判定3取假,判定6取假

③ 优缺点

  • 比条件覆盖法更全面
1.6 路径覆盖

① 目标

​ 用例覆盖程序中的所有可能执行路径

② 用例

输入原子条件判定条件
a = 2 b = 1 c = 6a>0取真,b>0取真,a>1取真,c>1取真判定3取真,判定6取真
a = 1 b = 1 c = -3a>0取真,b>0取真,a>1取假,c>1取假判定3取真,判定6取假
a = -1 b = 2 c = 3a>0取假,b>0取真,a>1取假,c>1取真判定3取假,判定6取真
a = -1 b = -2 c = -3a>0取假,b>0取假,a>1取假,c>1取假判定3取假,判定6取假

③ 优缺点

  • 不切实际
    • 因为涉及到相关长和几乎无穷尽的路径数
    • 任何可能的循环在程序段中都被视为是可能的路径
1.7 基本路径覆盖法

1)McCabe的基路径方法

2)从源节点到汇节点的线性独立路径数(根据圈复杂度计算

  1. V(G) = e - n + 2p = 10 - 7 + 2 = 5
  2. 当规模很小时,我们可以直观地标识独立路径

3)以下给出的是用节点/边序列表示的路径:

  1. p1:A,B,C,G/1,4,9
  2. p2:A,B,C,B,C,G/1,4,3,4,9
  3. p3:A,B,E,F,G/1,5,8,10
  4. p4:A,D,E,F,G/2,6,8,10
  5. p5:A,D,F,G/2,7,10

 以上就是这节的全部内容,如有错误,还请各位指正!

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方进群即可自行领取。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值