测试用例设计方法交流_第1页
测试用例设计方法交流_第2页
测试用例设计方法交流_第3页
测试用例设计方法交流_第4页
测试用例设计方法交流_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

1、测试用例设计方法及实际应用Lona 2008年7月话题 一、测试用例的基本概念 二、测试用例的设计方法 三、测试用例的实际应用交流期望 了解测试用例的定义和用途 理解常用的测试用例设计方法 针对具体项目,编写有效的测试用例一、测试用例的基本概念 1.1 测试用例的定义 1.2 测试用例的作用 1.3 测试用例的编写原则1.1 什么是测试用例?测试用例(Test Case)目前没有经典的定义。比较通常的说法是:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。也可以简单描述为: (1)测试用

2、例是一个包含输入和预期输出的与程序行为有关的标识(2)软件测试的本质就是针对要测试的内容确定一组测试用例(3)测试用例是由测试中经过的一系列状态和在每个状态中必须依靠输入/输出数据满足的一对条件组成的1.2 测试用例有什么作用? 指导测试的实施 规划测试数据的准备 编写测试脚本的设计规格说明书 评估测试结果的度量基准 分析缺陷的标准1.3 测试用例的编写原则 准确性 测试用例的设计确实符合测试需求,并且必须准确地说明测试的内容 简洁性 测试用例的设计中必须包含完成测试必要的步骤、要素,不需要加入多余的、可有可无的步骤、要素 可重用性 测试用例的设计要求测试是可控的,它能够使任何人在任何时间进行

3、测试都能获得同样的结果 适用性 测试用例对于当前的测试环境和测试者而言是可以执行的二、测试用例设计方法二、测试用例设计方法 2.1 白盒测试逻辑覆盖测试方法 语句覆盖 分支覆盖 条件覆盖 分支-条件覆盖 路径覆盖条件测试方法数据流测试方法循环测试方法2.2 黑盒测试等价类划分法边界值分析法错误推测法因果图判定表驱动法正交试验设计法功能图法场景法。 在具体工作工作中要采用什么方法,需要针对项目的特点加以适当的选择。在实际高水平的测试中,往往需要综合使用各种方法以有效的提高测试效率和测试覆盖度。测试用例设计方法选择策略测试用例设计方法选择策略以下介绍的是各种测试用例设计方法选择的综合策略,供大家参

4、考。(1)首先进行等价类划分,包括输入条件和输出条件的等价划分,将无限测试变成有限测试,这是减少工作量和提高测试效率最有效的方法。(2)在任何情况下,都必须使用边界值分析法。经验表明,用这种方法设计出的测试用例发现程序错误的的能力最强。(3)错误推测法是基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性地设计测试用例,这需要依靠测试工程师的智慧和经验。测试用例设计方法选择策略测试用例设计方法选择策略 (4)对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度。如果没有达到要求的覆盖标准,应当再补充足够的测试用例。 (5)如果程序的功能说明中含有输入条件的组合情况,则一开始就可以选用因果

5、图法和判定表驱动法。 (6)对于参数配置类的软件,要用正交试验法选择较少的组合方式达到最佳效果。 (7)利用功能图法,我们可以通过不同时期条件的有效性设计不同的测试数据。 (8)对于业务流清晰的系统,可以利用场景法贯穿整个测试案例设计过程,在案例中综合使用各种测试方法。一、等价类划分法 等价类划分是将程序的输入域或输出域的不同区间划分为不同的数据类,以便导出测试用例 每个等价类所揭示的程序错误都是等价的 要求此方法的测试用例能各自发现一类错误,从而减少必须开发的测试用例数 数学含义A=x=B C=y=1&=50” 两个无效等价类为“50” 如果输入条件是一个布尔量,则可以确定一个有效等

6、价类和一个无效等价类;例如:下单页面的收货地址填写,只有实物商品才会出现,非实物商品不会出现。确定等价类的原则 如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类(即遵守规则的数据)和若干无效等价类(从不同角度违反规则的数据)。例如: 测试密码域,要求密码必须是数字或字母 有效等价类为“密码是数字和字母的组合” 无效等价类为“密码包括中文”、“密码包括其它符号”等 如果确知已划分的等价类中的各元素在程序中的处理方式不同,则应进一步划分成更小的等价类。确定等价类的原则 如果规定了输入数据的一组值,而且程序对每个输入值分别进行处理,此时可为每一个输入值确立一个有效等价类,此外,针对这组值确

7、立一个无效等价类,它是所有不允许输入值的集合;例如:财付通页面的登录用户名,可以输入qq号码和邮箱。因此可以分别对这两个输入进行等价类分析。等价类测试用例设计 分析输入输出 划分有效等价类、无效等价类 设计测试用例,使其尽可能多的覆盖有效等价类 设计测试用例,使其尽可能多的覆盖无效等价类 二、边界值分析法 缺陷往往遗漏在角落里,聚集在边界上 选取输入条件的边界区域作为测试数据比中间的数据更加容易发现错误 边界值分析法是一种补充等价类划分的测试用例设计技术 不是对某个等价类随便挑一个数据做测试数据,而是选一个或多个边界数据,使得该等价类的每个边界都被测试到 不仅考虑输入数据,而且考虑输出数据 数

8、学含义A=x=B C=y=D确定边界值的原则 如果输入条件或输出条件规定了值的范围并且有效条件包括了值的边界,可分别对边界和略超出边界取值,例如: 数据范围是1=x=50正整数 边界值取为:1、50、0、51 如果输入条件或输出条件规定了值的范围并且有效条件不包括了值的边界,可分别对边界和略处于边界内取值,例如: 数据范围是1x50正整数 边界值取为:1、50、2、49原则原则:如果输入条件规定了值的个数,则用最大个数、最小个数、比最大多1、比最小小1的数作为测试输入数据;例如:店铺自定义分类操作的序号1,255) 边界值取为: 255、1、254、0确定边界值的原则 如果输入或输出域是个有序

9、的集合(如顺序文件、表格等),应注意选取有序集的第一个和最后一个元素以及集合外但靠近集合的元素作为边界 ,例如: 输入文件名介于file0101file0120之间 边界值取为file0100,file0101,file0120,file0121 如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例 根据规格说明的每个输出条件,使用前面的原则 分析规格说明,找出其他可能的边界条件三、因果图法介绍 定义:是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。 因果图法产生的背景:(1)等价类划分和边界值分析方法都是

10、着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。(2)如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)。因果图法介绍(1)4种符号分别表示了规格说明中向4种因果关系 :因果图的四种符号:“恒等”因果图的四种符号:“非”因果图的四种符号:“或”因果图的四种符号:“与” 非非c1e1或或c1e1c2c3与与c1e1c2c3因果图法介绍(

11、2)输入状态相互之间还可能存在某些依赖关系,称为约束。例如, 某些输入条件本身不可能同时出现。输出状态之间也往往存在约束。在因果图中,用特定的符号标明这些约束。对于输入条件的约束有四种以下4类: E约束(异):a和b中至多有一个可能为1,即a和b不能同时为1。 I约束(或):a、b和c中至少有一个必须是1,即a、b和c不能同时为0。 O约束(唯一): a和b必须有且仅有一个为1。 R约束(要求):a是1时,b必须为1,即不可能a是1时b是0。因果图法介绍 输出结果只有M约束约束(强制):若结果a是1时,则b的结果强制为0。M M 强强制制ab因果图法步骤 分析软件规格说明描述中的因果关系(输入

12、与输出的因果关系) 找出原因与结果、原因与原因之间的对应关系,画出因果图 在因果图上标记约束或限制条件 把因果图转化为判定表 将判定表中的每一列拿出来设计测试用例四、判定表介绍 在一些数据处理问题中,某些操作依赖多个逻辑条件的取值。处理这类问题的一个非常有力的分析和表达工具是判定表。 能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用判定表能够设计出完整的测试用例集合。 在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。判定表很适合于处理这类问题。判定表介绍判定表由四个部分组成:判定表由四个部分组成:条件桩

13、(Condition Stub)动作桩(Action Stub)条件项(Condition Entry)动作项(Action Entry)规则及规则合并 规则:任何一个条件组合的特定取值及其相应要执行的操作称为规则。在判定表中贯穿条件项和动作项的一列就是一条规则。显然,判定表中列出多少组条件取值,也就有多少条规则,既条件项和动作项有多少列。 化简:就是规则合并有两条或多条规则具有相同的动作,并且其条件项之间存在着极为相似的关系。判定表的建立步骤 确定规则的个数.假如有n个条件。每个条件有两个取值(0,1),故有2n种规则。 列出所有的条件桩和动作桩。 填入条件项。 填入动作项。等到初始判定表。

14、 简化.合并相似规则(相同动作)。因果图法案例 第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改。但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。因果图法案例 原因: 1第一列字符是A 2第一列字符是B 3第二列字符是一数字 11 第一列字符是A或是B 结果: 21修改文件 22给出信息L 23给出信息M因果图法案例11122132322因果图法案例判定表案例五、功能图介绍 功能图方法是一种黑盒、白盒混合用例设计方法,是功能图FD形式化地表示程序的功能说明,并机器地生成功能图的测试用例。 功能图模型由状态迁移图和逻辑功能模型构成。(1)状态

15、迁移图用于表示输入数据序列以及相应的输出数据。在状态迁移图中,由输入数据和当前状态决定输出数据和后续状态。(2)逻辑功能模型用于表示在状态输入条件和输出条件之间的对应关系。逻辑功能模型只适合于描述静态说明,输出数据仅由输入数据决定。 测试用例则由测试中的一系列状态和在每个状态中必须依靠输入/输出数据满足的一对条件组成。 功能图的生成方法 从功能图生成测试用例,得到的测试用例数是可以接受的。问题的关键是如何从状态迁移图中选取测试用例。若用节点代替状态,用弧线代替迁移,则状态迁移图就可转化成一个程序的控制流程图形式。问题就转化为程序的路径测试问题了 。 为了把状态迁移的测试用例与逻辑模型的测试用例

16、相组合起来,从功能图生成生成实用的测试用例,需定义下面的规则。在一个结构化的迁移(SST)中,定义三种形式的循环:顺序、选择和重复。但分辨一个状态迁移中的所有循环是有困难的。从功能图生成测试用例的过程 A、生成局部测试用例:在每个状态中,从因果图生成局部测试用例。局部测试用例由原因值(输入数据)组合与对应的结果值(输出数据或状态)构成。 B、测试路径生成:利用上面的三种规则生成从初始状态到最后状态的测试路径。 C、测试用例合成: 合成测试路径与功能图中每个状态的局部测试用例。结果是初始状态到最后状态的一个状态序列,以及每个状态中输入数据与对应输出数据的组合。 D、测试用例的合成算法:采用合成构

17、造树。六、正交实验设计方法 利用因果图来设计测试用例时, 作为输入条件的原因与输出结果之间的因果关系,有时很难从软件需求规格说明中得到。往往因果关系非常庞大,以至于据此因果图而得到的测试用例数目多的惊人,给软件测试带来沉重的负担,为了有效地,合理地减少测试的工时与费用,可利用正交实验设计方法进行测试用例的设计。 正交实验设计方法:依据Galois理论,从大量的(实验)数据(测试例)中挑选适量的,有代表性的点(例),从而合理地安排实验(测试)的一种科学实验设计方法.类似的方法有:聚类分析方法,因子方法方法等.正交表的构成 行数(Runs):正交表中的行的个数,即试验的次数 因素数(Factors

18、):正交表中列的个数。 水平数:任何单个因素能够取得的值的最大个数。 正交表的表示形式: L行数 (水平数因素数)用正交表设计测试用例的步骤 1 有哪些因素(变量) 2 每个因素有哪几个水平(变量的取值) 3 选择一个合适的正交表 4 把变量的值映射到表中 5 把每一行的各因素水平的组合做为一个测试用例 6 加上你认为可疑且没有在表中出现的组七、场景设计方法在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。这种在软件设计方面的思想也可以引入到软件测试中,可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时使

19、测试用例更容易理解和执行。 基本流和备选流:如下图所示,图中经过用例的每条路径都用基本流和备选流来表示,直黑线表示基本流,是经过用例的最简单的路径。备选流用不同的色彩表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中(如备选流1和3);也可能起源于另一个备选流(如备选流2),或者终止用例而不再重新加入到某个流(如备选流2和4)。 基本流和备选流三、测试用例的实际应用三、测试用例的实际应用一个好的测试用例,需要满足一个好的测试用例,需要满足16个字:个字:结构清晰、结构清晰、 内容准确、易于统计、便于维护内容准确、易于统计、便于维护 3.1 测试用例设计的层级结构 3.

20、2 测试用例的基本格式 3.3 测试用例内容的组织和评审 3.4 测试用例的执行3.1 测试用例的层级结构测试用例的层级结构 任何一个的项目,不管其难以程度,都需要将它由大到小,由复杂到简单去划分。一个项目从上到小可以出现多个层级关系:WookBook::模块,各产品根据各自特性划分成不同的子模块WookSheet:子模块,在各模块基础上分成不同的细分模块Secnario:A set of test cases ensure that the business process flows are tested from end to end. They may be independent t

21、ests or a series of tests that follow each other, each dependent on the output of the previous one.Par:同一个细分模块中的层次划分,比如按照每个页面一个Part进行细分:Case:用例,针对一个或者多个Objective的具体测试用例Pre Requisite:包括整个子模块以及每个测试用例的测试前提条件Test Procedure:每个分组中的测试用例执行顺序,当测试用例顺序执行时可省略WookBook,WookSheet, Secnario, Part, Case的层级关系 举例说明用例层

22、级关系(一)举例说明用例层级关系(一)1. 首先我们用一个excel类型的WookBook来定义这个项目交易管理。2. 在一个WookBook中,用多个WookSheet去定义项目中的主要功能点3. 对模块中需要根据不同场景处理的功能点,再细分出它的场景模块。如在交易流程管理模块,因为商品类型的不同,所涉及到的场景和功能也会有各自的特点:举例说明用例层级关系(二)举例说明用例层级关系(二)4. 在一个WookSheet里面,根据流程和子功能划分成不同的part, 例如在交易流程_普通商品这个sheet里面,划分以下part:注:在Part中,如果需要继续划分,可以允许Sub-Part举例说明用

23、例层级关系(三)举例说明用例层级关系(三) 5. 在每个Part中,设计唯一的Case。Case是测试用例中的最小单位,不可再分。这样,一个层次鲜明,条理分明的测试用例的结构框架就出来了。拥有清晰结构的测试用例,不仅阅读方便,同时也为测试用例的管理,提供有效的目录组织。3.2 测试用例的格式 软件测试用例的基本要素包括:测试标题、重要级别、测试输入、操软件测试用例的基本要素包括:测试标题、重要级别、测试输入、操作步骤、预期结果。作步骤、预期结果。用例编号: 测试用例的编号有一定的规则,比如系统测试用例的编号这样定义规则: PROJECT1-ST-001 ,命名规则是项目名称测试阶段类型(系统测

24、试阶段)编号。定义测试用例编号,便于查找测试用例,便于测试用例的跟踪。 测试标题: 对测试用例的描述,测试用例标题应该清楚表达测试用例的用途。比如 “ 测试用户登录时输入错误密码时,软件的响应情况 ” 。 重要级别: 定义测试用例的优先级别,可以笼统的分为 “ 高 ” 和 “ 低 ” 两个级别。一般来说,如果软件需求的优先级为 “ 高 ” ,那么针对该需求的测试用例优先级也为 “ 高 ” ;反之亦然, 测试输入: 提供测试执行中的各种输入条件。根据需求中的输入条件,确定测试用例的输入。测试用例的输入对软件需求当中的输入有很大的依赖性,如果软件需求中没有很好的定义需求的输入,那么测试用例设计中会遇到很大的障碍。 操作步骤: 提供测试执行过程的步骤。对于复杂的测试用例,测试用例的输入需要分为几个步骤完成,这部分内容在操作步骤中详细列出。 预期结果: 提供测试执行的预期结果,

温馨提示

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

评论

0/150

提交评论