Skip to content

测试方法

  1. 静态
    • 桌面检查:多人交互式检查
    • 代码审查:1 To n 会议,作者讲解代码
    • 代码走查:n To 1 会议,与会人提出测试数据
    • 代码扫描工具
  2. 动态
    • 逻辑覆盖法
      • 语句覆盖
      • 判定覆盖
      • 条件覆盖
      • 判定条件覆盖
      • 条件组合覆盖
      • 路径覆盖
    • 基本路径测试法

逻辑覆盖法

定义

  1. 逻辑覆盖法:是通过对程序逻辑结构的遍历实现程序的覆盖。

  2. 覆盖率:是用来度量测试完整性的一种手段。

    c
    覆盖率 = 至少执行一次的 item 数 / item 总数 // item 表示语句、判定、条件……

测试步骤

  1. 根据程序代码制作流程图。
  2. 编写测试用例。

例题

  1. 需求:某程序有三个输入量,分别是 x、y、z。当 x 和 y 均为正数时执行语句块 1,否则执行语句块 2;当 z 为负数时执行语句块 3;最后执行语句块 4。

  2. 根据需求制作流程图,并对 6 中逻辑覆盖编写测试用例。

  3. 流程图

语句覆盖

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

  2. 语句覆盖率

    语句覆盖率 = 至少被执行一次的语句数量 / 可执行的语句总数
  3. 测试用例

判定覆盖

  1. 判定:关系表达式 or 逻辑表达式

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

  3. 判定覆盖率

    判定覆盖率 = 每个判定的真假值至少出现一次 / 判定结果的总数
  4. 根据流程图设计测试用例数据

条件覆盖

  1. 条件:关系表达式。

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

  3. 条件覆盖率

    条件覆盖率 = 每个条件真假值至少出现一次 / 条件结果总数
  4. 根据流程图设计测试用例数据

判定条件覆盖

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

  2. 判定条件覆盖率

    判定条件覆盖率 = 每个判定真假值和条件真假值至少出现一次 / (判定结果的总数+条件结果的总数)
  3. 根据流程图设计测试用例数据

条件组合覆盖

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

  2. 条件组合覆盖率

    条件组合覆盖率 = 条件组合至少出现一次的数量 / 条件组合的总数
  3. 测试用例

路径覆盖

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

  2. 路径覆盖率

    • P1-T,P2-T:1-2-4-6
    • P1-F,P2-F:1-3-5-6
    • P1-T,P2-F:1-2-5-6
    • P1-F,P2-T:1-3-4-6
    路径覆盖率 = 至少被执行过一次的路径数 / 总的路径数
  3. 测试用例

基本路径覆盖

定义

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

测试步骤

  1. 设计流程图和控制流图
  2. 计算程序的环路复杂度
  3. 导出可执行路径
  4. 设计测试用例

流程图

计算环路复杂度

  1. 流图中区域的数量对应于环路的复杂性。
  2. V(G) = E - N + 2, E 是流图中边的数量,N 是流图中节点的数量。
  3. V(G) = P + 1,P 是流程图中判定节点的数量。4

导出可执行路径

  1. 路径一:4-14
  2. 路径二:4-6-7-14
  3. 路径三:4-6-9-10-13-4-14
  4. 路径四:4-6-9-12-13-4-14

设计测试用例

用例编号输入数据覆盖路径预期结果
14-14程序结束
24-6-7-14程序结束
34-6-9-10-13-4-14程序结束
44-6-9-12-13-4-14程序结束

基于 MIT 许可发布