软件测试的方法PPT学习课件_第1页
软件测试的方法PPT学习课件_第2页
软件测试的方法PPT学习课件_第3页
软件测试的方法PPT学习课件_第4页
软件测试的方法PPT学习课件_第5页
已阅读5页,还剩139页未读 继续免费阅读

下载本文档

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

文档简介

第三章软件测试的方法 目录 1 基于直觉和经验的方法 方法论和具体方法 方法论 就是人们认识世界 改造世界的根本方法 它是人们用什么样的方式 方法来观察事物和处理问题 方法 方法就是为了达到某种目的所采取的路径 方式 手段和工具 方法体现方法论 软件测试方法体现了软件测试方法论软件测试的方法论来源于软件工程的方法论开发方法测试方法敏捷方法敏捷测试方法 方法论和具体方法 DomainsunderTest 不是严格意义的科学方法 没有办法的办法 随机性 不可靠 没有明确的科学方法 例如 产品易用性测试用户体验度的检验 经验 直觉 1 基于直觉和经验的方法 1 基于直觉和经验的方法 基于经验和直觉推测程序中所有可能存在的各种错误 从而有针对性地设计测试用例 3 1 1Ad hoc测试方法和ALAC测试3 1 2错误推测法 2 Ad hoc测试 随机测试 又叫即兴测试 非正式的测试执行 既没有正式的测试准备 规格设计和技术应用 也没有期望结果和必须遵循的测试执行指南 强调测试人员根据自己的经验 不受测试用例束缚 放开思路 灵活地进行各种测试 MonkeyTest 如果让一百万只猴子在一百万只键盘上敲一百万年 它们最终就可能写出莎士比亚话剧等巨著 探索性测试起源于adhoc随机测试 随机测试又不能是完全随机天马行当的 它也要有一些章法 2 Ad hoc测试 经验 软件开发的经验和知识发现和处理缺陷的经验和知识对被测试软件系统的经验和知识软件系统涉及的业务知识其他方面的经验 包括心理 社会学等 2 Ad hoc测试 看一个例子 OrderFlight 选择FlyFrom London FlyTo列表删去London清空FlyTo当前值 Oracle FlyFromFlyTo 问题 有没有可能预订一张FlyFrom FlyTo的机票 反馈 探索 学习 答案 订一张票 输入不合法时间 选择FlyFrom FlyTo输入不合法时间 预订 测试 3 ALAC测试 ALAC 是Act like a customer 象客户那样做 的简写 ALAC测试方法是一种基于客户使用产品的知识开发出来的测试方法 它的出发点是著名的Pareto80 20规律 4 错误推测法 错误推测法是测试者根据经验 知识和直觉来发现软件错误 来推测程序中可能存在的各种错误 从而有针对性的进行测试 思想 某处发现了错误 则可能隐藏更多的错误 特点 非系统化方法 只能作为辅助 测试者能快速切入 体会系统易用性不能保证覆盖率 带有主观性 只可意会 不可言传 4 错误推测法 怎么知道哪些错误可能出现 容易发生 知识 基于对被测对象的分析 了解 经验 曾经发生的错误或问题 别人发现以前自己发现的产品以前版本曾经发生的直觉 发散思维 各种可能性 测试灵感 2 基于输入域的测试方法 基于输入域的测试方法 输入 输出 系统 函数 模块 1 等价类划分方法 计算两个1 100之间整数的和 1 11 21 31 41 5 2 12 22 32 42 5 3 13 23 33 43 5 4 14 24 34 44 5 5 15 25 35 45 5 穷举测试 我们要想办法用最少的测试用例达到测试目标 1 等价类划分方法 等价类将程序可能的输入数据分成若干个子集 从每个子集选取代表性的数据作为测试用例 等价类是某个输入域的子集 在该子集中每个输入数据的作用是等效的分为有效等价类和无效等价类 设计测试用例 穷举测试 X 合理分类 等价类划分 1 等价类划分方法 等价类划分法是一种典型的 重要的黑盒测试方法 等价类是输入域的集合 在该集合中每个输入数据的作用都是等效的 我们合理的假定 测试等价类中的代表值就等于这一类中的其他值 测试用例由有效等价类和无效等价类的代表组成 从而保证测试用例具有完整性和代表性 有效等价类 无效等价类 等价类 1 等价类划分方法 有效等价类 指对于程序规格说明来说 是合理的 有意义的输入数据构成的集合 利用有效等价类可以检验程序是否实现了规格说明预先规定的功能和性能 有效等价类可以是一个 也可以是多个 无效等价类 和有效等价类相反 无效等价类是指对于软件规格说明而言 没有意义的 不合理的输入数据集合利用无效等价类 可以找出程序异常说明情况 检查程序的功能和性能的实现是否有不符合规格说明要求的地方 1 等价类划分方法 1 1 2 1 2 3 1 3 4 2 1 3 2 2 4 2 3 5 3 1 4 3 2 5 3 3 6 4 1 4 4 2 6 4 3 7 案例 计算1 100之间的两个自然数的和 1和100之间哪些是有效的哪些是无效的呢 1 等价类划分方法 等价类划分方法 01 按区间划分 02 按数值划分 按数值集合划分 按限制条件或规划划分 按处理方式划分 03 04 05 1 等价类划分方法 等价类划分法原则 举例 原则 在输入条件规定了取值范围或值的个数的情况下 则可以确立一个有效等价类和两个无效等价类 在规定的考试成绩在0 100之间 有效等价类是0 100 包括0和100 无效等价类是小于0 及大于100 1 等价类划分方法 等价类划分法原则 举例 原则 规定输入构成三角形的3条边 则有效等价类是 输入边数 3 无效等价类是 输入边数3 在输入条件规定了输入值的集合或者规定了 必须如何 的条件的情况下 可确定一个有效等价类和两个无效等价类 1 等价类划分方法 等价类划分法原则 举例 原则 程序输入条件为X TRUE 有效等价类为X TRUE 无效等价类为X FALSE 在输入条件是一个布尔量的情况下 可确定一个有效等价类和一个无效等价类 1 等价类划分方法 等价类划分法原则 举例 原则 规定输入的考试成绩为A B C D E则可以确认有五个有效等价类 成绩 A 成绩 B 成绩 C 成绩 D 成绩 E 和一个无效等价类 除这五个值之外的任何一个值 在规定了输入数据的一组值 假定n个 并且程序要对每一个输入值分别处理的情况下 可确立n个有效等价类和一个无效等价类 1 等价类划分方法 等价类划分法原则 举例 原则 在某语言中对变量标识符规定为 以字母开头 那么有效等价类是以 以字母开头 而无效等价类有 以数字开头 以标点符号开头 以空格开头 等 在规定了输入数据必须遵守的规则的情况下 可确立一个有效等价类 符合规则 和若干个无效等价类 从不同角度违反规则 1 等价类划分方法 等价类划分法原则 举例 原则 程序规定对实数做取整操作 取整后如果能被3整除 则做相应处理 那么对实数这个等价类就需要再细分为更小的等价类 在确知已划分的等价类中各元素在程序处理中的方式不同的情况下 则应再将该等价类进一步的划分为更小的等价类 1 等价类划分方法 注 弱 有单缺陷假设 一般 不考虑无效值强 是多缺陷假设 健壮 考虑了无效值 等价类测试用例分类 1 等价类划分方法 弱一般等价类测试单缺陷假设 不考虑无效区间通过使用一个测试用例中的每个等价类区间的一个变量实现 a X1 d 有效区间 a b b c c d e X2 g 有效区间 e f f g 1 等价类划分方法 强一般等价类测试多缺陷假设 不考虑无效区间 a X1 d 有效区间 a b b c c d e X2 g 有效区间 e f f g 1 等价类划分方法 弱健壮等价类测试单缺陷假设 要考虑无效区 a X1 d 有效区间 a b b c c d e X2 g 有效区间 e f f g 1 等价类划分方法 强健壮等价类测试多缺陷假设 要考虑无效区间 即一个全笛卡尔乘积 a X1 d 有效区间 a b b c c d e X2 g 有效区间 e f f g 1 等价类划分方法 案例 Date函数包含两个变量 选取year和month 要求输入变量year和month均为整数值 并且满足下列条件 1920 year 2012 1 month 12 列出等价类表并设计测试用例 步骤1 划分等价类并给予唯一的编号 1 等价类划分方法 步骤2 为有效等价类设计测试用例设计一个新的测试用例 使其尽可能多地覆盖尚未被覆盖地有效等价类 重复这一步 直到所有的有效等价类都被覆盖为止 1 等价类划分方法 步骤3 为无效等价类设计测试用例设计一个新的测试用例 使其尽可能多地覆盖尚未被覆盖地有效等价类 重复这一步 直到所有的有效等价类都被覆盖为止 1 等价类划分方法 步骤4 四类等价类测试用例 一 弱一般等价类测试用例月份年预期输出119201920年1月 二 强一般等价类测试用例同弱一般等价类测试用例月份年预期输出119201920年1月 1 等价类划分方法 三 弱健壮等价类测试用例ID月份年预期输出WR1119201920年1月 WR201920无效输入日期 月份不在1 12中 Month12 WR562013无效输入日期 年份不在1920 2012中Year 2012 1 等价类划分方法 四 强健壮等价类测试用例ID月份年预期输出SR1119201920年1月 SR201920一个无效 月份不在1 12中 SR3131920一个无效 月份不在1 12中 SR461919一个无效 年份不在1920 2012中 SR562013一个无效 年份不在1920 2012中 SR6 11919两个无效 年13 SR8 12013两个无效 年 2012 月2012 月 13 2 边界值分析方法 为什么会有边界值分析法 长期的测试工作经验告诉我们 大量的错误是发生在输入或输出范围的边界上 而不是发生在输入输出范围的内部 程序员只处理了1000 9999的情况 忘记对9999边界情况进行处理 程序员把 误写成了 计数器发生少计数一次 2 边界值分析方法 边界值分析法是对输入或输出的边界值进行测试的一种黑盒测试方法 是作为对等价类划分法的补充 这种情况下 其测试用例来自等价类的边界 2 边界值分析方法 边界点边界是指相对于输入等价类和输出等价类而言 稍高于 稍低于其边界值的一些特定情况 边界点分为上点 内点和离点 2 边界值分析方法 边界条件设计测试用例确定边界情况通常输入或输出等价类的边界就是应该着重测试的边界情况 选取测试数据选取正好等于 刚刚大于或刚刚小于边界的值作为测试数据 而不是选取等价类中的典型值或任意值 导出测试用例根据选取的每一个测试数据 依次导出测试用例 2 边界值分析方法 如何选取测试数据 1 如果输入条件规定了值的范围则应取刚达到这个范围的边界的值 以及刚刚超越这个范围边界的值作为测试输入数据 例如 程序的规格说明中规定 重量在10公斤至50公斤范围内的邮件 其邮费计算公式为 测试数据应取10及50 还应取10 01 49 99 9 99及50 01等 2 边界值分析方法 2 如果输入条件规定了值的个数则用最大个数 最小个数 比最小个数少一 比最大个数多一的数作为测试数据 例如 一个输入文件应包括1 255个记录 测试数据可取1和255 还应取0及256等 2 边界值分析方法 3 根据规格中每个输出条件 使用原则 1 如果输出条件规定了值的范围 则应取刚达到这个范围的边界的值 以及刚刚超越这个范围边界的值作为测试输入数据 程序的规格说明要求计算出 每月绩效奖金为0至1165 25元 测试用例可取0 00及1165 24 还可取一0 01及1165 26等 2 边界值分析方法 4 根据规格中每个输出条件 使用原则 2 如果输出条件规定了值的个数 则用最大个数 最小个数 比最小个数少一 比最大个数多一的数作为测试数据 情报检索系统 要求每次 最少显示1条 最多显示4条情报摘要 这时我们应考虑的测试用例包括1和4 还应包括0和5等 2 边界值分析方法 5 分析规格说明 找出其他可能的边界条件例如 特殊边界值 默认值 空值 空格 零 无效数据等 2 边界值分析方法 边界值设计选取测试数据的原则 2 边界值分析方法 边界值检验的主要类型 数值字符位置数量速度位置体积 First last First 1 Last 1Min Max Min 1 max 1Star Finish Start 1 Finish 1Empty FullLessthanempty morethanfullSlower FasterLargest SmallestOver Under justOver JustUnderShortest Longest 2 边界值分析方法 举例 利用边界值作为测试数据对16 bit的整数而言32767和 32768是边界屏幕上光标在最左上 最右下位置报表的第一行和最后一行数组元素的第一个和最后一个循环的第0次 第1次和倒数第2次 最后一次 2 边界值分析方法 边界条件设计测试用例程序的规格说明中规定 重量在10公斤至50公斤范围内的邮件 其邮费计算公式为 测试数据应取10及50 还应取10 01 49 99 9 99及50 01等 2 边界值分析方法 边界条件测试用例设计法基于边界的方法是根据定义域来实现的 最终演变成一般边界值条件测试 健壮性测试 最坏情况测试和健壮最坏情况测试四种技术 一般边界条件测试用例设计法健壮性边界条件测试用例设计法最坏边界条件测试用例设计法健壮最坏边界条件测试用例设计法 3 基于组合及其优化的技术 组合分析 组合分析是一种基于没对参数组合的测试技术 主要考虑参数之间的影响是主要的错误来源和大多数的错误起源于简单的参数组合 优点 低成本实现 低成本维护 易于自动化 效率高缺点 需要专家领域知识 不能测试所有的组合 不能测试复杂的交互 1 判定表方法 判定表的引入等价类划分法和边界值分析方法比较适合输入变量或输入条件相互独立的情况 但是当输入变量或输入条件相互依赖 相互制约的时候 采用等价类划分法和边界值分析方法是难以描述的 测试效果也很难保障 例如 有多少种优惠方案 1 判定表方法 判定表驱动法判定表驱动法 或决策表法 是根据需求描述建立判定表后 导出测试用例的方法在所有的黑盒测试方法中 基于判定表的测试是最为严格 最具有逻辑性的测试方法可以设计出完整的测试用例集合 1 判定表方法 判定表判定表由 条件和活动 两部分组成 即列出一个测试活动执行所需的条件组合 所有可能的条件组合定义了一系列的选择 而测试活动需要考虑每一个选择 1 判定表方法 阅读指南 判定表 1 判定表方法 判定表的组成条件桩 列出问题的所有条件动作桩 列出可能针对问题所采取的操作条件项 针对所列条件的具体赋值动作项 列出在条件项 各种取值 组合情况下应该采取的动作 规则 任何一个条件组合的特定取值及其相应要执行的操作 1 判定表方法 判定表的类型 有限条目判定表特点 所有条件都是二值条件 真 假 判定表 扩展条目判定表特点 条件可以有多个值 1 判定表方法 有限条目判定表 1 判定表方法 扩展条目判定表 1 判定表方法 判定表的建立步骤列出条件桩列出动作桩填入条件项及其组合填入动作项 制定初始判定表 简化 合并相似规则或者相同动作 1 判定表方法 判定表的简化实际使用决策表时 常常先将它简化 简化是以合并相似规则为目标的 判定表的简化主要包含 规则合并与规则包含 1 规则合并若两条或多条规则的动作项相同 条件项只有一项不同 则可将该项合并 合并后的条件项用符号 表示 说明执行的动作与该条件的取值无关 称为无关条件 2 规则包含无关条件项 在逻辑上又可包含其他的条件项取值 具有相同动作的规则还可进一步合并 1 判定表方法 图a两条规则合并成一条图b两条规则的进一步合并 如图a表示了两个柜子的动作项一致 条件项中的第三条件的取值不同 这表示在第一 第二条件分别取真值和假值时 第三条件不论取何值 都执行同一动作 就是说要执行的动作与第三条件的取值无关 这样 我们将这两条规则合并 合并后的第三条件取值用 表示 以示与取值无关 类似地 无关条件项 在逻辑上又可包含其他的条件项取值 具有相同动作的规则还可进一步合并 如图b所示 1 判定表方法 1 判定表方法 1 判定表方法 1 判定表方法 2 因果图法 当输入条件过多时 使用判定表会产生大量测试用例 而且也不能表达条件之间的各种 先后 关系 在一定情况下 那还有没有其他适合的方法呢 因果图法 Cause EffectGraphics 是一种利用图解法分析输入的各种组合情况 从而设计测试用例的方法 因果图提供了一个把需求转化为判定表的系统化方法因果图法最终生成的就是判定表 它适合于检查程序输入条件的各种组合情况 2 因果图法 使用因果图法的优点 1 考虑到了输入情况的各种组合以及各个输入情况之间的相互制约关系 2 能够帮助测试人员按照一定的步骤 高效率的开发测试用例 3 因果图法是将自然语言规格说明转化成形式语言规格说明的一种严格的方法 可以指出规格说明存在的不完整性和二义性 2 因果图法 关系 恒等 非 或 与ci表示原因果图的关系符号4种符号表示4种因果因 通常在图的左部 ei表示结果 通常在图的右部 ci和ei均可取值0或1 0表示某状态不出现 1表示某状态出现 表示原因与结果之间一对一的对应关系 若原因出现 则结果出现 若原因不出现 则结果也不出现 如图 若ci是1 则ei也是1 否则ei为0 2 因果图法 表示原因与结果之间的一种否定关系 若原因出现 则结果不出现 若原因不出现 反而结果出现 如图 若ci是1 则ei是0 否则ei是1 表示若几个原因中有一个出现 则结果出现 只有当这几个原因都不出现时 结果才不出现如图 若c1或c2是1 则ei为1 否则ei为0 或 可有任意个输入 2 因果图法 表示若几个原因都出现 结果才出现 若几个原因中有一个不出现 结果就不出现 如图 若c1和c2都是1 则ei为1 否则ei为0 与 可有任意个输入 2 因果图法 因果图的约束符号在实际问题当中 输入状态相互之间还可能存在某些依赖关系 称为约束 例如 某些输入条件本身不可能同时出现 输出状态之间也往往存在约束 在因果图中 用特定的符号标明这些约束 对于输入条件的约束有E I O R四种约束 对于输出条件的约束只有M约束 2 因果图法 E约束 异 a和b中最多有一个可能为1 即a和b不能同时为1 2 因果图法 I约束 或 a b c中至少有一个必须为1 即a b c不能同时为0 2 因果图法 O约束 唯一 a和b必须有一个且仅有一个为1 2 因果图法 R约束 要求 a是1时 b必须是1 即a为1时 b不能为0 2 因果图法 M约束 强制 若结果a为1 则结果b强制为0 2 因果图法 因果图用法的4个步骤 分析程序规格说明的描述中哪些是原因 哪些是结果 原因常常是输入条件或是输入条件的等价类 而结果是输出条件 找出原因与结果之间的因果关系 原因与原因之间的约束关系 画出因果图 在因果图中可以引入一些中间节点 将得到的因果图转换为决策表 为决策表中每一列所表示的情况设计一个测试用例 2 因果图法 因果图法测试举例 程序的规格说明要求 输入的第一个字符必须是 或 第二个字符必须是一个数字 此情况下进行文件的修改 如果第一个字符不是 或 则给出信息N 如果第二个字符不是数字 则给出信息M 1 分析程序规格说明中的原因和结果 2 因果图法 2 画出因果图 编号为10的中间结点是导出结果的进一步原因 2 因果图法 3 将因果图转换成如下所示的决策表 2 因果图法 4 根据决策表中的每一列设计测试用例 3 两两组合 Pairwise 方法 PairwiseTestingPairwiseTesting称为 成对测试 两两测试 或者 结对测试 大部分缺陷是在两个变量取值冲突的测试时被发现的不仅仅是在所有的组合情况下才会发现所有的测试缺陷这个是 PairwiseTesting 基本原理 不要测试所有的组合 测试所有的 Pairwise 即可 4 正交实验法 正交实验设计方法依据Galois理论 从大量的 实验 数据 测试例 中挑选适量的 有代表性的点 例 从而合理地安排实验 测试 的一种科学实验设计方法 4 正交实验法 正交表的构成行数 Runs 正交表中的行的个数 即试验的次数 也是我们通过正交实验法设计的测试用例的个数 因素数 Factors 正交表中列的个数 即我们要测试的功能点 水平数 Levels 任何单个因素能够取得的值的最大个数 正交表的形式 L行数 水平数 因素数 如 L4 23 L8 27 L16 45 4 正交实验法 设计正交表 确定影响功能的因子与状态选择一个合适的正交表利用正交表构造测试数据集把变量的值映射到表中 为剩下的水平数选取值把每一行的各因素水平组合作为一个测试用例 4 正交实验法 如何选择正交表考虑因素 变量 的个数考虑因素水平 变量的取值 的个数考虑正交表的行数取行数最少的一个正交表的因素数与水平数等于或大于要进行试验的因素数与水平数 使试验次数 4 基于逻辑覆盖的方法 1 语句覆盖 原理 如果语句中有错误 仅靠观察不执行可能发现不了在测试时 首先设计足够多的测试用例 然后运行被测程序 使程序中的每个可执行语句至少执行一次 1 语句覆盖 语句覆盖率 已执行的可执行语句 程序中可执行语句总数 100 复杂的程序不可能达到语句的完全覆盖语句覆盖率越高越好 1 语句覆盖 if a 1 达到语句覆盖100 的测试用例a 2b 0 x 3 未达到语句覆盖100 的测试用例a 2b 1x 0 1 语句覆盖 语句覆盖的优点 检查所有语句结构简单的代码的测试效果较好容易实现自动测试代码覆盖率高 1 语句覆盖 语句覆盖不能检查出的错误逻辑运算 错误循环语句错误循环次数错误跳出循环条件错误 1 语句覆盖 if a 1 if a 1 b 0 x x a if x 1 判定的第一个运算符 错写成 或第二个运算符 错写成 这时使用上述的测试用例仍然可以达到100 的语句覆盖 for i 0 i3 statement for i 0 i3 1 语句覆盖 语句覆盖率的问题语句覆盖率看似很高 却有严重缺陷 if x 1 statements else statement 99句 1句 测试用例x 2语句有覆盖率99 50 的分支没达到 2 判定覆盖 基本思想是设计若干用例 运行被测程序 使得程序中每个判断的取真分支和取假分支至少经历一次 即判断真假值均曾被满足 一个判定代表着程序的一个分支 所以判定覆盖也被称为分支覆盖 2 判定覆盖 if a 1 2 判定覆盖 2 判定覆盖 除了双值判定语句外 还有多值判定语句 如case语句 因此判定覆盖更一般的含义是 使得每一个判定获得每一种可能的结果至少一次 判定覆盖仍然无法发现程序段中存在的逻辑判定错误 3 条件覆盖 基本思想是设计若干测试用例 执行被测程序以后 要使每个判断中每个条件的可能取值至少满足一次 3 条件覆盖 if a 1 第一个判定中 考虑到各种条件取值 a 1为真 记为T1a 1为假 记为F1b 0为真 记为T2b 0为假 记为F2 第二种判定考虑情况 a 2为真 记为T3a 2为假 记为F3x 1为真 记为T4x 1为假 记为F4 3 条件覆盖 4 判定 条件覆盖 基本思想设计足够的测试用例 使得判定中每个条件的所有可能 真 假 至少出现一次 并且每个判定本身的判定结果 真 假 也至少出现一次 5 条件组合测试 基本思想是设计足够的测试用例 使得判断中每个条件的所有可能至少出现一次 并且每个判断本身的判定结果也至少出现一次 它与条件覆盖的差别是它不是简单地要求每个条件都出现 真 与 假 两种结果 而是要求让这些结果的所有可能组合都至少出现一次 5 条件组合测试 5 条件组合测试 覆盖了4个分支 漏掉了路径acd 6 基本路径覆盖 基本思想是设计所有的测试用例 来覆盖程序中的所有可能的执行路径 基本路径测试的4个步骤和一个工具方法程序的控制流图 描述程序控制流的一种图示方法 程序圈复杂度 McCabe复杂性度量 从程序的环路复杂性可导出程序基本路径集合中的独立路径条数 这是确定程序中每个可执行语句至少执行一次所必须的测试用例数目的上界 准备测试用例 确保基本路径集中的每一条路径的执行 导出测试用例 根据圈复杂度和程序结构设计用例数据输入和预期结果 工具方法 图形矩阵 是在基本路径测试中起辅助作用的软件工具 利用它可以实现自动地确定一个基本路径集 6 基本路径覆盖 流图在程序设计时 为了更加突出控制流的结构 可对程序流程图进行简化 简化后的图称为控制流图 简化后所涉及的图形符号只有两种 即节点和控制流线 6 基本路径覆盖 节点1 标有编号的圆圈2 程序流程图中矩形框所表示的处理3 菱形表示的两个甚至多个出口判断4 多条流线相交的汇合点控制流线或弧1 箭头2 与程序流程图中的流线一致 表明了控制的顺序3 控制流线通常标有名字 6 基本路径覆盖 常见语句的控制流图 6 基本路径覆盖 在选择或多分支结构中 分支的汇聚处应有一个汇聚节点 边和结点圈定的区域叫做区域 当对区域计数时 图形外的区域也应记为一个区域 6 基本路径覆盖 voidSort intiR intiT 1 2intx 0 3inty 0 4while iR 0 5 6if 0 iT 7x y 2 8else9if 1 iT 10 x y 10 11else12x y 20 13 14printf d x y 6 基本路径覆盖 如果判定中的条件表达式是复合条件 即条件表达式是由一个或多个逻辑运算符连接的逻辑表达式 则需要改变复合条件的判断为一系列只有单个条件的嵌套的判断 6 基本路径覆盖 环形复杂度 圈复杂度 代码逻辑复杂度的度量 提供了被测代码的路径数量 复杂度越高 出错的概率越大即McCabe复杂性度量 在进行程序的基本路径测试时 从程序的环路复杂性可导出程序基本路径集合中的独立路径条数 程序的环路复杂性给出了程序基本路径集中的独立路径条数 这是确保程序中每个可执行语句至少执行一次所必需的测试用例数目的上界独立路径 指程序中至少引入一个新的处理语句集合或一个新条件的程序通路 它必须至少包含一条在本次定义路径之前不曾用过的边 基本集 由独立路径构成的集合由基本集导出的测试用例 保证每行代码语句至少被执行一次基本集合不一定唯一 6 基本路径覆盖 voidSort intiRecordNum intiType 1 2intx 0 3inty 0 4while iRecordNum 0 5 6if 0 iType 7x y 2 8else9if 1 iType 10 x y 10 11else12x y 20 13 14printf x d y d x y 对应上面图中的圈复杂度 计算如下 流图中有四个区域 V G 11条边 9结点 2 4 V G 3个判定结点 1 4 6 基本路径覆盖 确定路径 路径1 4 14路径2 4 6 7 13 4 14路径3 4 6 8 10 13 4 14路径4 4 6 8 11 13 4 14 6 基本路径覆盖 设计测试用例 5 基于故障模式的测试方法 1 常见的缺陷模式 故障模型 安全漏洞模型性能模型并发故障模型不良习惯模型代码国际化模型易诱骗代码模型 2 检测步骤 预处理 预编译词法分析 LexicalAnalysis 语法分析 Parsing 和语义处理 SemanticAnalysis 抽象语法树生成控制流图生成IP扫描人工确认 6 基于模型的测试方法 1 MBT 基于模型的测试 MBT Model basedtesting 通过构建能够正确描述被测软件系统功能特性的模型 然后基于这个模型产生测试用例并执行这些测试用例的过程 3 基于模型的软件测试 优点测试效率高对逻辑复杂故障测试效果好容易实现自动化测试缺点误报问题漏报问题模型机理 1 MBT MBT模型分类 1 MBT 基于模型的测试的基本过程1 分析被测系统2 建立抽象模型3 生成抽象测试4 具体化抽象测试5 执行具体测试6 分析测试结果 1 MBT 支持工具支持状态机模型的工具 包括 SoftwareEngineeringTechnology的测试工具toolSET Certify运行于RISC6OOO和SUN平台 现在此工具属于G Lab 并已经提供了对统计测试的支持 IBM的GOTCHA 可以根据用户事先确定的测试充分性准则进行基于软件状态模型的测试例生成 IBM的TCBean是一个提供测试脚本管理功能的基于状态机的测试引擎 支持马尔可夫链模型的工具 包括 CleanroomSoftwareEngineering的CleanTest 支持统计测试 是商用的使用模型及统计测试例生成工具 IBM的CleanroomCertificationAssistant 可以自动化统计验证过程 通过使用概率分布产生测试例 并对测试结果进行分析 1 MBT 对UML模型提供测试支持的工具 包括 SilverMark公司针对IBM公司的VisualAge开发的支持测试用例生成和回归测试的TestMetor和UMLdesignerConnection 对统计测试结果进行分析的工具 包括AT美国空军喷气动力实验室开发的CASRE 支持可靠性估计和预测 2 功能图法 每个程序的功能通常由静态说明和动

温馨提示

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

评论

0/150

提交评论