白盒测试

代码逻辑的测试

定义: 白盒测试是一种测试方法,测试人员考虑程序的内部结构、代码逻辑算法来验证软件的正确性

特点:

优点:代码覆盖率高

缺点:1.覆盖所有代码路径难度大 2.业务功能可能覆盖不全 3.测试开销大

使用场景:

  • 单元测试(主要): 白盒测试常用于测试单个模块、函数或方法,确保其在各种输入条件下都能正确执行。
  • 集成测试: 在系统集成的过程中,白盒测试可以用于验证各个模块之间的接口和数据流是否正确。
  • 性能测试: 白盒测试也可用于评估系统的性能,例如检查代码中的效率和资源利用情况。

白盒设计方法(先静态后动态)

设计用例一般使用基本路径测试,重点模块使用多种覆盖率标准

静态==>【1.桌面检查 2.代码审查 3.代码走查 】(手动)【4.代码扫描工具】(自动化)

动态==>1.逻辑覆盖法==>1.语句覆盖 2.判定覆盖 3.条件覆盖 4.判定条件覆盖 5.条件组合覆盖 6.路径覆盖

2.基本路径测试法

动态测试方法

1.逻辑覆盖法

是对程序逻辑结构的遍历实现程序的覆盖

语句覆盖

介绍:设计测试用例,使得程序中每条语句都至少执行一次 (基本要求:尽可能的满足100%覆盖率)

局限性:标准最弱、不能准确的判断运算中的逻辑错误

判定覆盖

介绍:只要满足了判定覆盖标准就一定满足语句覆盖标,

局限性:判定覆盖会忽略条件中取或(or)的情况

条件覆盖

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

局限性:条件覆盖不能保证判定覆盖

判定条件覆盖

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

局限性:判定覆盖会忽略条件中取或(or)的情况

条件组合覆盖

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

局限性:条件组合覆盖不能保证所有路径被执行

路径覆盖

设计测试用例,覆盖程序中所有可能的路径

局限性:但是满足路径覆盖,并不一定能满足条件覆盖,也就不能满足条件组合盖

2.基本路径测试:

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

计算程序的环路复杂度:

方法有三种:

  • 流图中区域的数量对应于环型的复杂性

  • 给定流图G的圈复杂度V(G)、定义为V(G)=E-N+2, E是流图中边的数量,N是流图中节点的数量

  • 给定流图G的圈复杂度V(G)、定义为V(G) = P + 1 , P是流图G中判定节点的数量