测试用例分析方法培训.ppt

上传人:xt****7 文档编号:1940529 上传时间:2019-11-11 格式:PPT 页数:78 大小:620.05KB
返回 下载 相关 举报
测试用例分析方法培训.ppt_第1页
第1页 / 共78页
测试用例分析方法培训.ppt_第2页
第2页 / 共78页
测试用例分析方法培训.ppt_第3页
第3页 / 共78页
点击查看更多>>
资源描述
软件测试知识培训 主讲人:,Test training,培训内容 第一讲 测试总体介绍 第二讲 测试计划 第三讲 测试设计和开发 第四讲 测试用例分析方法 第五讲 测试执行和评估 第六讲 测试流程及管理,测试培训,Test Case Analyze Method,第四讲 测试用例分析方法,测试培训,测试用例分析方法,前 言 本次培训的内容是软件测试用例的分析方法。 本次培训的目的是通过这次讲解,希望大家能够对软件测试用例的分析方法有一个比较系统化和全面的了解。,测试培训,测试用例分析方法,简介 测试方法 黑盒测试 白盒测试 用例分析方法 黑盒方法 白盒方法 Q/A,测试培训,目 录,测试用例分析方法,简 介 软件测试的方法多种多样,测试人员在测试的过程中不断摸索和总结,逐渐形成了一些典型的通用方法,这些方法可以针对具体的项目和需要来剪裁或组合运用。大体上将这些方法归为两类:黑盒方法和白盒方法。,测试培训,测试用例分析方法,理想:把所有能做的测试无一遗漏地全部做 完,把软件系统中所有隐藏的错误全 部找出来。 现实:人力,时间,成本的限制。 折中:设计有限的测试用例代替穷举测试。,测试培训,测试方法 黑盒测试: 把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。,测试用例分析方法,测试培训,黑盒测试的关注点: 是否有不正确或遗漏了的功能? 在接口上,输入能否正确地接受? 能否输出正确的结果? 是否有数据结构错误或外部信息(例如数据文件)访问错误? 性能上是否能够满足要求? 安全性上是否能够满足要求? 是否有初始化或终止性错误?,测试用例分析方法,测试培训,例示: 假设一个程序P有输入量X和Y及输出量Z。在字长为32位的计算机上运行。若X、Y取整数,按黑盒方法进行穷举测试: 可能采用的 测试数据组: 232232264 如果测试一组数据需要1毫秒,一年工作365 24小时,完成所有测试需几亿年。,测试用例分析方法,测试培训,白盒测试: 把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构等有关信息,设计测试用例,对程序所有逻辑路径进行测试。 通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。,测试用例分析方法,测试培训,白盒测试的关注点: 检查程序模块的所有独立的执行路径是否有效; 检查程序中所有的逻辑判定,取“真”与取“假”的两种情况是否都执行过; 检查循环的边界和循环内运行逻辑是否正确; 检查程序内部数据结构是否有效等。,测试用例分析方法,测试培训,例示:,测试用例分析方法,测试培训,对一个具有多重选择和循环嵌套的程序,不同的路径数目可能是天文数字。给出一个小程序的流程图,它包括了一个执行20次的循环。 包含的不同执行路径数达520条,对每一条路径进行测试需要1毫秒,假定一年工作365 24小时,要想把所有路径测试完,需几千年。,测试用例分析方法,测试培训,总结: 通过黑盒测试发现程序中的错误,必须在所有可能的输入条件和输出条件中确定测试数据,来检查程序是否都能产生正确的输出; 通过白盒测试发现程序中的错误,必须运行程序执行所有的逻辑分支,所有的循环,所有的路径,来检查程序是否都能运行正常。 但这是不可能的。 所以,我们需要用例分析方法。,测试用例分析方法,测试培训,语句覆盖 判定覆盖 条件覆盖,判定-条件覆盖 条件组合覆盖 路径覆盖,用例分析方法 一.白盒方法,测试用例分析方法,测试培训,举例:(程序片断如下),所有路径为: L1(a-c-e) ,L2(a-b-d), L3(a-b-e), L4(a-c-d).,测试培训,测试培训,测试培训,测试培训,依据以上推导出来的结果可以设计满足要求的测试用例。,测试培训,逻辑代数的基本公式:,注: and代表 or 代表,.,测试培训,语句覆盖,语句覆盖就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。 在示例中,正好所有的可执行语句都在路径L1上,所以选择路径 L1设计测试用例,就可以覆盖所有的可执行语句。,测试培训,测试用例的设计格式如下 【输入的(A, B, X),输出的(A, B, X)】 为示例设计满足语句覆盖的测试用例是: 【(2, 0, 4),(2, 0, 3)】 覆盖 ace【L1】,测试培训,语句覆盖的优缺点: 优点: 最简单的结构测试覆盖; 易于实现大量的代码覆盖; 缺点: 语句覆盖所采用的标准是结构测试里最弱的; 只测试了条件语句的一方面;,测试培训,判定覆盖,判定覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少执行一次。 判定覆盖又称为分支覆盖。 对于示例,如果选择路径L1和L2,就可以得到满足要求的测试用例:,测试培训,【(2, 0, 4),(2, 0, 3)】覆盖 ace【L1】 【(1, 1, 1),(1, 1, 1)】覆盖 abd【L2】,测试培训,如果选择路径L3和L4,还可得另一组可用的测试用例: 【(2, 1, 1),(2, 1, 2)】覆盖 abe【L3】 【(3, 0, 3),(3, 0, 1)】覆盖 acd【L4】,测试培训,分支覆盖的优缺点: 优点: 分支覆盖包含了语句覆盖; 分支条件容易在代码中发现; 缺点: 可能不会访问到用于分支的所有复杂条 件;,测试培训,条件覆盖,条件覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的每个条件的可能取值至少执行一次。 在图例中,我们事先可对所有条件的取值加以标记。例如, 对于第一个判断: 条件 A1 取真为 ,取假为 条件 B0 取真为 ,取假为,测试培训,对于第二个判断: 条件A2 取真为 ,取假为 条件X1 取真为 ,取假为 测试用例 覆盖分支 条件取值 【(2, 0, 4),(2, 0, 3)】L1(c, e) 【(1, 0, 1),(1, 0, 1)】L2(b, d) 【(2, 1, 1),(2, 1, 2)】L3(b, e) 或,测试培训,测 试 用 例 覆盖分支 条件取值 【(1, 0, 3),(1, 0, 4)】 L3(b, e) 【(2, 1, 1),(2, 1, 2)】 L3(b, e),测试培训,条件覆盖的优缺点: 优点: 每个条件的可能取值都被测试到; 缺点: 可能遗漏部分路径的测试;,测试培训,判定-条件覆盖 判定-条件覆盖就是设计足够的测试用例,使得每个判断的取真和取假分支至少执行一次,同时每个判断中的每个条件的可能取值至少执行一次。,测试培训,测 试 用例 覆盖分支 条件取值 【(2,0,4),(2,0,3)】L1(c,e) 【(1,1,1),(1,1,1)】L2(b,d),测试培训,判定-条件覆盖的优缺点: 优点: 每个分支都被测试到; 每个分支的每个条件的可能取值都被测试到; 缺点: 可能遗漏部分路径的测试;,测试培训,条件组合覆盖,条件组合覆盖就是设计足够的测试用例,运行被测程序,使得每个判断的所有可能的条件取值组合至少执行一次。 记 A1, B0 作 A1, B0 作 A1, B0 作 A1, B0 作,测试培训, A2, X1 作 A2, X1 作 A2, X1 作 A2, X1 作 测 试 用 例 覆盖条件 覆盖组合 【(2, 0, 4), (2, 0, 3)】(L1) , 【(2, 1, 1), (2, 1, 2)】(L3) , 【(1, 0, 3), (1, 0, 4)】(L3) , 【(1, 1, 1), (1, 1, 1)】(L2) , ,测试培训,条件组合覆盖的优缺点: 优点: 所有的分支都被测试到; 分支的所有取值组合都被测试到; 缺点: 可能遗漏部分路径的测试;,测试培训,路径覆盖,路径测试就是设计足够的测试用例,覆盖程序中所有可能的路径。 测 试 用 例 通过路径 覆盖条件 【(2, 0, 4), (2, 0, 3)】 ace (L1) 【(1, 1, 1), (1, 1, 1)】 abd (L2) 【(1, 1, 2), (1, 1, 3)】 abe (L3) 【(3, 0, 3), (3, 0, 1)】 acd (L3),测试培训,路径覆盖的优缺点: 优点: 是最全面的代码覆盖方法; 缺点: 1.并非所有的路径都可用; 2.实践上也不可能实现100覆盖;,测试培训,用例分析方法 二.黒盒方法,等价类划分 边界值分析 错误推测法 因果图,测试用例分析方法,测试培训,等价类划分,等价类划分是一种典型的黑盒测试方法,使用这一方法时,完全不考虑程序的内部结构,只依据程序的规格说明来设计测试用例。 等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。测试某等价类的代表值就等价于对这一类其它值的测试。,测试培训,等价类划分是把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少数有代表性的数据做为测试用例。 使用这一方法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步。,测试培训,等价类的类别: 有效等价类:是指对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。 无效等价类:是指对于程序的规格说明来说,是不合理的,无意义的输入数据构成的集合。 在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。,测试培训,划分等价类的方法: (1) 如果输入条件规定了取值范围或值的个数,则可以确立一个有效等价类和两个无效等价类。,测试培训,例如,在程序的输入条件有如下要求: “ X的取值可以从1到999 ” 则有效等价类是“1X999” 两个无效等价类是“X1”或“X999”。在数轴上表示成:,华普信息 测试培训,(2) 如果输入条件规定了输入值的集合,或者是规定了“必须如何”的条件,这时可确立一个有效等价类和一个无效等价类。 例如,在程序设计语言中对变量标识符规定为“以字母打头的串”。那么所有以字母打头的构成有效等价类,而不在此集合内(不以字母打头)的归于无效等价类。,测试培训,(3) 如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类。 (4) 如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理。这时可为 每一个输入值确立一个有效等价类,此外针对这组值确立一个无效等价类,它是所有不允许的输入值的集合。,测试培训,例如,在教师上岗方案中规定对教授、副教授、讲师和助教分别计算分数,做相应的处理。因此可以确定4个有效等价类为教授、副教授、讲师和助教,一个无效等价类,它是所有不符合以上身分的人员的输入值的集合。,测试培训,(5) 如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。 例如,某一程序设计语言规定 “一个语句必须以分号;结束”。这时,可以确定一个有效等价类 “以;结束”,若干个无效等价类 “以:结束”、“以,结束”、“以 结束”等。,测试培训,确立测试用例 在确立了等价类之后,建立等价类表,列出所有划分出的等价类。,测试培训,从划分出的等价类中按以下原则选择测试用例: (1) 为每一个等价类规定一个唯一编号; (2) 设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止; (3)设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。,测试培训,用等价类划分法设计测试用例的实例 在某一程序设计语言版本中规定:“标识符是由字母开头,后跟字母或数字的任意组合构成。有效字符数为8个,最大字符数为80个。” 并且规定:“标识符必须先说明,再使用。” “在同一说明语句中,标识符至少有一个。”,测试培训,用等价类划分的方法,建立输入等价类表:,测试培训,下面选取了9个测试用例,它们覆盖了所有的等价类。 VAR x,T1234567:REAL; BEGIN x := 3.414; T1234567 := 2.732; . (1), (2), (4), (8), (9), (12), (14) VAR :REAL; (3) VAR x,:REAL; (5),测试培训, VAR T12345678:REAL; (6) VAR T12345:REAL; (7) 多于80个字符 VAR T$:CHAR; (10) VAR GOTO:INTEGER; (11) VAR 2T:REAL; (13) VAR PAR:REAL; (15) BEGIN PAP := SIN (3.14 * 0.8) / 6;,测试培训,辨别等价类的角度有: 1.值的范围 2. 值的数量 3.特殊值,测试培训,等价类划分方法的优缺点: 优点: 1.只需要相对较少的测试用例; 2.感觉到完整的覆盖; 3.帮助降低重复性; 缺点: 1.有可能缺乏特殊用例的考虑; 2.需要深入全面的系统知识才能做到最有 效,尤其是当子集里有特殊值。,测试培训,边界值分析,边界值分析也是对等价类划分方法的补充。 从测试经验得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。,测试培训,比如,在做三角形计算时,要输入三角形的三个边长:A、B和C。 我们应注意到这三个数值应当满足 A0、B0、C0、 ABC、ACB、BCA, 才能构成三角形。但如果把六个不等式中的任何一个大于号“”错写成大于等于号“”,那就不能构成三角形。,测试培训,这里所说的边界是指:相对于某个等价类而言,稍高于其边界值及稍低于其边界值的一些特定情况。 使用边界值分析方法设计测试用例,首先应确定边界情况。应当选取正好等于,刚刚大于,刚刚小于边界的值做为测试数据,而不是选取等价类中的典型值或任意值做为测试数据。,测试培训,边界值分析的优缺点: 优点: 1.错误容易发生在边界值附近; 2.对多取值变量的测试比较有效; 3.适合于对数据类型要求不太严格的语言编 写的程序有利; 缺点: 1.对布尔值(或逻辑变量)无效; 2.不能很好地测试不同的输入组合;,测试培训,错误推测法,靠经验和直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的例子。 错误推测法的基本想法是:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。,测试培训,错误推测法的优缺点: 优点: 1.能很快地写出一批测试用例; 2.能体验到程序的易用性方面的问题; 3.能快速并容易地切入; 4.高手能迅速找出大量错误; 缺点: 1.不是一个系统的方法,过于主观; 2.难以知道测试的覆盖率, 覆盖的范围可能不大, 可能遗漏未知的区域; 3.方法没有通用性,难以复制,因为不同的人的经 验和出发点都不一样。,测试培训,因果图,如果在测试时必须考虑输入条件的各种组合,可使用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来设计测试用例,这就需要利用因果图。 因果图方法最终生成的就是判定表。,测试培训,用因果图生成测试用例的基本步骤: (1) 分析软件规格说明描述中,哪些是原因 (即输入条件或输入条件的等价类),哪些 是结果 (即输出条件),并给每个原因和 结果赋予一个标识符。 (2) 分析软件规格说明描述中的语义,找出 原因与结果之间,原因与原因之间对应的 是什么关系? 根据这些关系,画出因果图。,测试培训,(3) 由于语法或环境限制,有些原因与原因之 间,原因与结果之间的组合情况不可能出 现。为表明这些特殊情况,在因果图上用 一些记号标明约束或限制条件。 (4) 把因果图转换成判定表。 (5) 把判定表的每一列拿出来作为依据,设计 测试用例。,测试培训,在因果图中出现的基本符号 通常在因果图中用Ci表示原因,用Ei表示结果,各结点表示状态,可取值“0”或“1”。“0”表示某状态不出现,“1”表示某状态出现。 主要的原因和结果之间的关系有:,测试培训,表示约束条件的符号 为了表示原因与原因之间,结果与结果之间可能存在的约束条件,在因果图中可以附加一些表示约束条件的符号。,测试培训,例如,有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下: 若投入5角钱或1元钱的硬币,押下橙汁或啤酒的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示零钱找完的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示零钱找完的红灯灭,在送出饮料的同时退还5角硬币。”,测试培训,(1) 分析这一段说明,列出原因和结果 原因: 1. 售货机有零钱找 2. 投入1元硬币 3. 投入5角硬币 4. 押下橙汁按钮 5. 押下啤酒按钮 建立中间结点,表示处理中间状态: 11. 投入1元硬币且押下饮料按钮 12. 押下橙汁或啤酒的按钮 13. 应当找5角零钱并且售货机有零钱找 14. 钱已付清,测试培训,结果: 21. 售货机零钱找完灯亮 22. 退还1元硬币 23. 退还5角硬币 24. 送出橙汁饮料 25. 送出啤酒饮料 (2) 画出因果图。所有原因结点列在左 边,所有结果结点列在右边。 (3) 由于 2 与 3 ,4 与 5 不能同时发 生,分别加上约束条件E。 (4) 因果图,测试培训,(5) 转换成判定表,测试培训,测试培训,测试用例分析方法,Q / A,测试培训,测试用例分析方法,Q & A,测试培训,The end,谢谢大家!,测试培训,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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