Java白盒测试

Java白盒测试

Java的代码测试分为以下两大类:

  • 静态测试方法
    不执行程序的测试方法。
    主要用于测试文档和代码(文档)
  • 动态测试方法
    通过运行程序来发现缺陷的测试方法
    黑盒测试方法
    白盒测试方法

今天我们主要讲解一下动态测试中的白盒测试。

白盒测试

白盒测试,也称结构测试、逻辑驱动测试、基于程序本身的测试、程序员测试。

在这里插入图片描述
白盒测试需要完全了解程序结构和处理过程,因此要在程序开发完成之后,按照程序内部逻辑测试程序,检验程序中每条通路是否按照预定要求工作。

它与我们熟悉的黑盒测试有很大不同:

在这里插入图片描述

测试思路
  • 逻辑覆盖法
    语句覆盖
    判定覆盖
    条件覆盖
    判定-条件覆盖
    条件组合覆盖
  • 路径覆盖法
  • 测试难度:路径覆盖>条件覆盖>语句覆盖
  • 测试效果:路径覆盖>条件覆盖>语句覆盖
测试步骤
  1. 获得需求、获得/画出程序流程图/算法图
    如:
    在这里插入图片描述
  2. 画出控制流图
    一定要根据需求和算法流程图来画图,目的是弄清预期结果。
    如:
    在这里插入图片描述
选择覆盖方法设计测试用例

1.语句覆盖法

  • 目标
    程序中的每个可执行语句至少被执行一次
  • 度量(覆盖度)
    被执行的语句数/所有可能的语句数
    被执行的路径数/所有可能的路径数
    在这里插入图片描述
  • 用例
    a=2,b=1,c=6
    用例对语句的覆盖率:100%
    用例对路径的覆盖率:25%
  • 语句覆盖能发现语句错误
    在这里插入图片描述
  • 语句覆盖不能发现逻辑错误/条件错误
    在这里插入图片描述

2.分支/判定覆盖

  • 目标
    程序中的每个判定的取真分支和取假分支至少执行一次
    在这里插入图片描述
  • 用例
    a=2,b=1,c=6
    a=-1,b=1,c=1
    用例对语句的覆盖率:100%
    用例对路径的覆盖率:50%
  • 分支/判定覆盖能发现逻辑错误
    在这里插入图片描述
  • 分支/判定覆盖不能发现组合判断中的条件错误
    在这里插入图片描述

3.条件覆盖

  • 目标
    程序每个判定中每个条件的可能取值至少满足一次
  • 未必比 C1 更全面
  • 不能发现逻辑错误
    在这里插入图片描述
  • 用例
    在这里插入图片描述

4.判定-条件覆盖

  • 目标
    每个条件中的所有可能取值至少执行一次,同时,每个判定的可能结果至少执行一次。
  • 可能会导致某些条件掩盖了另一些条件。
    在这里插入图片描述
  • 用例
    在这里插入图片描述

5.条件组合覆盖/多条件覆盖

  • 目标
    每个判定中的所有的条件取值组合至少执行一次。
  • 比条件覆盖全面
    在这里插入图片描述
  • 用例
    在这里插入图片描述

6.路径覆盖

  • 目标
    用例覆盖程序中的所有可能的执行路径。
  • 不切实际
    因为涉及到相当长和几乎无穷尽的路径数。
    任何可能的循环在程序段中都被视为是可能的路径。
  • 用例
    在这里插入图片描述
  • 路径覆盖优化
    McCabe 的基路径方法
    在这里插入图片描述
    从源节点到汇节点的线性独立路径数(根据圈复杂度计算)
    * V(G)=e-n+2p=10-7+2=5
    * 当规模很小时,我们可以直观地标识独立路径。
    以下给出的是用节点/边序列表示的路径:
    * p1:A,B,C,G/1,4,9
    * p2:A,B,C,B,C, G/1,4,3,4,9
    * p3:A,B,E,F,G/1,5,8,10
    * p4:A,D,E,F,G/2,6,8,10
    * p5:A,D,F,G/2,7,10
  • 案例
    在这里插入图片描述
测试工具
  • 内存资源泄漏检查工具
    如 Numega 中的 BounceChecker,Rational 的 Purify 等

  • 代码覆盖率检查工具
    如 Numega 的 TrueCoverage , Rational 的 PureCoverage , TeleLogic 公司的 Logiscope

  • 代码性能检查工具
    如 Logiscope 和 Macabe 等

  • 静态源代码分析工具
    类似于编译器,能够检查源代码,发现违反编程语言语法规则和大量定义编程规范的代码

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值