软件测试教程(华为培训专用)-第2章.ppt

上传人:max****ui 文档编号:8607940 上传时间:2020-03-30 格式:PPT 页数:65 大小:1.49MB
返回 下载 相关 举报
软件测试教程(华为培训专用)-第2章.ppt_第1页
第1页 / 共65页
软件测试教程(华为培训专用)-第2章.ppt_第2页
第2页 / 共65页
软件测试教程(华为培训专用)-第2章.ppt_第3页
第3页 / 共65页
点击查看更多>>
资源描述
第2章黑盒测试 黑盒测试是一种常用的软件测试方法 它将被测软件看作一个打不开的黑盒 主要根据功能需求设计测试用例 进行测试 本章主要介绍几种常用的黑盒测试方法和黑盒测试工具 并通过实例介绍各种方法的运用 第2章黑盒测试 2 1黑盒测试的基本概念2 2等价类划分2 3边界值分析法2 4因果图法2 5决策表法2 6黑盒测试方法的比较与选择2 7黑盒测试工具介绍 2 1黑盒测试的基本概念 黑盒测试是从一种从软件外部对软件实施的测试 也称功能测试或基于规格说明的测试 其基本观点是 任何程序都可以看作是从输入定义域到输出值域的映射 这种观点将被测程序看作一个打不开的黑盒 黑盒里面的内容 实现 是完全不知道的 只知道软件要做什么 因无法看到盒子中的内容 所以不知道软件是如何实现的 也不关心黑盒里面的结构 只关心软件的输入数据和输出结果 2 1黑盒测试的基本概念 黑盒测试是从用户观点出发的测试 其目的是尽可能发现软件的外部行为错误 在已知软件产品功能的基础上 检测软件功能能否按照需求规格说明书的规定正常工作 是否有功能遗漏 检测是否有人机交互错误 是否有数据结构和外部数据库访问错误 是否能恰当地接收数据并保持外部信息 如数据库或文件 等的完整性 检测行为 性能等特性是否满足要求等 检测程序初始化和终止方面的错误等 2 1黑盒测试的基本概念 黑盒测试着眼于软件的外部特征 通过上述方面的检测 确定软件所实现的功能是否按照软件规格说明书的预期要求正常工作 两个显著的优点 黑盒测试与软件具体实现无关 所以如果软件实现发生了变化 测试用例仍然可以使用 设计黑盒测试用例可以和软件实现同时进行 因此可以压缩项目总的开发时间 2 1黑盒测试的基本概念 穷举输入测试是不现实的 这就需要我们认真研究测试方法 以便能开发出尽可能少的测试用例 发现尽可能多的软件故障 常用的黑盒测试方法有等价类划分 边界值分析 决策表测试等 每种方法各有所长 我们应针对软件开发项目的具体特点 选择合适的测试方法 有效地解决软件开发中的测试问题 2 2等价类划分 等价类划分法是一种典型的黑盒测试方法 它完全不考虑程序的内部结构 只根据程序规格说明书对输入范围进行划分 把所有可能的输入数据 即程序输入域划分为若干个互不相交的子集 称为等价类 然后从每个等价类中选取少数具有代表性的数据作为测试用例 进行测试 2 2等价类划分 2 2 1等价类划分方法所谓等价类是指输入域的某个互不相交的子集合 所有等价类的并便是整个输入域 1 划分等价类 1 有效等价类检验程序是否实现了规格说明预先规定的功能和性能 2 无效等价类检查软件功能和性能的实现是否有不符合规格说明要求的地方 2 2 1等价类划分方法 2 常用的等价类划分原则 1 按区间划分 2 按数值划分 3 按数值集合划分 4 按限制条件或规则划分 5 细分等价类 2 2 1等价类划分方法 在确立了等价类之后 可按表2 1的形式列出所有划分出的等价类表 表2 1等价类表同样 也可按照输出条件 将输出域划分为若干个等价类 2 2 1等价类划分方法 3 等价类划分测试用例设计在设计测试用例时应同时考虑有效等价类和无效等价类测试用例的设计 根据等价类表设计测试用例 具体步骤如下 1 为每个等价类规定一个唯一的编号 2 设计一个新的测试用例 尽可能多地覆盖尚未被覆盖的有效等价类 重复这一步 直到测试用例覆盖了所有的有效等价类 3 设计一个新的测试用例 使其覆盖并且只覆盖一个还没有被覆盖的无效等价类 重复这一步 直至测试用例覆盖了所有的无效等价类 2 2等价类划分 2 2 2等价类划分法的测试运用 三角形问题的等价类测试 例2 1 三角形问题是软件测试文献中使用最广泛的一个例子 输入三个整数a b和c分别作为三角形的3条边 通过程序判断由这3条边构成的三角形类型是 等边三角形 等腰三角形 一般三角形或非三角形 不能构成一个三角形 2 2 2等价类划分法的测试运用 三角形问题可以更详细地描述为 输入3个整数a b和c分别作为三角形的三条边 要求a b和c必须满足以下条件 Con1 1 a 10Con2 1 b 100Con3 1 c 100Con4 a b cCon5 b a cCon6 c a b 如果a b和c满足Con1 Con2和Con3 则输出为4种情况之一 如果不满足条件Con4 Con5和Con6中有一个 则程序输出为 非三角形 如果三条边相等 则程序输出为 等边三角形 如果恰好有两条边相等 则程序输出为 等腰三角形 如果三条边都不相等 则程序输出为 一般三角形 2 2 2等价类划分法的测试运用 2 保险公司人寿保险保费计算程序的等价类测试 例2 2 某保险公司人寿保险的保费计算方式为 保费 投保额 保险费率其中 保险费率根据年龄 性别 婚姻状况和抚养人数的不同而有所不同 体现在不同年龄 性别 婚姻状况和抚养人数 点数设定不同 10点及10点以上保险费率为0 6 10点以下保险费率为0 1 而点数又是由投保人的年龄 性别 婚姻状况和抚养人数来决定 具体规则见表2 5 2 2 2等价类划分法的测试运用 分析程序规格说明中给出和隐含的对输入数据的要求 可以得出 年龄 一位或两位非零整数 取值的有效范围为1 99 性别 一位英文字符 只能取 M 或 F 值 婚姻 字符 只能取 已婚 或 未婚 抚养人数 空白或字符 无 或一位非零整数 1 9 点数 一位或两位非零整数 取值范围为8 19通过对规格说明输入数据的取值分析 可以得出保险公司人寿保险保费计算程序的等价类 2 2 2等价类划分法的测试运用 等价类测试存在两个问题 一是规格说明往往没有定义无效测试用例的期望输出应该是什么样的 因此 测试人员需要花费大量时间来定义这些测试用例的期望输出 二是强类型语言没有必要考虑无效输入 传统等价类测试是诸如FORTRAN和COBOL这样的语言占统治地位年代的产物 那时这种无效输入的故障很常见 事实上 正是由于经常出现这种错误 才促使人们使用强类型语言 2 3边界值分析法 大量的软件测试实践表明 故障往往出现在定义域或值域的边界上 而不是在其内部 为检测边界附近的处理专门设计测试用例 通常都会取得很好的测试效果 因此边界值分析法是一种很实用的黑盒测试用例方法 它具有很强的发现故障的能力 2 3 1边界值分析法 1 边界条件边界是一些特殊情况 程序在处理大量中间数值时都是正确 但是在边界处可能出现错误 边界条件就是软件计划的操作界限所在的边缘条件 一些可能与边界有关的数据类型有 数值 速度 字符 地址 位置 尺寸 数量等 同时 考虑这些数据类型的下述特征 第一个 最后一个 最小值 最大值 开始 完成 超过 在内 空 满 最短 最长 最慢 最快 最早 最迟 最高 最低 相邻 最远等 2 3 1边界值分析法 其实边界值和等价类密切相关 输入等价类和输出等价类的边界是要着重测试的边界情况 在等价类的划分过程中产生了许多等价类边界 边界是最容易出错的地方 所以 从等价类中选取测试数据时应该关注边界值 在等价类划分基础上进行边界值分析测试的基本思想是 选取正好等于 刚刚大于或刚刚小于等价类边界的值作为测试数据 而不是选取等价类中的典型值或任意值做为测试数据 2 3 1边界值分析法 2 边界值分析测试这里讨论一个有两个变量x1和x2的程序P 假设输入变量x1和x2在下列范围内取值 a x1 b c x2 d边界值分析利用输入变量的最小值 min 稍大于最小值 min 域内任意值 nom 稍小于最大值 max 最大值 max 来设计测试用例 即通过使所有变量取正常值 只使一个变量分别去最小值 略高于最小值 略低于最大值和最大值 2 3 1边界值分析法 对于一个n变量的程序 边界值分析测试会产生4n 1个测试用例 2 3 1边界值分析法 3 健壮性边界值测试健壮性测试是边界值分析的一种扩展 变量除了取min min nom max max五个边界值外 还要考虑采用一个略超过最大值 max 以及一个略小于最小值 min 的取值 看看超过极限值时系统会出现什么情况 2 3 1边界值分析法 健壮性边界值测试将产生6n 1个测试用例 健壮性测试最有意义的部分不是输人 而是预期的输出 观察例外情况如何处理 2 3边界值分析法 2 3 2边界值分析法的测试运用1 三角形问题的边界值分析测试用例设计边界值分析测试用例 2 3 2边界值分析法的测试运用 2 加法器边界值测试用例设计 例2 4 加法器程序计算两个1 100之间整数的和 对于加法器程序 根据输入要求可将输入空间划分为三个等价类 即1个有效等价类 1 100之间 两个无效等价类 100 但这种等价类划分不是很完善 我们只考虑了输入数据的取值范围 而没有考虑输入数据的类型 我们认为输入应为整数 但用户输入什么都有可能 2 3 2边界值分析法的测试运用 为此 我们可综合考虑输入数据的取值范围和类型划分等价类 其结果如下表所示 加法器等价类 2 3 2边界值分析法的测试运用 加法器边界测试用例 2 3 2边界值分析法的测试运用 加法器边界测试用例 2 3 2边界值分析法的测试运用 应用边界值分析法进行测试用例设计时 应遵循以下一些原则 1 如果输入条件对取值范围进行了限定 则应以边界内部以及刚超出范围边界外的值作为测试用例 2 如果对取值的个数进行了界定 则应分别以最大 稍小于最大 稍大于最大 最小 稍小于最小 稍大于最小个数作为测试用例 3 对于输出条件 同样可以应用上面提到的两条原则来进行测试用例设计 4 如果程序规格说明书中指明输入或者输出域是一个有序的集合 如顺序文件 表格等 则应注意选取有序集合中的第一个和最后一个元素作为测试用例 2 4因果图法 等价类划分法和边界值分析方法都是着重考虑输入条件 如果程序输入之间没有什么联系 采用等价类划分和边界值分析是一种比较有效的方法 但如果输入之间有关系 例如 约束关系 组合关系 这种关系用等价类划分和边界值分析是很难描述的 测试效果难以保障 因此必须考虑使用一种适合于描述对于多种条件的组合 产生多个相应动作的测试方法 因果图正是在此背景下提出的 2 4因果图法 2 4 1因果图法的原理1 因果图 2 4 1因果图法的原理 2 4 1因果图法的原理 2 因果图法测试用例的设计步骤 1 确定软件规格中的原因和结果 分析规格说明中哪些是原因 即输入条件或输入条件的等价类 哪些是结果 即输出条件 并给每个原因和结果赋予一个标识符 2 确定原因和结果之间的逻辑关系 分析软件规格说明中的语义 找出原因与结果之间 原因与原因之间对应的关系 根据这些关系画出因果图 3 确定因果图中的各个约束 由于语法或环境的限制 有些原因与原因之间 原因与结果之间的组合情况不可能出现 为表明这些特殊情况 在因果图上用一些记号表明约束或限制条件 4 把因果图转换为决策表 5 根据决策表设计测试用例 2 4因果图法 2 4 2因果图法的测试运用某软件规格说明书规定 输入的第一个字符必须是 或 第二个字符必须是一个数字 此情况下进行文件的修改 如果第一个字符不是 或 则给出信息N 如果第二个字符不是数字 则给出信息M 2 5决策表法 在所有的黑盒测试方法中 基于决策表的测试是最严格 最具有逻辑性的测试方法 2 5决策表法 2 5 1决策表法1 决策表决策表是把作为条件的所有输入的各种组合值以及对应输出值都罗列出来而形成的表格 它能够将复杂的问题按照各种可能的情况全部列举出来 简明并避免遗漏 因此 利用决策表能够设计出完整的测试用例集合 2 5 1决策表法 决策表通常由条件桩 条件项 动作桩和动作项4部分组成 决策表的组成动作项和条件项紧密相关 指出在条件项的各组取值情况下应采取的动作 2 5 1决策表法 2 决策表的构造及化简构造决策表可采用以下5个步骤 1 列出所有的条件桩和动作桩 2 确定规则的个数 3 填入条件项 4 填入动作项 得到初始决策表 5 简化决策表 合并相似规则 2 5 1决策表法 决策表的化简对于n个条件的决策表 相应有2n个规则 每个条件分别取真 假值 当n较大时 决策表很繁琐 实际使用决策表时 常常先将它简化 决策表的简化是以合并相似规则为目标 即若表中有两条以上规则具有相同的动作 并且在条件项之间存在极为相似的关系 便可以合并 2 5决策表法 2 5 2决策表法的测试运用下面以NextDate函数为例 讨论决策表测试用例的设计 例2 5 NextDate函数输入为month 月份 day 日期 和year 年 输出为输入后一天的日期 例如 如果输入为 1964年8月16日 则输出为1964年8月17日 要求输入变量month day和year都是整数值 并且满足以下条件 Con1 1 month 12Con2 1 day 31Con3 1900 year 2050 2 5 2决策表法的测试运用 采用决策表法则可以通过使用 不可能动作 的概念表示条件的不可能组合 来强调这种依赖关系 为了获得下一个日期 NextDate函数需要执行的操作只有如下5种 day变量值加1 day变量值复位为1 month变量值加1 month变量值复位为1 year变量值加1 2 5 2决策表法的测试运用 如果将注意力集中到NextDate函数的日和月问题上 并仔细研究动作桩 可以在以下的等价类集合上建立决策表 M1 mouth mouth有30天 M2 mouth mouth有31天 12月除外 M3 mouth mouth有12月 M4 mouth mouth是2月 D1 day 1 day 27 D2 day day 28 D3 day day 29 D4 day day 30 D5 day day 31 Y1 year year是闰年 Y2 year year不是闰年 2 5 2决策表法的测试运用 NextDate函数的决策表 2 5 2决策表法的测试运用 NextDate函数的决策表 2 5 2决策表法的测试运用 可进一步简化这22个测试用例 简化后的决策表如下所示 2 5 2决策表法的测试运用 根据简化后的决策表 可设计测试用例如下表所示 2 6黑盒测试方法的比较与选择 上面讨论了几种典型的黑盒测试方法 这些测试方法的共同特点是 它们都把程序看作是一个打不开的黑盒 只知道输入到输出的映射关系 根据软件规格说明设计测试用例 在等价类分析测试中 通过等价类划分来减少测试用例的绝对数量 边界值分析方法则通过分析输入变量的边界值域设计测试用例 在因果图测试方法和决策表测试中 通过分析被测程序的逻辑依赖关系 构造决策表 进而设计测试用例 2 6黑盒测试方法的比较与选择 1 测试工作量以边界值分析 等价类划分和决策表测试方法来讨论它们的测试工作量 即生成测试用例的数量与开发这些测试用例所需的工作量 每种测试方法的测试用例数量 2 6黑盒测试方法的比较与选择 由每种方法设计测试用例的工作量曲线 每种方法设计测试用例的工作量趋势 测试方法研究的目的就是在开发测试用例工作量和测试执行工作量之间做一个令人满意的折中 2 6黑盒测试方法的比较与选择 2 测试有效性解释测试有效性是很困难的 因为我们不知道程序中的所有故障 因此我们也不可能知道给定方法所产生的测试用例是否能够发现这些 所能够做的 只是根据不同类型的故障 选择最有可能发现这种缺陷的测试方法 包括白盒测试 根据最可能出现的故障种类 分析得到可提高测试有效性的实用方法 通过跟踪所开发软件中的故障的种类和密度 也可以改进这种方法 2 6黑盒测试方法的比较与选择 利用程序的已知属性 选择处理这种属性的方法 在选择黑盒测试方法时一些经常用到的属性有 变量表示物理量还是逻辑量 在变量之间是否存在依赖关系 是否有大量的例外处理 2 6黑盒测试方法的比较与选择 下面给出一些黑盒测试方法选取的初步的 专家系统 如果变量引用的是物理量 可采用边界值分析测试和等价类测试 如果变量是独立的 可采用边界值分析测试和等价类测试 如果变量不是独立的 可采用决策表测试 如果可保证是单缺陷假设 可采用边界值分析和健壮性测试 如果可保证是多缺陷假设 可采用边界值分析测试和决策表测试如果程序包含大量例外处理 可采用健壮性测试和决策表测试 如果变量引用的是逻辑量 可采用等价类测试用例和决策表测试 2 7黑盒测试工具介绍 黑盒测试工具是指测试软件功能和性能的工具 主要用于集成测试 系统测试和验收测试 本节主要介绍几款常用的功能测试工具 性能测试工具则在第6章中介绍 2 7黑盒测试工具介绍 2 7 1黑盒测试工具概要黑盒测试是在已知软件产品应具有的功能的条件下 在完全不考虑被测程序内部结构和内部特性的情况下 通过测试来检测每个功能是否都按照需求规格说明的规定正常使用 黑盒测试工具又分为 功能测试工具和性能测试工具 功能测试工具 功能测试工具主要用于检测被测程序能否达到预期的功能要求并能正常运行 性能测试工具 性能测试工具主要用于确定软件和系统性能 2 7 1黑盒测试工具概要 功能测试工具一般采用脚本录制 Record 回放 Playback 原理 模拟用户的操作 然后将被测系统的输出记录下来 并同预先给定的标准结果进行比较 在回归测试中使用功能测试工具 可以大大减轻测试人员的工作量 提高测试效果 功能测试工具不太适合于版本变动较大的软件 下面主要介绍一些主流黑盒功能测试工具 如MercuryInteractive公司的WinRunner IBMRational公司的TeamTest和Robot Compuware公司的QACenter等 2 7黑盒测试工具介绍 2 7 2黑盒功能测试工具 WinRunner1 WinRunner的测试模式 1 上下文敏感模式 ContextSensitivemodel 2 模拟模式 Analogmode 2 GUI对象识别和GUImap文件3 WinRunner测试过程可分为创建GUImap 创建测试 调试测试 执行测试 分析结果和测试维护六个阶段 2 7 2黑盒功能测试工具 WinRunner 4 WinRunner的使用WinRunner的主窗口如下所示 主要包括标题栏 菜单栏 标准工具栏 用户栏 状态栏和测试窗口 2 7 2黑盒功能测试工具 WinRunner WinRunner的测试窗口界面如下 5 WinRunner对样本软件Flight1A的测试 2 7黑盒测试工具介绍 2 7 3黑盒功能测试工具 QTPQTP属于新一代自动化测试解决方案 能够支持所有常用环境的功能测试 QTP的主界面与WinRunner的主界面不同 界面中主要部分包括 文件工具栏 测试工具栏 测试面 数据表格 活动屏幕 QTP的主界面 2 7 3黑盒功能测试工具 QTP 2 7 3黑盒功能测试工具 QTP QTP的测试流程1 设计测试用例2 创建测试脚本3 编辑测试脚本4 运行测试5 分析测试QTP适合测试版本比较稳定的软件产品 在一些界面变化不大的回归测试中非常有效 但对于界面变化频率较大的软件 则体现不出QTP的优势 2 7黑盒测试工具介绍 2 7 4其他常用功能测试工具1 IBMRational公司的功能测试工具RobotRobot是一个面向对象的软件测试工具 主要针对Web ERP等进行自动功能测试 用Robot可完成大多数软件的功能和性能测试 它主要通过编写脚本的方式提供自动化测试 可以开发三种测试脚本 用于功能测试的GUI脚本 用于性能测试的VU 虚拟用户 以及VB VBScript 脚本 此外 RationalTeamTest是一个针对整个功能测试流程 从编写和维护需求 到创建有效的测试脚本 直至缺陷跟踪 提供全面解决方案的团队测试工具 2 7 4其他常用功能测试工具 Compuware公司的自动黑盒测试工具QACenterQACcenter这个主要包括应用测试产品的家族 能够自动地帮助管理测试过程 快速分析和调试程序 能够针对回归测试 强度测试 单元测试 并发测试 集成测试 移植测试 容量和负载测试建立测试用例 自动执行测试并产生相应的文档 QACenter主要包括 功能测试工具QARun 性能测试工具QALoad 可用性管理工具EcoTools和性能优化工具EcoScope 习题21 分析黑盒测试方法的实质及测试用例设计的要点 掌握黑盒测试用例设计的主要思路 2 试用等价类分析方法 对实例程序进行测试 3 试用边界值分析方法 对实例程序进行测试 4 试用决策表方法 对实例程序进行测试 5 启动Word程序并从File菜单中选择Print命令 打开打印对话框 左下角显示的PrintRange 打印区域 存在什么样的边界条件 6 对三角形问题的一种常见补充是检查直角三角形 如果满足毕达哥拉斯 Pythagorean 关系 c2 a2 b2 则三条边构成直角三角形 试针对包含了直角三角形的扩展三角形问题来设计标准等价类测试用例 试为三角形问题中的直角三角形开发一个决策表和相应的测试用例 注意 会有等腰直角三角形 8 学习安装WinRunner或QTP 并通过操作实践其自带的 机票预定系统 掌握该软件测试工具的基本使用方法和主要功能 9 试编辑一个测试脚本 并进行测试实践 10 用WinRunner或QTP来测试一个网上购物系统 要求 录制整个购物流程 练习插入各种检查点11 运用WinRunner或QTP 对本校校园网站进行测试并分析测试结果 12 从网上搜索一款免费黑盒测试工具 下载按照在计算机机上 学习其使用方法 并选一个被测程序进行测试实践
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!