单元测试测试例设计和覆盖率
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面例子, 正好所有的可执行语句都在路径L1上, 所以选择路径L1来设计测试用例,就可覆盖所有的可 执行语句.
测试用例的设计格式如下 [输入的(A,B,x), 输出的(A,B,x)]
可设计出满足语句覆盖的测试用例是: [(2,0,4), (2,0,3)], 覆盖ace [L1]
从每个执行语句都得到执行这一点来看, 语句覆盖的方法似乎能够比较全面地经验每个可执 行语句. 但实际上并非如此.
重点: 必须画出程序流程和控制流程图. 列出尽可能多的路径.
黑盒测试中的: 等价类划分方法, 边界值分析方法, 错误推测方法. 如果有可能, 建议应用因 果图和功能图分析方法.
重点: 细化规格说明. 输入-输出, 条件-结果.
测试用例的设计方法和操作过程可参考培训资料或其它资料.
重点: 测试工具. 开发, 选择. 测试工具主要包括路径制导, 符号执行.
可维护性: 模块需要被修改时, 复杂模块要比简单模块难以维护. 同样测试例(脚本)的设计也要按上面的原则. 每个测试描述只测试 单一功能. 这使测试很集 中,只有两种输出: 测试失败或成功.
3. 单元测试中的白盒测试设计案例分析
白盒测试主要是检查程序的内部结构, 逻辑, 循环和路径. 以前讲过白盒测试的常用测试用例 设计方法有: 逻辑覆盖和基本路径测试. 根据覆盖测试的目标不同, 逻辑覆盖又可分为: 语句覆盖, 判 定覆盖, 判定-条件覆盖, 条件组合覆盖及路径覆盖.
制定测试计划: 测试计划由单元开发人员按具体情况设计和制定. 测试计划文档格式可参考 北研”单元测试计划模板”, 建议按修改后的模板. (测试计划文档中的项目见本节后 .
重点: 测试用例设计: 必须按有关单元测试用例设计方法进行设计. 必须实施的测试用例设 计方法:
白盒测试中的: 逻辑覆盖测试, 包括语句覆盖, 判断覆盖, 判定-条件覆盖, 条件组合覆盖, 路 径覆盖. 至少要进行路径覆盖测试用例设计.
黑盒测试方法来设计测试用例 也可以分为控制流和数据流测试 从覆盖的角度, 测试应该覆盖: 功能覆盖 输 入域覆 盖 输 出域覆 盖 函数交互覆盖 代码执行覆盖 按针对性 单元测试可有以下特定的测试 声明测试 检查模块中的所有变量是否被声明 经验表明 大量重要的错误都
01-4-11
测试平台组 版权所有 侵权必究
取一个无效等价类.按边界值方法, 两端边界点个取一个点.
0
ห้องสมุดไป่ตู้100
可设计五个测试用例: -1, 0, 50, 100, 101
01-4-11
输出变量的值域测试: 发现漏掉的程序分支.
测试平台组 版权所有 侵权必究
第 5 页 共 12 页01-4-11
北研测试分部新员工培训教材 输 出域 中的 拐点 :非线性等
第 3 页 共 12 页01-4-11
北研测试分部新员工培训教材
测试结果分析并提交报告
由测试人员和开发人员共同对测试结果进行分析,归类, 给出错误原因和解决方法. 对结果 进行报告和归档.
注: 测试文档应包含以下内容 单元的名称(包括ID)和描述 单元(模块)的目的和功 能的简单描述; 单元与其他单元的依赖关系; 测试用例(包括设计时所依据的测试用例设计方 法, 测试例, 预期结果); 测试环境,过程和步骤的描述; 实际测试结果; 错误跟踪分析; 测试 人员和完成时间; 测试评审(包括测试计划文档评审和测试结果评价); 其他情况备注.
3.1.一个程序模块的例子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 第 6 页 共 3.2.语句覆盖 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 第 7 页 共 3.3.判定覆盖 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 第 7 页 共 3.4.条件覆盖 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 第 8 页 共 3.5.判定-条件覆盖 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 第 8 页 共 3.6.条件组合覆盖 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 第 9 页 共 3.7.路径覆盖 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 第 10 页 共 3.8.测试用例的组合和优化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 第 10 页 共
01-4-11
测试平台组 版权所有 侵权必究
第 2 页 共 12 页01-4-11
北研测试分部新员工培训教材
题目 单元测试测试例设计 关键词 单元测试 原则和操作过程 测试用例设计 案例分析 逻辑覆盖 等价类划分 边界
值分析 错误推测法 因果图 摘 要 首先提出了单元测试应该遵循的原则和操作步骤过程(初步方案). 然后通过三个例子分别
数组,向量型变量: 其测试较复杂. 数组的维数大小和元素相结合. 数组元素值组成一个集合: 按单变量考虑以及特殊取值. 数组个元素之间的关系: 特殊关系,如单调上升, Fibonacci数组.
多维数组: 各种组合, “组合爆炸”. 模块功能测试: 结构化程序的测试原则是每个测试模块由单个功能组成. 原因:
不足:假如该程序段中的两个逻辑运算有问题, 例如, 第一个判断中的逻辑运算符” ”错写成了 ” ”, 或者第二个判断中的逻辑运算符” ”错写成了” ”, 利用上面的测试用例, 仍然可覆盖所有 4个可执行语句. 这说明虽然做到了语句覆盖测试, 但可能发现不了判断中逻辑运算中出现的错误.
测试计划评审
由测试人员进行, 开发人员配合, 对测试计划进行评审和修改,并最后双方达成最终测试计 划.
重点: 评判测试用例设计的方法性, 合理性, 全面性和最优性等.
测试计划执行
由测试操作人员按制定的测试计划流程化的进行. 有问题及时反馈.
重点: 必须保证按测试计划要求实施.
01-4-11
测试平台组 版权所有 侵权必究
2. 单元测试的一些考虑和定义
单元: 按结构化程序设计原则, 单元定义为完成一个单一功能的模块或函数. 建议我们按该定 义确定单元测试中单元的模块大小
广义的测试=确认+验证+测试(V,V&T). 测试=检测+评价+测验 单元测试的四个过程: 检查编码是否遵循软件编程规范和标准; 自动或手工分析程序; 设计测试用例并运行测试例. 错误跟踪分析 单元测试应该包括结构(逻辑覆盖)测试和功能测试两部分内容. 可以分别基于白盒测试和
对逻辑覆盖, 等价类划分, 边界值分析, 错误推测和因果图等测试用例设计方法进行了应 用. 给出了这些方法在应用中的操作步骤和应该考虑的问题.
1. 单元测试实施时必须遵循的原则和步骤
总则: 精心制定测试计划, 严格评审测试计划, 严格执行测试计划, 系统分析测试结果并提交报 告, 排除测试的随意性. 是测试方法化, 流程化.
差 重点检查小于 等于和大于边界条件等情况 接口测试 检查模块的数据流 输入 输出 是否正确 检查输入的参数和声
明的自变量的个数 数据类型和输入顺序是否一致 检查全局变量 是否被正确的定义和使用等 确认测试: 是否接受有效输入数据 操作 拒绝无效数据和 操作 事务测试: 输入 输出, 错误处理. 测试用例设计时, 对输入变量的定义域进行划分: 数字型简单变量 数 组或向量型变量 多 维数 组 数字型简单变量: 离散点组成的定义域: 对每个独立离散点都要测试. 一组整,实数区间组成的定义域: 按等价类划分方法, 区间取一个有效等价类, 两端个
可重用性: 模块不应该设计成包括多个功能. 这样做主要是模块化的要求. 如果模块包含 多个功能它就不大可能被重复使用,因为不不可能有那么多同样的情况来使用这些功能. 如果一 个模块集中为一个功能它就有可能被许多模块调用.
复杂性: 模块不包含太多功能的另一个原因是复杂性. 多个功能的模块容易变得太复杂. 复杂模块的代码容易混乱. 大量的这样的模块有多个入口和多个出口. 另外, 多个标志将被使 用.这些标志指出将使用那个功能, 在复杂的代码中很容易出错.
01-4-11
测试平台组 版权所有 侵权必究
第 6 页 共 12 页01-4-11
北研测试分部新员工培训教材
3.1.一 个 程 序 模 块 的 例 子
a
b
F (A>1)∧(B=0)
T
∧ =and ∨ =or c
X=X/A
d
F (A>2)∨(X>1)
T
e X=X+1
白盒测试的测试用例设计例子
图3-1 一个程序模块的例图 从上图可知该程序模块有4条不同的路径. 4 个可执行语句. 这4 条路径可分别表示为: L1(a c e), 简化为: ace L2(a b d), 简化为: abd L3(a b e), 简化为: abe L4(a c d), 简化为: acd
第 4 页 共 12 页01-4-11
北研测试分部新员工培训教材 是由于变量没有被声明或没有被正确声明而引起的 措施 严格按 照编程规范进行编码
路径测试 要求模块中所有可能的路径都要被执行一遍 属逻辑覆盖测试 循环测试 重点检查循环的条件-判断部分以及边界条件 边界测试 指程序内部边界测试 检查确定代码在任何边界情况下都不会出
4条路径应该满足的逻辑表达式分别为:
L1(a c e)= {(A>1) and (B=0)} and {(A=2) or (X/A>1)} L2(a b d)={(A > 1)and(B = 0)}and{(A = 2)or(X > 1)} L3(a b e)={(A > 1)and(B = 0)}and{(A = 2)or(X > 1)} L4(a c d)={(A > 1)and(B = 0)}and{(A = 2)or(X/A > 1)}
单元测试 测试用例设计和覆盖
华为北研测试分部
北研测试分部新员工培训教材
目录
1.单元测试实施时必须遵循的原则和步骤 . . . . . . . . . . . . . . . . . . . . . . . . 第 3 页 共 2.单元测试的一些考虑和定义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 第 4 页 共 3.单元测试中的白盒测试设计案例分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . 第 6 页 共
其中, 由符号“and”连结起来的断言是为了遍厉这条路径 , 各个输入变量应取值的范围 . 而由 ”or”划分了几组可选的取值. 根据上面导出的逻辑表达式, 就可用来设计测试用例.
3.2.语 句 覆 盖
01-4-11
测试平台组 版权所有 侵权必究
第 7 页 共 12 页01-4-11
北研测试分部新员工培训教材 语句覆盖就是设计若干个测试用例, 运行所测程序,使得每一可执行语句至少执行一次. 对上
测试用例的设计格式如下 [输入的(A,B,x), 输出的(A,B,x)]
可设计出满足语句覆盖的测试用例是: [(2,0,4), (2,0,3)], 覆盖ace [L1]
从每个执行语句都得到执行这一点来看, 语句覆盖的方法似乎能够比较全面地经验每个可执 行语句. 但实际上并非如此.
重点: 必须画出程序流程和控制流程图. 列出尽可能多的路径.
黑盒测试中的: 等价类划分方法, 边界值分析方法, 错误推测方法. 如果有可能, 建议应用因 果图和功能图分析方法.
重点: 细化规格说明. 输入-输出, 条件-结果.
测试用例的设计方法和操作过程可参考培训资料或其它资料.
重点: 测试工具. 开发, 选择. 测试工具主要包括路径制导, 符号执行.
可维护性: 模块需要被修改时, 复杂模块要比简单模块难以维护. 同样测试例(脚本)的设计也要按上面的原则. 每个测试描述只测试 单一功能. 这使测试很集 中,只有两种输出: 测试失败或成功.
3. 单元测试中的白盒测试设计案例分析
白盒测试主要是检查程序的内部结构, 逻辑, 循环和路径. 以前讲过白盒测试的常用测试用例 设计方法有: 逻辑覆盖和基本路径测试. 根据覆盖测试的目标不同, 逻辑覆盖又可分为: 语句覆盖, 判 定覆盖, 判定-条件覆盖, 条件组合覆盖及路径覆盖.
制定测试计划: 测试计划由单元开发人员按具体情况设计和制定. 测试计划文档格式可参考 北研”单元测试计划模板”, 建议按修改后的模板. (测试计划文档中的项目见本节后 .
重点: 测试用例设计: 必须按有关单元测试用例设计方法进行设计. 必须实施的测试用例设 计方法:
白盒测试中的: 逻辑覆盖测试, 包括语句覆盖, 判断覆盖, 判定-条件覆盖, 条件组合覆盖, 路 径覆盖. 至少要进行路径覆盖测试用例设计.
黑盒测试方法来设计测试用例 也可以分为控制流和数据流测试 从覆盖的角度, 测试应该覆盖: 功能覆盖 输 入域覆 盖 输 出域覆 盖 函数交互覆盖 代码执行覆盖 按针对性 单元测试可有以下特定的测试 声明测试 检查模块中的所有变量是否被声明 经验表明 大量重要的错误都
01-4-11
测试平台组 版权所有 侵权必究
取一个无效等价类.按边界值方法, 两端边界点个取一个点.
0
ห้องสมุดไป่ตู้100
可设计五个测试用例: -1, 0, 50, 100, 101
01-4-11
输出变量的值域测试: 发现漏掉的程序分支.
测试平台组 版权所有 侵权必究
第 5 页 共 12 页01-4-11
北研测试分部新员工培训教材 输 出域 中的 拐点 :非线性等
第 3 页 共 12 页01-4-11
北研测试分部新员工培训教材
测试结果分析并提交报告
由测试人员和开发人员共同对测试结果进行分析,归类, 给出错误原因和解决方法. 对结果 进行报告和归档.
注: 测试文档应包含以下内容 单元的名称(包括ID)和描述 单元(模块)的目的和功 能的简单描述; 单元与其他单元的依赖关系; 测试用例(包括设计时所依据的测试用例设计方 法, 测试例, 预期结果); 测试环境,过程和步骤的描述; 实际测试结果; 错误跟踪分析; 测试 人员和完成时间; 测试评审(包括测试计划文档评审和测试结果评价); 其他情况备注.
3.1.一个程序模块的例子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 第 6 页 共 3.2.语句覆盖 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 第 7 页 共 3.3.判定覆盖 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 第 7 页 共 3.4.条件覆盖 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 第 8 页 共 3.5.判定-条件覆盖 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 第 8 页 共 3.6.条件组合覆盖 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 第 9 页 共 3.7.路径覆盖 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 第 10 页 共 3.8.测试用例的组合和优化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 第 10 页 共
01-4-11
测试平台组 版权所有 侵权必究
第 2 页 共 12 页01-4-11
北研测试分部新员工培训教材
题目 单元测试测试例设计 关键词 单元测试 原则和操作过程 测试用例设计 案例分析 逻辑覆盖 等价类划分 边界
值分析 错误推测法 因果图 摘 要 首先提出了单元测试应该遵循的原则和操作步骤过程(初步方案). 然后通过三个例子分别
数组,向量型变量: 其测试较复杂. 数组的维数大小和元素相结合. 数组元素值组成一个集合: 按单变量考虑以及特殊取值. 数组个元素之间的关系: 特殊关系,如单调上升, Fibonacci数组.
多维数组: 各种组合, “组合爆炸”. 模块功能测试: 结构化程序的测试原则是每个测试模块由单个功能组成. 原因:
不足:假如该程序段中的两个逻辑运算有问题, 例如, 第一个判断中的逻辑运算符” ”错写成了 ” ”, 或者第二个判断中的逻辑运算符” ”错写成了” ”, 利用上面的测试用例, 仍然可覆盖所有 4个可执行语句. 这说明虽然做到了语句覆盖测试, 但可能发现不了判断中逻辑运算中出现的错误.
测试计划评审
由测试人员进行, 开发人员配合, 对测试计划进行评审和修改,并最后双方达成最终测试计 划.
重点: 评判测试用例设计的方法性, 合理性, 全面性和最优性等.
测试计划执行
由测试操作人员按制定的测试计划流程化的进行. 有问题及时反馈.
重点: 必须保证按测试计划要求实施.
01-4-11
测试平台组 版权所有 侵权必究
2. 单元测试的一些考虑和定义
单元: 按结构化程序设计原则, 单元定义为完成一个单一功能的模块或函数. 建议我们按该定 义确定单元测试中单元的模块大小
广义的测试=确认+验证+测试(V,V&T). 测试=检测+评价+测验 单元测试的四个过程: 检查编码是否遵循软件编程规范和标准; 自动或手工分析程序; 设计测试用例并运行测试例. 错误跟踪分析 单元测试应该包括结构(逻辑覆盖)测试和功能测试两部分内容. 可以分别基于白盒测试和
对逻辑覆盖, 等价类划分, 边界值分析, 错误推测和因果图等测试用例设计方法进行了应 用. 给出了这些方法在应用中的操作步骤和应该考虑的问题.
1. 单元测试实施时必须遵循的原则和步骤
总则: 精心制定测试计划, 严格评审测试计划, 严格执行测试计划, 系统分析测试结果并提交报 告, 排除测试的随意性. 是测试方法化, 流程化.
差 重点检查小于 等于和大于边界条件等情况 接口测试 检查模块的数据流 输入 输出 是否正确 检查输入的参数和声
明的自变量的个数 数据类型和输入顺序是否一致 检查全局变量 是否被正确的定义和使用等 确认测试: 是否接受有效输入数据 操作 拒绝无效数据和 操作 事务测试: 输入 输出, 错误处理. 测试用例设计时, 对输入变量的定义域进行划分: 数字型简单变量 数 组或向量型变量 多 维数 组 数字型简单变量: 离散点组成的定义域: 对每个独立离散点都要测试. 一组整,实数区间组成的定义域: 按等价类划分方法, 区间取一个有效等价类, 两端个
可重用性: 模块不应该设计成包括多个功能. 这样做主要是模块化的要求. 如果模块包含 多个功能它就不大可能被重复使用,因为不不可能有那么多同样的情况来使用这些功能. 如果一 个模块集中为一个功能它就有可能被许多模块调用.
复杂性: 模块不包含太多功能的另一个原因是复杂性. 多个功能的模块容易变得太复杂. 复杂模块的代码容易混乱. 大量的这样的模块有多个入口和多个出口. 另外, 多个标志将被使 用.这些标志指出将使用那个功能, 在复杂的代码中很容易出错.
01-4-11
测试平台组 版权所有 侵权必究
第 6 页 共 12 页01-4-11
北研测试分部新员工培训教材
3.1.一 个 程 序 模 块 的 例 子
a
b
F (A>1)∧(B=0)
T
∧ =and ∨ =or c
X=X/A
d
F (A>2)∨(X>1)
T
e X=X+1
白盒测试的测试用例设计例子
图3-1 一个程序模块的例图 从上图可知该程序模块有4条不同的路径. 4 个可执行语句. 这4 条路径可分别表示为: L1(a c e), 简化为: ace L2(a b d), 简化为: abd L3(a b e), 简化为: abe L4(a c d), 简化为: acd
第 4 页 共 12 页01-4-11
北研测试分部新员工培训教材 是由于变量没有被声明或没有被正确声明而引起的 措施 严格按 照编程规范进行编码
路径测试 要求模块中所有可能的路径都要被执行一遍 属逻辑覆盖测试 循环测试 重点检查循环的条件-判断部分以及边界条件 边界测试 指程序内部边界测试 检查确定代码在任何边界情况下都不会出
4条路径应该满足的逻辑表达式分别为:
L1(a c e)= {(A>1) and (B=0)} and {(A=2) or (X/A>1)} L2(a b d)={(A > 1)and(B = 0)}and{(A = 2)or(X > 1)} L3(a b e)={(A > 1)and(B = 0)}and{(A = 2)or(X > 1)} L4(a c d)={(A > 1)and(B = 0)}and{(A = 2)or(X/A > 1)}
单元测试 测试用例设计和覆盖
华为北研测试分部
北研测试分部新员工培训教材
目录
1.单元测试实施时必须遵循的原则和步骤 . . . . . . . . . . . . . . . . . . . . . . . . 第 3 页 共 2.单元测试的一些考虑和定义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 第 4 页 共 3.单元测试中的白盒测试设计案例分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . 第 6 页 共
其中, 由符号“and”连结起来的断言是为了遍厉这条路径 , 各个输入变量应取值的范围 . 而由 ”or”划分了几组可选的取值. 根据上面导出的逻辑表达式, 就可用来设计测试用例.
3.2.语 句 覆 盖
01-4-11
测试平台组 版权所有 侵权必究
第 7 页 共 12 页01-4-11
北研测试分部新员工培训教材 语句覆盖就是设计若干个测试用例, 运行所测程序,使得每一可执行语句至少执行一次. 对上