等价类 边界值 因果图PPT课件.ppt_第1页
等价类 边界值 因果图PPT课件.ppt_第2页
等价类 边界值 因果图PPT课件.ppt_第3页
等价类 边界值 因果图PPT课件.ppt_第4页
等价类 边界值 因果图PPT课件.ppt_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

主要的黑盒测试用例设计方法 等价类划分边界值分析因果图判定表 1 5 3等价类划分 测试所有可能的输入是不可能的 也是不必要的 等价划分 某个输入域的子集合 在该子集合中 各个输入数据对于揭露程序中的错误都是等效的 基本思想 把所有可能的输入 即程序的输入域划分成若干部分 然后从每一部分中选取少数有代表性的数据做为测试用例 2 使用这一方法设计测试用例要经历划分等价类 列出等价类表 和选取测试用例两步 划分等价类等价类是指某个输入域的子集合 在该子集合中 各个输入数据对于揭露程序中的错误都是等效的 测试某等价类的代表值就等价于对这一类其它值的测试 3 等价类的划分有两种不同的情况 有效等价类 是指对于程序的规格说明来说 是合理的 有意义的输入数据构成的集合 无效等价类 是指对于程序的规格说明来说 是不合理的 无意义的输入数据构成的集合 在设计测试用例时 要同时考虑有效等价类和无效等价类的设计 4 划分等价类等价类的原则 1 如果输入条件规定了取值范围 或值的个数 则可以确立一个有效等价类和两个无效等价类 5 例 在程序的规格说明中 对输入条件有一句话 项数可以从1到999 则有效等价类是 1 项数 999 两个无效等价类是 项数 1 和 项数 999 在数轴上表示成 6 例 程序规格说明中提到 学生允许选修2至4门课 则有效等价类是 选课2至4门 两个无效等价类是 只选一门或未选课 和 选课超过4门 7 2 如果输入条件规定了输入值的集合 或者是规定了 必须如何 的条件 这时可确立一个有效等价类和一个无效等价类 8 例 在Pascal语言中对变量标识符规定为 以字母打头的 串 那么所有以字母打头的构成有效等价类 而不在此集合内 不以字母打头 的归于无效等价类 9 例 某程序的规格说明中提到的输入条件包括 统计全国各省 市 自治区的人口 则有效等价类是 国内省 市 自治区 无效等价类是 非国内省 市 自治区 10 3 如果输入条件是一个布尔量 则可以确定一个有效等价类和一个无效等价类 4 如果规定了输入数据的一组值 而且程序要对每个输入值分别进行处理 这时可为每一个输入值确立一个有效等价类 此外针对这组值确立一个无效等价类 它是所有不允许的输入值的集合 11 例5 在教师上岗方案中规定对教授 副教授 讲师和助教分别计算分数 做相应的处理 因此可以确定4个有效等价类为教授 副教授 讲师和助教 一个无效等价类 它是所有不符合以上身分的人员的输入值的集合 12 5 如果规定了输入数据必须遵守的规则 则可以确立一个有效等价类 符合规则 和若干个无效等价类 从不同角度违反规则 13 例6 Pascal语言规定 一个语句必须以分号 结束 这时 可以确定一个有效等价类 以 结束 若干个无效等价类 以 结束 以 结束 以 结束 以LF结束 等 14 确立测试用例在确立了等价类之后 建立等价类表 列出所有划分出的等价类 15 再从划分出的等价类中按以下原则选择测试用例 1 为每一个等价类规定一个唯一编号 2 设计一个新的测试用例 使其尽可能多地覆盖尚未被覆盖的有效等价类 重复这一步 直到所有的有效等价类都被覆盖为止 3 设计一个新的测试用例 使其仅覆盖一个尚未被覆盖的无效等价类 重复这一步 直到所有的无效等价类都被覆盖为止 16 用等价类划分法设计测试用例的实例例 在某一PASCAL语言版本中规定 标识符是由字母开头 后跟字母或数字的任意组合构成 有效字符数为8个 最大字符数为80个 并且规定 标识符必须先说明 再使用 在同一说明语句中 标识符至少必须有一个 17 用等价类划分的方法 建立输入等价类表 18 举例 根据下面给出的规格说明 利用等价类划分的方法 给出足够的测试用例 一个程序读入3个整数 把这三个数值看作一个三角形的3条边的长度值 这个程序要打印出信息 说明这个三角形是不等边的 是等腰的 还是等边的 19 分析题目中给出和隐含的对输入条件的要求 1 整数 2 三个数 3 非零数 4 正数 5 两边之和大于第三边 6 等腰 7 等边如果a b c满足条件 1 4 则输出下列四种情况之一 1 如果不满足条件 5 则程序输出为 非三角形 2 如果三条边相等即满足条件 7 则程序输出为 等边三角形 3 如果只有两条边相等 即满足条件 6 则程序输出为 等腰三角形 4 如果三条边都不相等 则程序输出为 一般三角形 20 21 22 举例 我们可以设三角形的3条边分别为A B C 如果它们能够构成三角形的3条边 必须满足 A 0 B 0 C 0 且A B C B C A A C B 如果是等腰的 还要判断A B 或B C 或A C 如果是等边的 则需判断是否A B 且B C 且A C 23 举例 24 举例 25 某城市电话号码由三部分组成 它们的名称和内容分别是 地区码 空白或三位数字 前缀 非 0 或 1 的三位数字 后缀 4位数字 假定被测程序能接受一切符合上述规定的电话号码 拒绝所有不符合规定的电话号码 根据该程序的规格说明 作等价类的划分 并设计测试方案 26 划分等价类 27 设计测试用例 28 29 等价类方法小结 等价类技术提供了一个选择哪些数值 舍弃哪些数值的测试用例设计方法 把相似输入 输出 操作分成组 这些组就是等价区间 步骤 在进行等价类划分之前 首先从程序的功能说明中找出各个输入条件 然后为每个输入条件划分两个或更多个等价类 确定了等价类划分后 给出相应的等价类表 再根据等价类给出测试用例 30 2 划分等价类要注意的问题 考虑有效等价类 同时也要考虑无效的等价类 有效等价类生成的测试用例 可以检验程序是否实现了预先规定的功能和性能 无效等价类生成的测试用例 可以检查程序中功能和性能的实现是否不符合规格说明要求 仔细划分 审核划分等价类的目标就是把所有可能的测试用例组合数量缩减到仍然足以测试软件的范围 如果为减少测试用例的数量过于粗略地进行等价分配 就会增加漏掉软件缺陷的风险 31 黑盒测试方法 常用的黑盒测试方法有 等价类划分边界值分析法因果图法决策表法 31 5 4数据测试 边界值分析 等价划分虽然优于随机选取用例 但不足之处在于忽略了某些特定类型的高效测试用例大量的软件测试实践表明 故障往往出现在定义域或值域的边界上 而不是在其内部 经验证明 考虑了边界条件的测试用例与其他测试用例相比 具有更高的测试回报率边界条件 输入和输出等价类中那些恰好处于边界 或超过边界 或在边界以下的状态 32 边界值分析与等价划分的不同 边界值分析需要选取一个或多个元素 而不是选任一个代表元素 以便对等价类的每个边界都经过一次测试 边界值分析不仅关注输入条件 还要考虑输出空间产生的测试情况 33 比如 在做三角形计算时 要输入三角形的三个边长 A B和C 我们应注意到这三个数值应当满足A 0 B 0 C 0 A B C A C B B C A 才能构成三角形 但如果把六个不等式中的任何一个大于号 错写成大于等于号 那就不能构成三角形 问题恰出现在容易被疏忽的边界附近 34 这里所说的边界是指 相对于输入等价类和输出等价类而言 稍高于其边界值及稍低于其边界值的一些特定情况 使用边界值分析方法设计测试用例 首先应确定边界情况 应当选取正好等于 刚刚大于 或刚刚小于边界的值做为测试数据 而不是选取等价类中的典型值或任意值做为测试数据 实践证明为检验边界附近的处理专门设计测试用例 常常取得良好的测试效果 35 1 数据测试 数据测试是检查用户输入的信息 返回的结果以及中间计算结果是否正确 注意 数据指广义的所有输入 输出 数据的例子 类型上有数值 文字 图片 文件等 表现形式有键盘输入 鼠标点击 磁盘文件 打印输出 36 37 边界条件 一些可能与边界有关的数据类型有 数值 速度 字符 地址 位置 尺寸 数量等 同时 考虑这些数据类型的下述特征 第一个 最后一个最小值 最大值开始 完成超过 在内空 满最短 最长最慢 最快最早 最迟最大 最小最高 最低相邻 最远 37 边界值分析 边界值分析也是一种黑盒测试方法其本质就是在边界及其附近选取测试用例是一种和等价类划分相关的技术它具有很强的发现程序错误的能力错误隐藏在角落 问题聚焦在边界上 38 如何找到边界值 很简单 基本思想是选取正好等于 刚刚大于或刚刚小于等价类边界的值作为测试数据 例如 输入范围为0 100 下限则选择 1 0 1为测试值很难 有时边界难以确定 模糊的边界 如页面翻页的 下一页 隐含的边界 没明确指出约束 但是实际有限制 内在的边界 系统内部的限制 如数据类型本身的的取值范围限制 39 报表日期 边界值分析法测试用例 40 41 2 边界值分析测试 有效测试用例 假设有两个变量x1和x2的程序P 设输入变量x1和x2在下列范围内取值 a x1 b c x2 d边界值分析设计测试用例原则 利用输入变量的最小值 min 稍大于最小值 min 域内任意值 nom 稍小于最大值 max 最大值 max 来设计测试用例 41 42 边界值分析法的原理 可得到测试用例共9组 对于n个变量的输入 边界值分析测试会产生4n 1个测试用例 42 43 3 健壮性边界值测试 补充无效测试用例 健壮性测试是边界值分析的一种扩展 变量比普通边界值考虑略超过最大值 max 和略小于最小值 min 的取值 对于一个n变量的程序 健壮性边界值测试将产生6n 1个测试用例 43 44 4 基于边界值分析选择测试用例的原则 1 如果输入条件规定了取值范围 则选取正好达到这个范围的边界值 以及刚刚超出这个范围的边界值作为测试输入数据 例 0 x 1 则测试用例应包括 0 01 0 0 01 0 99 1 1 01等值 又 如果程序的规格说明中规定 重量在10公斤至50公斤范围内的邮件 其邮费计算公式为 作为测试用例 我们应取10及50 还应取10 01 49 99 9 99及50 01等 44 45 基于边界值分析选择测试用例的原则 2 如果输入条件规定了值的个数 则用最大个数 最小个数及稍小于最小 稍大于最小 稍小于最大 稍大于最大个数作为测试用例 例 某输入文件可包含1至255个记录 则测试用例可取1和255 还应取0 2 254及256等 45 46 基于边界值分析选择测试用例的原则 3 将规则 1 和 2 应用于输出条件 即设计测试用例使输出值达到边界值及其左右的值 例如 某程序的规格说明要求计算出 每月保险金扣除额为0至1165 25元 其测试用例可取0 00及1165 25 还可取0 01 0 01 1165 24 1165 26等 46 47 基于边界值分析选择测试用例的原则 4 如果程序的规格说明给出的输入域或输出域是有序集合 则应选取集合的第一个元素和最后一个元素作为测试用例 5 如果程序中使用了一个内部数据结构 则应当选择这个内部数据结构的边界上的值作为测试用例 6 分析规格说明 找出其它可能的边界条件 47 48 基于边界值分析选择测试用例的原则 7 边界值分析可使用与等价类划分法相同的划分只是边界值分析假定错误更多地存在于划分的边界上 因此在等价类的边界上以及两侧的情况设计测试用例 48 2020 1 8 49 50 例如 测试计算平方根的函数输入 实数输出 实数规格说明 当输入一个0或比0大的数的时候 返回其正平方根 当输入一个小于0的数时 显示错误信息 非法输入值小于0 并返回0 50 51 边界值分析举例 2 加法器边界值测试用例设计加法器程序计算两个1 100之间整数的和 设计思路 1 先进行等价类划分 2 再用边界值分析补充 51 52 加法器边界值测试用例设计 1 等价类划分考虑输入数据的取值范围和类型划分等价类 编号 输入条件 所属类别 编号 输入条件 所属类别 1 1 100之间整数 有效等价类 5 非数值 字母 无效等价类 2 1整数 无效等价类 6 非数值 特殊字符 无效等价类 3 100整数 无效等价类 7 非数值 空格 无效等价类 4 小数 无效等价类 8 非数值 空白 无效等价类 52 53 加法器边界值测试用例设计 2 边界值分析在等价类划分基础上进行边界值分析测试 53 54 提示 请输入1 100间的整数 50 0 Test9 提示 请输入1 100间的整数 0 50 Test10 提示 请输入1 100间的整数 50 101 Test11 提示 请输入1 100间的整数 101 50 Test12 提示 请输入1 100间的整数 50 0 2 Test13 测试用例 输入数据 预期输出 加数1 加数2 和 Test14 50 0 2 提示 请输入1 100间的整数 Test15 A 50 提示 请输入1 100间的整数 Test16 50 A 提示 请输入1 100间的整数 Test17 50 提示 请输入1 100间的整数 Test18 50 提示 请输入1 100间的整数 Test19 空格 50 提示 请输入1 100间的整数 Test20 50 空格 提示 请输入1 100间的整数 Test21 50 提示 请输入1 100间的整数 Test22 50 提示 请输入1 100间的整数 54 55 黑盒测试方法 常用的黑盒测试方法有 等价类划分边界值分析法因果图法决策表法 55 56 5因果图 等价类划分法和边界值分析方法都是着重考虑输入条件 但如果输入之间有关系 例如约束关系 组合关系 用等价类划分和边界值分析是很难描述 测试效果难以保障 因果图正是在此背景下提出的 56 1 因果图 定义 因果图是一种利用图解法分析输入的各种组合情况 从而设计测试用例的方法 它适合于检查程序输入条件的各种组合情况 从用自然语言书写的程序规格说明的描述中找到因 输入条件 和果 输出或程序状态的改变 通过因果图转化为判别表 57 逻辑关系 恒等 如果原因为真 那么结果必定为真 只有2个原因都为真 那么结果为真 58 或 2个原因中有一个为真时 结果就为真 非 只有原因为假 结果才为真 59 表示约束条件的符号 为了表示原因与原因之间 结果与结果之间可能存在的约束条件 在因果图中可以附加一些表示约束条件的符号 60 原因之间约束 排他性约束 各个原因之间不能同时为真 但可以同时为假 举个例子 小明同学不可能同时属于A班和B班 但可能既不是A班的 也不是B班的 而是C班的 61 包含性约束 各个原因中总有一个为真 即可以同时为真 但不可以同时为假 举个例子 支付宝买家付款时 有个输入条件 既原因 是余额支付 网银支付 买家可以选择单独余额支付或者单独网银支付 也可以同时选择余额支付和网银支付2种方式 但是不可以选择不支付 62 必要性约束 当原因a为真时 原因b必须同时为真 但是原因b为真时 原因a既可以为真 也可以为假 举数字证书的例子 现有的业务规则下 如果申请了数字证书 原因a 那么该用户必然通过了支付宝认证 原因b 反之 如果用户通过了支付宝认证 那么不一定申请了数字证书 a 63 唯一性约束 有且只有原因a和原因b中的一个为真 非此即彼 不存在第三种情况 举例来说 人的性别不是男 就是女 不会存在既不是男也不是女的人 64 掩码标记 结果约束 如果结果b为真 那么结果a一定为假 如果结果b为假 则结果a的状态不定 还拿支付宝来举例子 先给出两个结果 安全控件运行正常 a 无法输入登陆密码 b 如果无法输入登陆密码 那么可以判断是安全控件没有正常运行 反过来 如果可以输入登陆密码 则不能确定安全控件一定工作正常 65 用因果图生成测试用例的基本步骤分析软件规格说明描述中 哪些是原因 即输入条件或输入条件的等价类 哪些是结果 即输出条件 并给每个原因和结果赋予一个标识分析软件规格说明描述中的语义 找出原因与结果之间 原因与原因之间对应的是什么关系 根据这些关系 画出因果图 66 3 由于语法或环境限制 有些原因与原因之间 原因与结果之间的组合情况不可能出现 标明约束或限制条件 找出原因和原因 结果与结果之间的约束限制 4 把因果图转换成判定表 5 把判定表的每一列拿出来作为依据 设计测试用例 67 在因果图中出现的基本符号通常在因果图中用Ci表示原因 用Ei表示结果 各结点表示状态 可取值 0 或 1 0 表示某状态不出现 1 表示某状态出现 主要的原因和结果之间的逻辑关系有 恒等 与 或 非 68 例 某个软件的规格说明中包含这样的要求 第一列字符必须是A或B 第二列字符必须是一个数字 在此情况下进行文件的修改 但如果第一列字符不正确 则给出信息L 如果第二列字符不是数字 则给出信息M 69 原因 1 第一列字符是A 2 第一列字符是B 3 第二列字符是数字 结果 21 修改文件 22 给出信息L 23 给出信息M 70 因果图 71 判定表 72 FORTRAN语言的语法规定是非常严格的 在一个程序行中 第1 5列是标号区 第6列是续行区 如果前6列是空白 则执行动作A 如果第1 5列有标号且是正确的标号 则执行动作B后再执行动作A 反之 若是错误的标号 则执行动作C 如果第6列不是空白而是字母C 则执行动作D后再执行A 反之 执行动作C 原因 1 前6列是空白2 第1 5列是正确的标号3 第6列是字母C结果 动作A 正确执行E1 执行动作A动作B 处理标号E2 执行动作B后再执行动作A动作C 错误处理E3 执行动作C动作D 处理续行E4 执行动作D后再执行A 73 O 因果图 E1 执行动作AE2 执行动作B后再执行动作AE3 执行动作CE4 执行动作D后再执行A 1 前6列是空白2 第1 5列是正确的标号3 第6列是字母C 74 判定表 75 判定表 76 77 5 因果图举例 例1 某软件规格说明书包含这样的要求 输入的第一个字符必须是 或 第二个字符必须是一个数字 此情况下进行记录的修改如果第一个字符不是 或 则给出信息N如果第二个字符不是数字 则给出信息M 77 78 1 根据题意 分析原因和结果如下 原因 第一个字符是 第一个字符是 第二个字符是一个数字结果 进行记录更新 产生信息N 产生信息M 78 79 2 确立简单的因果图如下 增加11为中间节点 79 80 3 在因果图上加约束条件 考虑到原因1和原因2不可能同时为1 因此在因果图上施加E约束 80 81 4 根据因果图建立判定表 无 无 3 A 6 B A1 GT 81 82 5 设计测试用例 82 83 黑盒测试方法 常用的黑盒测试方法有 等价类划分边界值分析法因果图法决策表法 83 5 6决策表驱动分析 决策表又称为判定表 并非因果图的辅助决策表是把作为条件的所有输入的各种组合值以及对应输出值都罗列出来而形成的表格它能够将复杂的问题按照各种可能的情况全部列举出来 简明并避免遗漏 因此能够设计出完整的测试用例集合 在所有的黑盒测试方法中 基于决策表的测试是最严格 最具有逻辑性的测试方法 84 85 决策表驱动分析 一张判

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论