白盒测试的用例设计方法

文章目录

  • 1. 白盒测试方法的概念及应用场景
  • 2. 白盒测试方法有哪些
  • 3.使用6种逻辑覆盖法来设计白盒测试用例
    • 3.1. 语句覆盖
    • 3.2. 判定覆盖
    • 3.3. 条件覆盖
    • 3.4. 判定条件覆盖法
    • 3.5. 条件组合覆盖
    • 3.6. 路径覆盖法
  • 4. 使用基本路径法来设计白盒测试用例

1. 白盒测试方法的概念及应用场景

  1. 白盒测试的特点
    优点:代码覆盖率高
    缺点:①覆盖所有代码路径难度大;②业务功能可能覆盖不全;③测试开销大

2. 白盒测试方法有哪些

白盒测试设计方法:

  1. 静态测试
    ① 桌面检查:交叉检查(A写的代码给B看,B的给A看)
    ② 代码审查:组织会议,代码作者讲解代码,其他人员检查
    ③ 代码走查:组织会议,其他人在会议中输入数据,查看代码的走向
    ④ 代码扫描工具 (自动化)
  2. 动态测试
    ① 逻辑覆盖法:包括语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖
    ② 基本路径测试法

3.使用6种逻辑覆盖法来设计白盒测试用例

逻辑覆盖法:是通过对程序逻辑结构的遍历实现程序的覆盖。
覆盖率:是用来度量测试完整性的一个手段。
覆盖率 = 至少被执行一次的item数 / item的总数
item:语句、判定、条件、判定条件、条件组合、路径

通过下面的案例说明六种逻辑覆盖法:一段程序和它的流程图
白盒测试的用例设计方法_第1张图片

3.1. 语句覆盖

语句覆盖:设计测试用例,使得程序中每条语句至少被执行一次。
① 语句覆盖率 = 至少被执行一次的语句数量 / 可执行的语句总数。例如案例代码中共有四条可执行语句,如果设计的测试用例执行了3条,语句覆盖率为3/4=75%。
② 语句覆盖法的局限性:在六种逻辑覆盖标准中,语句覆盖标准是最弱的。语句覆盖不能准确的判断运算中的逻辑关系错误。
白盒测试的用例设计方法_第2张图片

3.2. 判定覆盖

判定覆盖:也叫分支覆盖。设计测试用例,使得程序中的每个判断的 “真” 和 “假” 都至少被执行一次。即:程序中的每个分支至少执行一次。
① 判定覆盖率 = 每个判定的真假值至少出现一次 / 判定结果的总数。例如:案例代码中有判定2个,判定结果4个,如果设计的测试用例执行了3个分支,分支覆盖率为3/4=75%。
② 只要满足了判定覆盖标准,就一定满足语句覆盖标准。
白盒测试的用例设计方法_第3张图片
③ 判定覆盖法的局限性:判定覆盖会忽略条件中取或(or)的情况。
白盒测试的用例设计方法_第4张图片

3.3. 条件覆盖

条件覆盖:设计测试用例,使得判定中的每个条件至少有一次取真值,有一次取假值。
① 条件覆盖率 = 每个条件的真假值至少出现一次 / 条件结果的总数。比如案例代码中有判定2个,条件3个,条件结果6个,如果设计的测试用例执行了5个条件结果,条件覆盖率为5/6=83%。
白盒测试的用例设计方法_第5张图片
②条件覆盖法的局限性: 条件覆盖比判定覆盖,增加了对判定中所有条件的测试。但100%条件覆盖并不能保证100%判定覆盖。
白盒测试的用例设计方法_第6张图片

3.4. 判定条件覆盖法

判定条件覆盖法:同时满足100%判定覆盖和100%条件覆盖的标准。也即,设计测试用例,使得被测程序中的每个判断本身的判定结果(真假)至少满足一次,同时,每个逻辑条件的可能值(真假)也至少被满足一次。
① 判定条件覆盖率 = 每个判定真假值和条件真假值至少出现一次 / (判定结果的总数 + 条件结果的总数)
例如:案例代码中有判定2个,条件3个,判定结果4个,条件结果6个,如果设计的测试用例执行了3个判定结果,5个条件结果,判定条件覆盖率为(3+ 5) / (4+6)=80%。
白盒测试的用例设计方法_第7张图片
②判定条件覆盖法的局限性:满足判定条件覆盖标准一定能够满足条件覆盖、判定覆盖和语句覆盖。
白盒测试的用例设计方法_第8张图片

3.5. 条件组合覆盖

条件组合覆盖:设计测试用例,使得被测试程序中的每个判定中条件结果的所有可能组合至少执行一次。
① 条件组合覆盖率 = 条件组合至少出现一次的数量 / 条件组合的总数
例如:案例代码中有判定2个,条件3个(判定1有2个条件,判定2有1个条件),判定1的条件组合为4个,判定2的条件组合为2个,如果设计的测试用例执行了5个条件组合,条件组合覆盖率为5 / (4+2)=83%。
白盒测试的用例设计方法_第9张图片
② 条件组合覆盖法的局限性:条件组合覆盖能满足判定覆盖、条件覆盖、判定条件覆盖、语句覆盖。条件组合覆盖不能保证所有路径被执行,例如下图的例子中虽然为100%的条件组合覆盖,但是并没有包含a-b-d-f这条路径。
白盒测试的用例设计方法_第10张图片

3.6. 路径覆盖法

路径覆盖法:设计测试用例,覆盖程序中所有可能的路径。
①路径覆盖率 = 至少被执行一次的路径数/ 总的路径数。例如:案例代码中共有4条路径,如果设计的测试用例执行了3条路径,那么路径覆盖率为3/4=75%。
白盒测试的用例设计方法_第11张图片
②路径覆盖可以对程序进行彻底的测试,比前面五种覆盖都广。满足路径覆盖一定满足判定覆盖,但不一定满足条件覆盖、判定条件覆盖、条件组合覆盖。
白盒测试的用例设计方法_第12张图片

4. 使用基本路径法来设计白盒测试用例

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

  1. 基本路径测试法步骤:根据代码画出程序控制流程图–计算程序的环路复杂度–导出可执行路径–设计测试用例
    (1)、根据代码画出程序控制流程图(其中的序号代表代码前面的行数)
    白盒测试的用例设计方法_第13张图片
    程序流程图转为控制流程图:将程序流程图中所有的判断节点和语句执行节点全部都用小圆圈来代表,其他的都不变
    白盒测试的用例设计方法_第14张图片
    (2)、计算程序的环路复杂度
    计算方法有三种:
  • 控制流程图中区域的数量对应于环型的复杂度。图中共有4个区域。
  • 给定流程图G的圈复杂度V(G),定义为V(G)=E-N+2,其中E是流程图中边(一个箭头代表一个边)的数量,N是流图中节点的数量。右图:V(G)=10-8+2=4。
  • 给定流程图G的圈复杂度V(G),定义为V(G)=P+1,P是流图G中判定节点的数量。右图:V(G)=3+1=4。

白盒测试的用例设计方法_第15张图片
(3)根据环路复杂度导出可执行路径
将所有的路径都走到,没有遗漏的节点即可
白盒测试的用例设计方法_第16张图片
(4)、设计测试用例
白盒测试的用例设计方法_第17张图片

你可能感兴趣的:(笔记)