1、 黑盒测试分析方法简介制定人: Dannycheng 日期: 审核人: Ivyxiang 日期: 批准人: Jeremywu 日期: 腾 讯 科 技版权所有 侵权必究测试分析方法简介 内部公开版权所有,侵权必究 Page 2 of 26 修订记录日期 修订版本 修改章节 修改描述 修订人2009-07-30 1.0 新建 Danny测试分析方法简介 内部公开版权所有,侵权必究 Page 3 of 26 目 录1 说 明 52 简 介 53 名词解释 54 测试分析前提 65 测试分析方法介绍 65.1 等价类 65.1.1 定义 65.1.2 使用场景 75.1.3 实例 75.2 边界值 8
2、5.2.1 定义 85.2.2 使用场景 85.2.3 实例 85.3 场景分析法 95.3.1 定义 95.3.2 使用场景 95.3.3 实例 105.4 因果图 115.4.1 定义 115.4.2 使用场景 115.4.3 相关术语 115.4.4 实例 135.5 判定表 145.5.1 定义 145.5.2 使用场景 155.5.3 实例 155.6 错误推断法 165.6.1 定义 165.6.2 使用场景 165.6.3 实例 175.7 正交实验设计 185.7.1 定义 185.7.2 使用场景 185.7.3 特点 185.7.4 相关术语 185.7.5 正交表选定规则
3、 195.7.6 设计测试用例步骤 195.7.7 实例 20测试分析方法简介 内部公开版权所有,侵权必究 Page 4 of 26 5.7.8 特殊正交实验 225.8 功能图 225.8.1 定义 225.8.2 使用场景 235.8.3 相关知识 235.8.4 实例 236 分析方法小结 25测试分析方法简介 内部公开版权所有,侵权必究 Page 5 of 26 1 说 明软件的生命周期,是一个过程,这个过程中包含产品的需求,开发,测试等步骤,每一步都对软件质量有极大的影响。测试是软件质量监控的最后一个步骤,测试也是一个过程,这个过程包括有:测试需求分析,测试计划,测试分析,测试方案,
4、测试策略,测试设计,测试执行,测试总结,测试评估,等等过程,每个过程对测试质量都有非常大的影响,其中测试分析,和测试设计是测试质量的关键。测试分析更多体现测试人员的分析能力,体现测试人员对产品 架构,业务,功能,逻辑的掌握程度。测试分析方法是我们分析的依据和基础。掌握好了测试分析方法,测试才会更全面,更完善,产品质量才更有保证。2 简 介测试分析是一个非常大,非常复杂课题,本文主要是对业界通用的几种黑盒测试分析方法进行简介,希望起到抛砖引玉的效果,将通过实例介绍几种分析方法: 等价类 边界值 场景分析 因果图 判定表 错误推测 正交实验设计 功能图3 名词解释因子:我们把测试环境下,对测试对象
5、影响的各种条件称为 影响因子,简称因子。输入:测试用例中,输入特定数据以及对测试对象进行的操作 简称输入。输出:测试用例中,预期结果输出 ,简称为输出。上点::边界上的点,不管它是开区间还是闭区间,就是说,如果该点是封闭的,上点就在域范围内,如果该点是开放的,那上点就在域范围外;内点:在域范围内的任意一个点。离点:离上点最近的一个点,如果边界是封闭的,那离点就是域范围外离上点最近的点,如果边界是开放的,那离点就是域范围内离上点最近的点测试分析方法简介 内部公开版权所有,侵权必究 Page 6 of 26 4 测试分析前提在我们决定给测试对象使用什么测试分析方法之前,我们需要分析出测试对象的各种
6、影响因子,有了影响因子后,才能决定使用什么分析方法,怎样分析因子,不是本文介绍的重点,本文不做详细描述,只是建议多从一下几个方面考虑。 需求分析,需求一般告诉我们最直接的各种因子(这个远远不够,很多隐含因子需要测试人员去挖掘,去分析) 用户场景(用户场景是非常好的分析方法,主要站在用户角度) 功能,逻辑(从功能程序本身考虑,多考虑程序异常) 底层接口(这里需要考虑 接口性能,压力,以及异常) 项目规范及相关业界标准(风格统一和用户习惯) 架构分析(要求测试人员对产品整体熟练掌握) 测试人员的各种猜想(主要是测试的发散思维)5 测试分析方法介绍5.1 等价类5.1.1 定义是把所有可能的输入数据
7、,即功能的输入域划分成若干部分(因子),然后从每一个子集中选取少数具有代表性的数据作为测试用例数据。该方法是一种重要的,常用的黑盒测试方法。等价类划分可有两种不同的情况:有效等价类和无效等价类。A.有效等价类是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。B.无效等价类(这也是我们常说的异常用例)与有效等价类的定义恰巧相反。无效等价类指对程序的规格说明是不合理的或无意测试分析方法简介 内部公开版权所有,侵权必究 Page 7 of 26 义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能有多个
8、5.1.2 使用场景等价类的使用场景在等价两个字上,即所需要输入数据可以分类,每类数据中的输出效果一样的,就可以选取比较典型的数据代替整个类进行测试。5.1.3 实例等价类其实我们经常在使用,有可能大家没有意识到我们在使用,下面举两个实例说明一下。实例一:产品需求:校友注册姓名要求真实,需要判定用户姓名的正确姓,判定条件为“百家姓” 满足“百家姓”的用户认定姓名是真实的。分析说明:测试因子有 1.浏览器 2.操作系统 3.文本框 4.百家姓 因子 1,2 需要进行兼容性测试,因子 3 需要进行 界面测试,安全性测试,因子 4 需要进行功能逻辑测试,这里不对需求分析做详细说明,本条需求包含了多种
9、测试需求,有界面测试,功能逻辑测试,安全性测试,等等,每种测试需求对应一个测试点,这里只对功能逻辑进行说明,分析,影响因子(用户姓名) , 这里的 有效等价类就是百家姓,非等价类非百家姓 百家姓类还可以继续再使用等价类划分两类:一个字的姓,两个字的姓。每类选取一个代表就可以形成百家姓测试用例,这样就不需要测试所有的百家姓了。测试分析测试点:校友注册百家姓测试类型:功能逻辑测试测试因子:用户姓(百家姓 (一个字的姓,两个字的姓,其他 ),非百家姓)输入: 输入注册用户姓名,注册输出: 注册成功或提示不满足百家姓测试设计(用例简单描述):编号 类型 条件 输入 输出 结果1 正常 . 输入“李自成
10、“ ,注册 . .2 正常 . 输入“东方不败” ,注册 . .3 正常 输入“王小二”, 注册 . .4 异常 输入“哈哈哈哈” ,注册 . .测试分析方法简介 内部公开版权所有,侵权必究 Page 8 of 26 说明:很多情况我们分析出了 ,各种测试因子,使用适当的分析方法,很多逻辑异常用例就会自动分析出来。5.2 边界值5.2.1 定义边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充。边界测试,我们的软件很多的错误错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的
11、错误。5.2.2 使用场景边界值是我们最常见的测试分析方法了,使用场景就是在有测试对象有 范围的情况下使用。边界值使用的一般规则 如果输入条件规定了值的范围,则应该取刚达到这个范围的边界值,以及刚刚超过这个范围边界的值作为测试输入数据; 如果输入条件规定了值的个数,则用最大个数、最小个数、比最大个数多 1 格、比最小个数少 1 个的数做为测试数据; 根据规格说明的每一个输出条件,使用规则一; 根据规格说明的每一个输出条件,使用规则二; 如果程序的规格说明给出的输入域或输出域是有序集合(如有序表、顺序文件等) ,则应选取集合的第一个和最后一个元素作为测试用例; 如果程序用了一个内部结构,应该选取
12、这个内部数据结构的边界值作为测试用例; 分析规格说明,找出其他可能的边界条件对边界值的分析,我认为主要就是考虑两个上点,两个离点,一个内点,基本上就能全面覆盖功能了。5.2.3 实例产品需求:校友班级名字防止恶意用户非法注册,特加了长度限制, 班级名字要求至少 3 个,最多 12 个汉字。测试分析方法简介 内部公开版权所有,侵权必究 Page 9 of 26 分析说明:测试因子有 1.输入内容(汉字,英文,数字,特殊符号,安全性脚本) 2.输入长度(32M)结果:21.-上传成功22提示上传照片格式规范23提示上传照片尺寸规范测试分析方法简介 内部公开版权所有,侵权必究 Page 14 of
13、26 EE112II34II222123VV因果图说明: 因子,因子不能同时存在,因子,也不能同时存在, II 是中间过程 因子 1 ,2 产生的结果有 22 因子 3,4 产生的结果有 23 因子 1,2 和因子 3,4 间的组合产生结果 21使用因果图测试的一般步骤: 分析需求,分析出各种因子和输出结果,并给每个原因和结果赋予一个标识符。 分析需求中的语义,找出原因与结果之间, 原因与原因之间对应的关系,根据这些关系,画出因果图。 把因果图转换为判定表。 把判定表的每一列拿出来作为依据,设计测试用例。总结过程:测试需求-因果图 -判定表-测试用例。5.5 判定表5.5.1 定义判定表是分析
14、和表达多逻辑条件下执行不同操作的情况的工具。是指一个表格,用于显示条件和条件导致动作的集合。测试分析方法简介 内部公开版权所有,侵权必究 Page 15 of 26 5.5.2 使用场景在我们一些数据处理问题当中,某些操作的实施依赖于多个逻辑因子的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。判定表很适合于处理这类问题。判定表的优点:能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用判定表能够设计出完整的测试用例集合。缺点:如果因子组合太多,会出现大量用例,导致效率低下。5.5.3 实例产品需求:同 5.4.4分析说明:5.4.4 因果图里面已经将需求中的 各
15、因子,各结果分析出来,并且已经编号。我们只要通过因果图转成判定表就可以了。测试分析测试点:上传头像测试类型:功能逻辑测试分析方法::判定表测试因子:照片类型规格(满足 4 中类型,不满足 4 中类型) 照片尺寸规格(小于等于 2M,大于 2M)输入: 上传照片输出: 三种提示中的一种判定表表格:因子:1.-图片格式规范 (JPG、 JPEG、PNG 、GIF)2.-图片格式不规范 (非 JPG、JPEG、PNG、GIF)3.-图片尺寸规范 (2M)结果:21.-上传成功22提示上传照片格式规范23提示上传照片尺寸规范1 2 3 4 5 6 7 8 9 10 11 12 13 14 151 1
16、1 0 0 0 1 1 1 0 0 0 1 0 1 12 1 0 1 0 0 1 0 0 1 1 0 1 1 0 13 1 0 0 1 0 0 1 0 1 0 1 1 1 1 0因子4 1 0 0 0 1 0 0 1 0 1 1 0 1 1 1测试分析方法简介 内部公开版权所有,侵权必究 Page 16 of 26 结果不存在不存在不存在不存在不存在不存在21232223不存在不存在不存在不存在不存在测试用例0 0 0 0 0 0 1 1 1 1 0 0 0 0 0取测试用例为真(1)的因子和结果形成测试用例测试设计(测试用例可以再细分 )编号 类型 条件 输入 输出 结果1 正常 . 头像照
17、片,格式规范,尺寸规范,上传 . .2 正常 . 头像照片,格式规范,尺寸不规范,上传. .3 正常 头像照片,格式不规范,尺寸规范,上传. .4 正常 头像照片,格式,尺寸均不规范,上传 . .说明:说明:1-4 这个用例 应该说不是最终的用例,里面还可以使用等价类再进行拆分,上面所说的用例表现主要是为了说明判定表的功能。一般情况下,我们的需求需要多少测试分析方法才能形成最终的测试用例。5.6 错误推断法5.6.1 定义定义:基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法。5.6.2 使用场景错误推断主要是日常习惯和经验来进行测试,适用各种测试情况。错误推
18、断的基本思想:列举出程序中所有可能有的错误和容易放生的错误的特殊情况,根据他们选择测试用例,例如:在单元测试时曾列出的许多在模块中常见的错误,以前产品测试中增加发现的错误,这些就是经验的总结,还有,输入数据和输出数据为 0 的测试分析方法简介 内部公开版权所有,侵权必究 Page 17 of 26 情况,输入表格为空格或输入表格只有一行,挖掘需求隐含或没有描述的情况,这些都是容易发生错误的可能的情况,可选择这些情况下的例子作为测试用例。5.6.3 实例产品需求: 校友删除日志功能,校友删除日志的时候,会连同评论以及空间日志一起删除。分析说明:日志 A ,删除日志,功能逻辑测试 因子有 1.日志
19、类型(普通,私密,音乐,图文,flash) 2.日志评论(有评论,无评论 ) 测试分析测试点:删除日志测试类型:功能逻辑测试测试因子:日志类型,日志评论)输入: 删除日志输出: 删除成功测试设计:编号 类型 条件 输入 输出 结果1 正常 . 删除普通日志 . .2 正常 . 删除私密日志 . .3 正常 删除音乐日志 . .4 正常 删除图文日志 . .5 正常 6 正常 7 正常 .等等,不一一描述了以上测试分析,是我们的一些常规分析,但我们的经验告诉我们,这里还有接口,接口经常出现问题,还有空间因素,这里都是异常因素,还可以增加异常用例。测试设计:编号 类型 条件 输入 输出 结果1 异
20、常 . 日志接口异常,删除日志 . .2 异常 . 日志不存在(空间中先删除),删除此日志 . .3 异常 日志存在相同 ID,删除日志 . .4 异常 Cache 删除成功,数据库不成功 . .5 6 7 .测试分析方法简介 内部公开版权所有,侵权必究 Page 18 of 26 说明:错误推断在一定程度上是经验,一定程度上也可以是测试人员的猜想,测试人员应该大胆猜想,发现更深层次的问题。5.7 正交实验设计5.7.1 定义正交实验设计简称正交设计,它是利用正交表科学的安排与分析多因素实验的方法,是最常用的实验分析方法之一,正交实验设计方法:依据 Galois 理论,从大量的(实验)数据(测
21、试例)中挑选适量的,有代表性的点(例) ,从而合理地安排实验(测试)的一种科学实验设计方法。正交试验设计(Orthogonal experimental design)是研究多因素多水平的又一种设计方法,它是根据正交性从全面试验中挑选出部分有代表性的点进行试验,这些有代表性的点具备了“均匀分散,齐整可比”的特点,正交试验设计是分式析因设计的主要方法。是一种高效率、快速、经济的实验设计方法。日本著名的统计学家田口玄一将正交试验选择的水平组合列成表格,称为正交表。例如作一个三因素三水平的实验,按全面实验要求,须进行 33=27种组合的实验,且尚未考虑每一组合的重复数。若按 L9(3)3 正交表安排
22、实验,只需作 9 次,按 L18(3)7 正交表进行 18 次实验,显然大大减少了工作量。因而正交实验设计在很多领域的研究中已经得到广泛应用。5.7.2 使用场景当我们的测试对象存在大量的因子,所有因子参入组合,且每个因子还能取值非常多,这个时候利用因果图等前面的几种分析来设计用例时, 分析起来就非常困难,即便分析出来。往往因果关系非常庞大,以至于据此因果图而得到的测试用例数目多的惊人,给软件测试带来沉重的负担,为了有效地,合理地减少测试的工时与费用,可利用正交实验设计方法进行测试用例的设计。正交实验会选取 一定代表性数据,进行测试,且能分布均匀,正交实验测试对数据的覆盖率不能达到 100%,
23、但所选数据非常有效,覆盖范围大。5.7.3 特点 完成实验要求所需要的次数少 数据点发布很均匀 可用采用工程方法对试验结果进行进一步的分析测试分析方法简介 内部公开版权所有,侵权必究 Page 19 of 26 5.7.4 相关术语1试验因素:影响考核指标取值的量称为试验因素(因子) 。 一般记为:A, B,C, 等定量的因素 可控因素 定性的因素不可控因素 2因素的位级(水平):指试验因素所处的状态。3行数(Runs):正交表中的行的个数,即试验的次数,也是我们通过正交实验法设计的测试用例的个数。4因素数(Factors) :正交表中列的个数,即我们要测试的功能点。5水平数(Levels):
24、任何单个因素能够取得的值的最大个数。正交表中的包含的值为从 0 到数“水平数-1”或从 1 到“水平数” 。即要测试功能点的输入条件。6正交表的形式:L 行数 (水平数 因素数 ) 如:L 8(27) 表示 这里有两个因子,因子最大的水平数为 7,我们要实验 8 次,也就是有 8 个用例。1、正交表的符号: 正交表是运用组合数学理论在正交拉丁名的基础上构造的一种规格化的表格。符号:L n(ji) 。其中:L正交表的符号 n正交表的行数(试验次数,试验方案数) j正交表中的数码(因素的位级数,又叫水平数) i正交表的 列数(试验因素的个数,又叫因子数) N=ji全部试验次数(完全因素位级组合数)
25、5.7.5 正交表选定规则 正交表的列不能小于变量的个数; 正交表的水平数不能小于因子的最大水平数5.7.6 设计测试用例步骤A. 提取功能说明,构造因子-状态表把影响实验指标的条件称为因子.而影响实验因子的条件叫因子的状态.利用正交实验设计方法来设计测试用例时,首先要根据被测试软件的规格说明书找出影响其功能实现的操作对象和外部因素,把他们当作因子,而把各个因子的取值当作状态.对软件需求规格说明中的功能要求进行划分,把整体的概要性的功能要求进行层层分解与展开,分解成具体的有相对独立性的基本的功能要求.这样就可以把被测试软件中所有的因子都确定下来,并为确定个因子的权值提供参考的依据.确定因子与状
26、态是设计测试用例的关键.因此要求尽可能全面的正确的确定取值,以确保测试用例的设计作到完整与有效。B. 加权筛选,生成因素分析表对因子与状态的选择可按其重要程度分别加权.可根据各个因子及状态的作用大小,出现频率的大小以及测试的需要,确定权值的大小。C. 利用正交表构造测试数据集正交表的推导依据 Galois 理论(这里省略,需要时可查数理统计方面的教材) 。利用正交实验设计方法设计测试用例,比使用等价类划分,边界值分析,因果图等方法有以下优点:节省测试工作工时;可控制生成的测试用例数量;测试用例具有一定测试分析方法简介 内部公开版权所有,侵权必究 Page 20 of 26 的覆盖率。5.7.7
27、 实例产品需求:正交分析方法的需求,借用上次 fred 曾经写的实例:例如:我们在进行 flash 相关功能测试的时候,需要做兼容性测试,这个时候我们需要考虑这几个条件的组合。操作系统(vista,xp,window7) 浏览器有(IE6,IE7,FF) ,flash 版本(flash8.0,flash9.0,flash10.0)。如果每种组合都测试到,我们需要进行3*3*3 一共 27 种组合测试,这样会非常复杂和要大量的人力。分析说明:使用正交分析来分析上述需求。因子有三个 操作系统,浏览器,flash 版本 A-操作系统 B-浏览器 C-flash 版本 A1-vista A2-xp A
28、3-window7B1-IE6 B2-IE7 B3-FFC1-flash8.0 C2-flash9.0 C3-flash10选择正交表:考虑因素(变量)的个数 考虑因素水平(变量的取值)的个数 考虑正交表的行数 取行数最少的一个Ln(ji) j 水平数,值为 3, 最大因子的值有三个,这个值就是 3I 因子数,值为 3, 有三个因子查看正交表链接地址:http:/ j=3 i=4 满足这个条件的 正交表为:L 9(34)选择正交表L9(34)因子一 因子二 因子三 因子四1 0 0 0 02 0 1 1 23 0 2 2 14 1 0 1 15 1 1 2 06 1 2 0 2测试分析方法简介
29、 内部公开版权所有,侵权必究 Page 21 of 26 7 2 0 2 28 2 1 0 19 2 2 1 0由于我们只有三个因子,所以可以忽略掉第四个因子因子一 因子二 因子三1 0 0 02 0 1 13 0 2 24 1 0 15 1 1 26 1 2 07 2 0 28 2 1 09 2 2 1将值代入下列符号中A1-0 A2-1 A3-2B1-0 B2-1 B3-2C1-0 C2-1 C3-2得到组合因子一 因子二 因子三1 Vista IE6 FLASH82 Vista IE7 FLASH93 Vista FF FLASH104 XP IE6 FLASH95 XP IE7 FLA
30、SH106 XP FF FLASH87 WIN7 IE6 FLASH108 WIN7 IE7 FLASH89 WIN7 FF FLASH9测试分析方法简介 内部公开版权所有,侵权必究 Page 22 of 26 测试分析测试点:兼容性分析测试类型:正交分析测试因子:操作系统,浏览器,flash 版本输入: 输出:测试设计(省):编号 类型 条件 输入 输出 结果1 正常 .2 正常 .3 正常 4 正常 说明:无5.7.8 特殊正交实验正交分析的情况比较复杂,上述例子刚好,各因子,水平数刚好相同,如果各因子的水平数不相同呢,这个时候我们该怎样选择正交表呢,最简单方法选择 选择正交表因子数和水平
31、数均大于所测试的对象的因子数和水平数,再像上面的例子一样剔除没有水平和因子,即可得出基本的测试用例,再补充相应的一些测试用例基本可以达到一定程度的覆盖,实例略。5.8 功能图5.8.1 定义一个程序的功能说明通常由动态说明和静态说明组成.动态说明描述了输入数据的次序或转移的次序.静态说明描述了输入条件与输出条件之间的对应关系.对于较复杂的程序,由于存在大量的组合情况,因此,仅用静态说明组成的规格说明对于测试来说往往是不够的.必须用动态说明来补充功能说明.功能图方法是用功能图 FD 形式化地表示程序的功能说明,并机械地生成功能图的测试用例. 功能图模型由状态迁移图和逻辑功能模型构成.状态迁移图用
32、于表示输入数据序列以及相应的输出数据.在状态迁移图中,由输入数据和当前状态决定输出数据和后续状态.逻辑功能模型用于表示在状态中输入条件和输出条件之间的对应关系.逻辑功能模型只适合于描述静态说明,输出数据仅由输入数据决定.测试用例则是由测试中经过的一系列状态和在每个状态中必须依靠输入/ 输出数据满足的一对条件组成 .功能图方法其实是是一种黑盒白盒混合用例设计方法。(功能图方法中,要用到逻辑覆盖和路径测试的概念和方法,其属白盒测试方法中测试分析方法简介 内部公开版权所有,侵权必究 Page 23 of 26 的内容.逻辑覆盖是以程序内部的逻辑结构为基础的测试用例设计方法.该方法要求测试人员对程序的
33、逻辑结构有清楚的了解.由于覆盖测试的目标不同,逻辑覆盖可分为:语句覆盖,判定覆盖,判定-条件覆盖,条件组合覆盖及路径覆盖.下面我们指的逻辑覆盖和路径是功能或系统水平上的,以区别与白盒测试中的程序内部的.)5.8.2 使用场景功能图主要使用在测试对象有存在一系列路径或状态变更,等复杂情况。功能图试,主要是描述的一个功能,这个功能中可能有多个对象,多个测试点。功能图的使用原则就是使用白盒测试方法(路径覆盖来) 分析出每条路径,正对每条路径,每个测试点使用黑盒方法(等价类,边界值 .)分析每个功能点,来实现功能 100%覆盖。5.8.3 相关知识功能图:由状态迁移图和布尔函数组成.状态迁移图用状态和
34、迁移来描述.一个状态指出数据输入的位置(或时间),而迁移则指明状态的改变.同时要依靠判定表或因果图表示的逻辑功能。测试用例生成方法:从功能图生成测试用例,得到的测试用例数是可接受的. 问题的关键的是如何从状态迁移图中选取测试用例. 若用节点代替状态,用弧线代替迁移,则状态迁移图就可转化成一个程序的控制流程图形式.问题就转化为程序的路径测试问题(如白盒测试)问题测试用例生成规则为了 把状态迁移(测试路径)的测试用例与逻辑模型(局部测试用例)的测试用例组合起来,从功能图生成实用的测试用例,须定义下面的规则.在一个结构化的状态迁 移(SST)中,定义三种形式的循环:顺序,选择和重复.但分辨一个状态迁
35、移中的所有循环是有困难的.(其表示图形省略)。从功能图生成测试用例的过程生成局部测试用例:在每个状态中,从因果图生成局部测试用例.局部测试用例由原因值(输入数据)组合与对应的结果值(输出数据或状态)构成。测试路径生成:利用上面的规则(三种)生成从初始状态到最后状态的测试路径。 测试用例合成:合成测试路径与功能图中每个状态中的局部测试用例.结果是初始状态到最后状态的一个状态序列,以及每个状态中输入数据与对应输出数据的组合测试分析方法简介 内部公开版权所有,侵权必究 Page 24 of 26 5.8.4 实例功能图实例暂时在我们测试的产品中没有找到特别时候的例子,借用其他的例子来说明一下。假设我
36、们做 Windows 的屏幕保护程序测试(有密码包含功能),起程序流程图如下:图 5.8-1,状态迁移图如图: 5.8-2 所示,对应的逻辑空闲状态等待密码输入ESC 键按下显示密码输入框正确的密码屏幕初始化不正确的密码清空密码输入框图 5.8-1空闲状态Esc 键按下等待输入密码正确密码输入不正确密码输入图 5.8-2测试分析方法简介 内部公开版权所有,侵权必究 Page 25 of 26 逻辑功能表Esc 键按下 11其他键按下 12正确的密码输入 13输入 错误的密码输入 14显示密码输入框 O1输出 密码错误提示信息 O2空闲状态 S1等待输入密码 S2返回空闲状态 S3状态 初始化屏
37、幕 S4测试用例生成:输入+状态 组合,利用前面的黑盒分析方法就可以分析测试用例了测试设计:编号 类型 条件 输入 输出 结果1 正常 . 空闲状态,按 Esc 键 2 正常 . 3 正常 4 正常 .功能图分析掌握两点: 功能图,通过路径覆盖,找到所有功能路径 单个路径单点,采用传统分析方法分析6 分析方法小结Web 产品相对其他产品功能比较简单,掌握好常用的测试分析方法,基本上就能进行有效的测试分析了,在测试分析中,不要死搬硬套,应该灵活的运用多种分析方法,我们的一个功能点,一个测试点,经常是一种测试分析不能满足的,大多情况都是多种测试方法的综合运用。一定要多思考,多实践,多灵活的运用各种方法。做好测试分析,不但要掌握好各种测试分析方法,也应该做好下面几点: 充分理解需求,大部分的测试因子来自需求。 换位思考,站在用户角度看问题。 多方位,分析(不仅仅考虑功能,性能方面也可以多多考虑) 分析分析,有条理性测试分析方法简介 内部公开版权所有,侵权必究 Page 26 of 26 多交流,多沟通(不只是和产品,开发交流,项目组内部也需要多交流) 多学习,多总结鉴于个人掌握的程度不高,本文中不乏疏漏很错误, ,欢迎大家指正,一起学习,谢谢