白盒测试

  • 白盒测试
    • 白盒测试是什么
    • 白盒测试用例设计方法
  • 逻辑覆盖法
    • 语句覆盖
    • 判定覆盖
    • 条件覆盖
    • 判定条件覆盖
    • 条件组合覆盖
    • 路径覆盖
  • 基本路径测试法
  • 总结

白盒测试

白盒测试是什么

白盒测试也称为结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试。它根据程序的控制结构设计测试用例,主要用于软件或程序验证。
优点:代码覆盖率高,针对代码逻辑测试。
缺点:覆盖所有代码路径难度大;业务功能可能不全;测试开销大。

使用场景:首先会进行黑盒测试进行系统功能测试,然后用白盒测试进行对重点代码部分进行代码逻辑测试。

白盒测试用例设计方法

逻辑覆盖法

逻辑覆盖法:是通过对程序逻辑结构的遍历实现程序的覆盖
覆盖率:是用来衡量测试完整性的手段
覆盖率 = 至少被执行一次的item数 / item的总数 (item:语句、判定、条件等)
逻辑覆盖法的第一步就是将程序代码转换为流程图。
下面将分别介绍逻辑覆盖法中的具体的典型方法:

语句覆盖

语句覆盖:设计测试用例,使得程序中的每条语句至少被执行一次。

语句覆盖率尽可能100%覆盖。

局限性:覆盖标准最弱,比如上述案例中第一步的 && 换成 || 也能全覆盖,但代码仍是错误的。

判定覆盖

判定覆盖:也叫分支覆盖,设计测试用例,使得程序中的每个判断的“真”和“假”都至少被执行一次。即:程序中的每个分支至少执行一次。

判定覆盖率尽可能100%覆盖。

局限性:判定条件一定满足语句覆盖,但是同样 && 换成 || 也能全覆盖,但代码仍是错误的。

条件覆盖

条件覆盖:设计测试用例,使得判定中的每个条件至少有一次取真值,有一次取假值。

条件覆盖率尽可能100%覆盖。

局限性:条件覆盖比判定覆盖,增加了对判定中所有条件的测试。条件100%覆盖并不能保证判定覆盖的100%。

判定条件覆盖

判定条件覆盖:设计测试用例,使得被测试程序中的每个判断本身的判定结果(真假)至少满足一次,同时,每个逻辑条件的可能值(真假)也至少被满足一次。即同时满足100%判定覆盖和100%条件覆盖的标准。

判定条件覆盖率尽可能100%覆盖。

局限性:满足判定条件覆盖一定能满足条件覆盖、判定覆盖和语句覆盖。但是同样 && 换成 || 也能全覆盖,但代码仍是错误的。

条件组合覆盖

条件组合覆盖:设计测试用例,使得被测试程序中的每个判定中条件结果的所有可能组合至少执行一次。

条件组合覆盖率尽可能100%覆盖。

局限性:条件组合覆盖能满足判定覆盖、条件覆盖、判定-条件覆盖,也就包括语句覆盖。但是不能保证所有的路径都覆盖。

路径覆盖

设计测试用例,覆盖程序中所有可能的路径(从头到尾)。

路径覆盖率尽可能100%覆盖。

局限性:对程序进行彻底的覆盖,比前面5种覆盖都广。但是,满足路径覆盖并不一定能满足条件覆盖和条件组合覆盖。而且当程序特别复杂,循环判断都特别多的时候,路径太多了。

基本路径测试法

基本路径测试法:在程序控制流图的基础上,通过分析程序的环路复杂性,导出基本可执行路径集合(而不用导出全部的路径),从而设计测试用例。

步骤:

案例:
第一步:


第二步:

第三步:

第四步:

总结

以上图片均来源于网络

更多推荐

白盒测试及用例编写