第十章黑盒测试用例设计更改_第1页
第十章黑盒测试用例设计更改_第2页
第十章黑盒测试用例设计更改_第3页
第十章黑盒测试用例设计更改_第4页
第十章黑盒测试用例设计更改_第5页
免费预览已结束,剩余184页可下载查看

下载本文档

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

文档简介

第十章黑盒测试用例设计IT@ANY本课程的主要内容什么是测试用例如何设计测试用例测试用例书写规范测试用例评审测试用例的设计方法测试用例设计实战本章目标了解什么是测试用例掌握测试用例的设计方法(重点)能够使用这些方法设计测试用例(重点)第一部分 什么是测试用例如何设计测试用例测试用例书写规范测试用例评审测试用例的设计方法测试用例设计实战什么是测试用例GrenfordJ.Myers在《TheArtofSoftwareTesting》一书中提出:一个好的测试用例是指很可能找到迄今为止尚未发现的错误的测试测试用例是为特定的目的而设计的一组测试输入、执行条件和预期结果。测试用例是执行的最小实体。简单地说,测试用例就是设计一个场景,使软件程序在这种场景下,必须能够正常运行并且达到程序所设计的执行结果。

软件测试的行为活动做一个科学化的组织归纳.目的是能够将软件测试的行为转化成可管理的模式;同时测试用例也是将测试具体量化的方法之一测试用例在软件测试中发挥的作用指导测试的实施,提高测试效率规划测试数据的准备评估测试结果的度量基准分析缺陷的标准测试用例的特性测试用例对需求覆盖的完整性测试用例的有效性测试用例的易理解性测试用例的清晰性测试用例的可复用性和可维护性测试用例的生命周期版本确定下来,需求完成并收到评审邮件时,就分配专门的测试人员熟悉需求并为用例设计做准备根据产品需求或开发需求提取测试需求点,保证测试用例对需求的覆盖需求评审后及时对测试需求进行调整根据测试需求设计测试用例,并且测试用例要覆盖到每个测试需求测试用例的生命周期用例完成后提前1-2天发给相关人员阅读并发评审通知用例评审结束后,需要对有问题的用例及时调整,调整后的用例可单独导出来,邮件给所有相关评审人员再次确认将用例拖入执行计划,准备用例执行,执行可分两种情况,自己设计自己执行,或者交换执行,对于有条件的项目最好是交换执行执行过程中发现用例遗漏,需及时补充,如无遗漏,用例执行通过,整个生命周期结束测试用例的设计要素用例ID(必需项)用例概述(必需项)用例优先级(必需项)前置条件(可选项)操作步骤(必需项)测试数据(必需项)预期结果(必需项)备注(可选项)对应BUG_ID(如果该用例有对应的BUG,此项必需)测试用例示例用例ID用例概述优先级前置条件操作步骤测试数据预期结果备注BUG_IDlogin-001用有效的用户名和密码,登录成功高1.已成功注册有效的用户名2.用户名和密码匹配1.分别在用户名和密码栏位输入正确的用户名和密码

2.点【登录】按钮用户名:aaa

密码:1234561.登录成功,自动进入主界面

login-002用户名和密码均为空,登录失败中

1.用户名和密码栏位为空

2.点【登录】按钮用户名:空

密码:空1.登录失败,系统给出错误提示信息

login-003用户名正确,密码错误,登录失败中

1.分别在用户名和密码栏位输入正确的用户名和错误的密码

2.点【登录】按钮用户名:aaa

密码:空、1234571.登录失败,系统给出错误提示信息

login-004用户名错误,密码正确,登录失败中

1.分别在用户名和密码栏位输入错误的用户名和正确的密码

2.点【登录】按钮用户名:aaab、空

密码:1234561.登录失败,系统给出错误提示信息

login-005用户名和密码错误,登录失败中

1.分别在用户名和密码栏位输入错误的用户名和错误的密码

2.点【登录】按钮用户名:aaab

密码:1234571.登录失败,系统给出错误提示信息

第二部分 什么是测试用例如何设计测试用例测试用例书写规范测试用例评审测试用例的设计方法测试用例设计实战如何设计测试用例以一个注册页面为例讲述测试用例设计思路测试用例的书写规范用例概述:简明扼要对该用例设计的目的进行描述用例优先级:一些功能性的、流程性、业务规则的、接口的用例优先级最高,必须执行,一些页面的用例优先级会相对较低,可选择执行,优先级别需要视需求而定。优先级必须定义,这对建立测试执行计划有很大的帮助前置条件:对于当前的用例,必须要满足一个前提条件才能完成,这些条件如果写在操作步骤中就会很繁琐,就可以单独放置在前置条件中。前置条件可以是一个说明,一个注意事项,也可以是一个前面的case,具体视情况而定。

测试用例的书写规范操作步骤:尽量详细,步骤鲜明,语言简洁,为清晰的描述最终结果。操作步骤中可适当包含一些中间结果。如果该中间结果不需要验证,只是为了用例的连贯性,对当前步骤做进一步说明,就可以包含在当前操作步骤后面。如果该中间结果需要作为一个检查点进行检查,则需要设计单独的用例测试数据:基本上每个测试用例都是需要有测试数据支持的,该项必不可少,有的时候可能是多种情况的测试数据对应同一个结果,这就需要每种情况准备一组数据。比如说,用户年龄范围必需为【18-25】岁之间,才可以注册XXX游戏,若满足【18-25】这个区间范围,我们可以用三个数据,18岁、20岁、25岁,这三个数据时都必须要验证的。

如果不能给出明确的测试数据,可以提供测试数据准备条件,准备了几组数据,就相当于要执行这个Testcase几次。

测试用例书写规范预期结果:准确描述出用例的结果,结果具有唯一性。尽量保证一个用例只有一个主要结果,可以包含其他辅助结果,也就是主结果完成后出现的其他现象,没有必要另建一个测试用例的,比如说xxx模块添加用户成功(主结果),系统自动跳转到用户列表页面(辅助结果)备注:一些特殊的说明地方BUG_ID:这个主要用于测试用例执行过程中,尽量不要怕麻烦,每发现一个BUG就要把BUG_ID记录到这个用例中,一来可以我们的BUG_ID和测试用例连接起来,二来便于对用例的有效性作统计。第三部分 什么是测试用例如何设计测试用例测试用例书写规范测试用例评审测试用例的设计方法测试用例设计实战测试用例评审为什么要进行评审确保用例更全面的覆盖需求使用例的结构更清晰规范对需求的了解,提高用例质量什么时间进行评审第一,在用例的初步设计完成之后进行评审第二,在整个详细用例全部完成之后进行二次评审

测试用例评审参与评审人员部门评审:测试部门全体成员参与的评审。公司评审:这里包括了项目经理、需求分析人员、架构设计人员、开发人员和测试人员、QA。客户评审:包括了客户方的开发人员和测试人员。这种情况在外包公司比较常见。评审的方式

评审之前1-2天把用例设计的相关文档发送给评审对象进行前期的学习和了解,以节省沟通成本。召开评审会议。与会者在设计人员讲解之后给出意见和建议,同时进行详细的评审记录。通过邮件与相关人员沟通通过即时工具直接与相关人员交流测试用例评审内容用例设计的结构安排是否清晰、合理,是否利于高效对需求进行覆盖。优先级安排是否合理。是否覆盖测试需求上的所有功能点。用例是否具有很好可执行性。例如用例的前提条件、执行步骤、输入数据和期待结果是否清晰、正确;期望结果是否有明显的验证方法。是否已经删除了冗余的用例。测试用例评审内容是否包含充分的负面测试用例。充分的定义,如果在这里使用2-8法则,那就是4倍于正面用例的数量,毕竟一个健壮的软件,其中80%的代码都是在“保护”20%的功能实现。是否从用户层面来设计用户使用场景和使用流程的测试用例。是否简洁,复用性强。例如,可将重复度高的步骤或过程抽取出来定义为一些可复用标准步骤。测试用例评审评审退出准则在评审活动中会收集到用例的反馈信息,在此基础上进行用例更新,直到通过评审。第四部分 什么是测试用例如何设计测试用例测试用例书写规范测试用例评审测试用例的设计方法测试用例设计实战第一次测试NextDate黑盒测试法的概念黑盒测试(功能测试或数据驱动测试):在测试时,把被测程序视为一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下进行。黑盒测试法的概念采用黑盒测试的目的主要是在已知软件产品所应具有的功能的基础上进行检查程序功能能否按需求规格说明书的规定正常使用,测试各个功能是否有遗漏,检测性能等特性要求是否满足。检测人机交互是否错误,检测数据结构或外部数据库访问是否错误,程序是否能适当地接收输入数据而产生正确的输出结果,并保持外部信息(如数据库或文件)的完整检测程序初始化和终止方面的错误。黑盒测试法的概念黑盒测试并不是无知的测试。黑盒测试意味着产品内部知识在测试中不起重要作用。黑盒测试强调有关软件的用户和环境知识。黑盒测试用例设计方法等价类划分边界值分析决策表法因果图错误推测法正交试验法场景法等价类划分等价类划分法是一种重要的、常用的黑盒测试方法,它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性把所有可能的输入数据(有效的和无效的)划分成若干个等价的子集(称为等价类),使得每个子集中的一个典型值在测试中的作用与这一子集中所有其它值的作用相同可从每个子集中选取一组数据来测试程序等价类划分举例:设计这样的测试用例,来实现一个对所有实数进行开平方运算(y=sqrt(x))的程序的测试。思路: 由于开平方运算只对非负实数有效,这时需要将所有的实数(输入域x)进行划分,可以分成:正实数、0和负实数。 假设我们选定+1.55558代表正实数,-2.568代表负实数,则为该程序设计的测试用例的输入为+1.55558、0和-2.568。等价类划分有效等价类 对于程序的需求规格说明书来说是合理的、有意义的输入数据组成的集合。利用有效等价类可以检验程序是否实现了规格说明书中所要求的功能或性能。 (正面用例)无效等价类 与有效等价类正好相反,无效等价类指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。无效等价类至少应有一个,也可能有多个。 (负面用例)划分等价类的标准完备测试、避免冗余划分等价类重要的是:集合的划分,划分为互不相交的一组子集,而子集的并集是整个集合并集是整个集合:完备性子集互不相交:保证一种形式的无冗余性从同一类中选择一个测试用例。同一等价类中,往往处理相同,相同处理映射到"相同的执行路径"。等价类划分如何划分等价类: 首先从程序的规格说明书中找出各个输入条件,再为每个输入条件划分两个或多个等价类,形成若干的互不相交的子集。采用等价类划分法设计测试用例通常分两步进行:(1)确定等价类,列出等价类表。(2)确定测试用例。等价类划分的原则原则1:在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。如:在成绩表中输入是学生成绩,范围是0~100。 (~,0)、[0,100]、(100,~)等价类划分的原则原则2:在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类; 如:学生成绩在0~100分之间,但是必须大于等于60分才能记为及格。

[0,60),[60,100]等价类划分的原则原则3:在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。

(TrueorFalse)(奇数和偶数)原则4:在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。

例:输入条件说明学历可为:专科、本科、硕士、博士四种之一,则分别取这四个值作为四个有效等价类,另外把四种学历之外的任何学历作为无效等价类。

有效等价类:专科、本科、硕士、博士 无效等价类:小学、初中、高中等价类划分的原则原则5:在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则) 比如:过马路时,遇到“红灯禁行” 有效等价类:所有车辆和行人都停下来(符合规则) 无效等价类:车辆没有停下来(不符合规则) 行人没有停下来(不符合规则)原则6:在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。例:公司招聘员工,基本学历要求专科及以上,该单位学历与工资挂钩,当学历高于硕士时,则基本工资才可以为4000元。等价类表示例输入条件有效等价类唯一标识无效等价类唯一标识……………………………………………………确定测试用例在确立了等价类后,可建立等价类表,列出所有划分出的等价类输入条件:有效等价类、无效等价类,然后从划分出的等价类中按以下三个原则设计测试用例:为每一个等价类规定一个唯一的编号设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。等价类划分举例例1:在程序的规格说明书中,对输入条件有这么一句话:“程序输入条件为大于10小于100的整数x”输入条件有效等价类唯一标识无效等价类唯一标识整数x的值10<x<100(1)x<=10x>=100(2)(3)等价类划分举例例2:程序输入x取值于一个固定的枚举类型{1,3,7,15},且程序中对这4个数值分别进行了处理输入条件有效等价类唯一标识无效等价类唯一标识X的值x=1(1)x!={1,3,7,15}中的任意值(5)x=3(2)

x=7(3)

x=15(4)

等价类划分举例例3:Windows文件名命名规则,可以包含除‘、’

‘/’

‘:’

‘?’

‘<>’

‘\’之外的任意字符,文件名长度是1-255个字符输入条件有效等价类唯一标识无效等价类唯一标识文件名名称不包含合法字符:

‘、’

‘/’

‘:’

‘?’

‘<>’

‘\’(1)名称包含以下字符:

‘、’

‘/’

‘:’

‘?’

‘<>’

‘\’(2)1〈=名称长度〈=255(3)名称为空(4)

名称长度〉255(5)

等价类划分举例序号输入数据

(文件名称)覆盖等价类输出1a,c,@,d,%,$,(1)(3)文件创建成功2‘td、td’,‘a/b’,‘a:c’,‘test?rq’,‘a<>z’,‘b\d’(2)文件创建失败3

(4)文件创建失败4abcdefghijklmnopq………..(5)文件创建失败等价类划分举例实例1城市电话号码问题城市电话号码由三部分组成。它们的名称和内容分别是:地区码:空白或三位数字;前缀:首位非‘0’或‘1’的三位数字;后缀:4位数字。

假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。根据该程序的规格说明,作等价类的划分,并设计测试方案。等价类划分举例第一步:划分等价类,列出等价类列表输入条件有效等价类无效等价类地区码(1)空白;(2)三位数;(3)有非数字字符;(4)少于三位数字;(5)多于三位数字。前缀(6)从200到999之间的三位数(7)有非数字字符;(8)起始位为‘0’;(9)起始位为‘1’;(10)少于三位数字;(11)多于三位数字。后缀(12)四位数字。(13)有非数字字符;(14)少于四位数字;(15)多于四位数字。等价类划分举例第二步:根据等价类列表确定测试用例序号内容输入预期输出地区码前缀后缀1空白200~999之间的三位数字四位数字()276-2345有效2三位数字四位数字(635)805-9321有效3有非数字字符

(20A)723-4567无效4少于三位数字

(33)234-5678无效5多于三位数字

(5555)345-6789无效6

有非数字字符

(345)5A2-3456无效7

起始位为‘0’

(345)012-3456无效8

起始位为‘1’

(345)132-3456无效9

少于三位数字

(345)92-3456无效10

多于三位数字

(345)4562-3456无效11

有非数字字符(345)342-3A56无效12

少于四位数字(345)342-356无效13

多于四位数字(345)562-34567无效等价类划分测试用例实战实战1:根据规格说明书的要求,利用等价类划分方法,给出足够的测试用例。“在如下案例中输入三个整数,作为一个三角形的3条边的长度值,根据输入的值打印出这个程序是一般三角形、等腰三角形,还是等边三角形”等价类划分测试用例实战分析过程:假设三角形的三条边分别为a、b、c,如果构成三角形必须满足:1)a>0,b>0,c>0且a+b>c,b+c>a,a+c>b2)如果是等腰三角形必须满足:a=b或b=c或c=a3)如果是等边三角形必须满足:a=b=c等价类划分测试用例实战输入条件有效等价类唯一

标识无效等价类唯一

标识输入三角形的三条边a>01a<=07b>02b<=08c>03c<=09a+b>c4a+b<=c10a+c>b5a+c<=b11b+c>a6b+c<=a12是否等腰三角形a=b13a!=b!=c16b=c14c=a15是否等边三角形a=b=c17a!=b18b!=c19c!=a20等价类划分测试用例实战序号【a,b,c】覆盖等价类输出1【3,4,5】满足1~6一般三角形2【0,1,2】满足7不能构成三角形3【1,0,2】满足84【1,2,0】满足95【1,2,3】满足106【1,3,2】满足117【3,1,2】满足128【3,3,4】满足1~6+13等腰三角形9【3,4,4】满足1~6+1410【3,4,3】满足1~6+1511【3,4,5】满足1~6+16非等腰三角形12【3,3,3】满足1~6+17等边三角形13【3,4,4】满足1~6+18非等边三角形14【3,4,3】满足1~6+1915【3,3,4】满足1~6+20等价类划分测试用例实战实战2:假设有一个工资管理系统,要求输入员工工号,以及月份日期,就可以搜索出该员工在当前时间范围内的工资信息。工号栏位必须输入正整数,不得超过3位。日期范围在1999年01月~2012年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。等价类划分测试用例实战输入条件有效等价类唯一标识无效等价类唯一标识日期的类型及长度6位数字字符1非数字字符2小于6位3大于6位4年份范围1999~20125小于19996大于20127月份范围01~128小于01月9大于12月10等价类划分测试实战序号测试输入覆盖等价类输出120100712满足1,5,8检查成功295June满足2无效输入320036满足3无效输入42001006满足4无效输入5198912满足6无效输入6202401满足7无效输入7200100满足9无效输入8200113满足10无效输入作业请将等价类划分测试用例实战中的两组用例表中的内容,设计成测试用例55使用等价类划分法测试的实例(续)实例保险公司计算保费费率的程序

某保险公司的人寿保险的保费计算方式为:投保额×保险费率其中,保险费率依点数不同而有别,10点及10点以上保险费率为0.6%,10点以下保险费率为0.1%;而点数又是由投保人的年龄、性别、婚姻状况和抚养人数来决定,具体规则如下:年龄

性别婚姻抚养人数

20~39

40~59

其它

M

F

已婚

未婚

1人扣0.5点最多扣3点(四舍五入取整)

6点

4点

2点

5点

3点

3点5点56计算保费费率的程序(1)分析程序规格说明中给出和隐含的对输入条件的要求,列出等价类表(包括有效等价类和无效等价类)。年龄:一位或两位非零整数,值的有效范围为1~99性别:一位英文字符,只能取值‘M’或’F’婚姻:字符,只能取值‘已婚’或‘未婚’抚养人数:空白或一位非零整数(1~9)点数:一位或两位非零整数,值的范围为1~99(2)根据(1)中的等价类表,设计能覆盖所有等价类的测试用例。57输入条件有效等价类编号无效等价类编号年龄20~39岁140~59岁21~19岁60~99岁3小于112大于9913性别单个英文字符4非英文字符14非单个英文字符15‘M’5除‘M’和‘F’之外的其它单个字符16‘F’6婚姻已婚7除’已婚’和’未婚’之外的其它字符17未婚8抚养人数空白9除空白和数字之外的其它字符181~6人10小于1196~9人11大于92058测试用例编号输入数据预期输出对应等价类年龄性别婚姻抚养人数保险费率127F未婚空白0.6%1,6,8,9250M已婚20.6%2,5,7,10370F已婚70.1%3,6,7,1140M未婚空白无法推算12,5,8,95100F已婚3无法推算13,6,7,10699男已婚4无法推算14..71Child未婚空白无法推算15..845N已婚5无法推算16..938F离婚1无法推算17..1062M已婚没有无法推算18..1118F未婚0无法推算19..1240M未婚10无法推算20..边界值分析定义 边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。与等价类划分的区别

1)边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。

2)边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。边界值分析如何使用边界值分析方法

长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。

使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。边界值分析常见的边界值

1)对16-bit的整数而言-32768和32767是边界

2)报表的第一行和最后一行

3)数组元素的第一个和最后一个

4)循环的第0次、第1次和倒数第2次、最后一次边界值分析次边界值 有些边界在软件内部,最终用户几乎看不到,但是软件测试仍然有必要检查,这样的边界条件称为次边界条件或内部边界条件举例:如果测试的文本框只允许用户输入字符A~Z或a~z,如下图ASCII表中的值,还应该在非法区间中包含ASCII表中这些字符前后的值@、[、’、{边界值分析字符的边界值检查:部分ASCII值表字符ASCII值字符ASCII值字符ASCII值字符ASCII值Null0250B66a97Space32957Y89b98/47:58Z90y121048@64[91z122149A65'96{123边界值分析数字的边界值检查:软件中2的乘方术语范围或值术语范围或值位0或1千1,024双位0~15兆1,048,576字节0~255亿1,073,741,824字0~65,535万亿1,099,511,627,776边界值分析举例: 一个检验2的乘方的程序,软件允许用户输入1-1000范围内的数字 合法边界值:1,2,999,1000

还应包含次边界值:14,15,16,254,255,256边界值分析示例例:测试计算平方根的函数

--输入:实数

--输出:实数

--规格说明:当输入一个0或比0大的数的时候,返回其正平方根;当输入一个小于0的数时,显示错误信息“平方根非法-输入值小于0”并返回0;库函数Print-Line可以用来输出错误信息。思路:首先用等价类划分设计测试用例然后用边界值分析方法补充测试用例

边界值分析示例输入条件有效等价类唯一标识无效等价类唯一标识假设输入的实数为xx>=01x<02假设输出的值为yy>=03error4序号输入【x】覆盖等价类输出【y】141,322-1002,4error设计用例等价类表边界值分析示例x为实数,划分为x>=0,或者x<0,由此得到以下五组用例

a、输入{最小负实数}

b、输入{绝对值很小的负数}

c、输入0

d、输入{绝对值很小的正数}

e、输入{最大正实数}

说明:由该示例可知,事实上a、b两个用例的输出结果为error,c、d、e三个用例的输出结果为y>=0。也就是说这五种情况可以分别作为测试数据准备到等价类用例中,这样就是共2组用例,执行7次边界值用例设计思路项边界值测试用例的设计思路字符起始-1个字符/结束+1个字符假设一个文本输入区域允许输入1个到255个字符,输入1个和255个字符作为有效等价类;

输入0个和256个字符作为无效等价类,这几个数值都属于边界条件值。数值最小值-1/最大值+1假设某软件的数据输入域要求输入5位的数据值,可以使用10000作为最小值、99999作为最大值;然后使用刚好小于5位和大于5位的数值来作为边界条件。空间小于空余空间一点/大于满空间一点例如在用U盘存储数据时,使用比剩余磁盘空间大一点(几KB)的文件作为边界条件。边界值分析的原则如果条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据 例如,如果程序的规格说明中规定:“重量在10公斤至50公斤范围内的邮件,其邮费计算公式为……”。作为测试用例,我们应取10及50,还应取10.01,49.99,9.99及50.01等如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1,比最大个数多1的数作为测试数据 比如,一个输入文件应包括1~255个记录,则测试用例可取1和255,还应取0及256等边界值分析的原则将规则1)和2)应用于输出条件,即设计测试用例使输出值达到边界值及其左右的值。 例1:某程序的规格说明要求计算出“每月保险金扣除额为0至1165.25元”,其测试用例可取0.00及1165.24、还可取一0.01及1165.26等 例2:一程序属于情报检索系统,要求每次“最少显示1条、最多显示4条情报摘要”这时我们应考虑的测试用例包括1和4,还应包括0和5等如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例分析规格说明,找出其它可能的边界条件利用边界值分析法设计测试用例采用边界值分析测试的基本思想是:故障往往出现在输入变量的边界值附近。

——因此,边界值分析法利用输入变量的最小值(min)、略大于最小值(min+)、输入值域内的任意值(nom)、略小于最大值(max-)和最大值(max)来设计测试用例。边界值分析法是基于可靠性理论中称为“单故障”的假设,即有两个或两个以上故障同时出现而导致软件失效的情况很少,也就是说,软件失效基本上是由单故障引起的。

——因此,在边界值分析法中获取测试用例的方法是:(1)每次保留程序中一个变量,让其余的变量取正常值,被保留的变量依次取min、min+、nom、max-和max。(2)对程序中的每个变量重复(1)。边界值分析实战例1:有两个输入变量x1(a≤x1≤b)和x2(c≤x2≤d)的程序F的边界值分析测试用例如下:

{<x1nom,x2min>,<x1nom,x2min+>,<x1nom,x2nom>,<x1nom,x2max>,<x1nom,x2max->,<x1min,x2nom>,<x1min+,x2nom>,<x1max,x2nom>,<x1max-,x2nom>}边界值分析实战例2:有二元函数f(x,y),其中x∈[1,12],y∈[1,31]。则采用边界值分析法设计的测试用例是:

{<1,15>,<2,15>,<11,15>,<12,15>,<6,15>,<6,1>,<6,2>,<6,30>,<6,31>}推论:对于一个含有n个变量的程序,采用边界值分析法测试程序会产生4n+1个测试用例。边界值分析实战作业:有函数f(x,y,x),其中x∈[1900,2100],y∈[1,12],z∈[1,31]的。请写出该函数采用边界值分析法设计的测试用例。

{<2000,6,1>,<2000,6,2>,<2000,6,30>,<2000,6,31>,<2000,1,15>,<2000,2,15>,<2000,11,15>,<2000,12,15>,<1900,6,15>,<1901,6,15>,<2099,6,15>,<2100,6,15>,<2000,6,15>}健壮性测试健壮性测试是作为边界值分析的一个简单的扩充,它除了对变量的5个边界值分析取值外,还需要增加一个略大于最大值(max+)以及略小于最小值(min-)的取值,检查超过极限值时系统的情况。因此,对于有n个变量的函数采用健壮性测试需要6n+1个测试用例。前面例1中的健壮性测试如右图:练习:请为例2中的函数f(x,y)写出相应的健壮性测试用例。边界值实战因果图定义

一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。因果图法产生的背景等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合和相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)。因果图因果图法最终生成的还是判定表,采用因果图法设计测试用例的步骤方法如下:(1)分析软件规格说明中哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。(2)分析软件规格说明中的语义,找出原因与结果之间、原因与原因之间对应的关系,根据这些关系画出因果图。(3)由于语法或环境的限制,有些原因与原因之间、原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。(4)把因果图转换为决策表。(5)根据决策表中的每一列设计测试用例。因果图使用因果图法的优点(1)考虑到了输入情况的各种组合以及各个输入情况之间的相互制约关系。(2)能够帮助测试人员按照一定的步骤,高效率的开发测试用例。(3)因果图法是将自然语言规格说明转化成形式语言规格说明的一种严格的方法,可以指出规格说明存在的不完整性和二义性。因果图因果图中的4种基本关系在因果图的基本符号中,图中的左结点ci表示输入状态(或称原因),右结点ei表示输出状态(或称结果)。ci与ei取值0或1,0表示某状态不出现,1则表示某状态出现。恒等:若原因出现,则结果出现;若原因不出现,则结果也不出现非:若原因出现,则结果不出现;若原因不出现,则结果出现或:若几个原因中有1个出现,则结果出现;若几个原因都不出现,则结果不出现与:若几个原因都出现,结果才出现。若其中有1个原因不出现,则结果不出现因果图因果图中的约束

在实际问题中输入状态相互之间、输出状态相互之间可能存在某些依赖关系,称为“约束”。对于输入条件的约束有E、I、O、R四种约束,对于输出条件的约束只有M约束。E约束(互斥):原因a和原因b不会同时成立,两个中最多有一个可能成立。I约束(包含):a、b、c这三个原因中至少有一个必须成立。O约束(唯一):原因a和b中必须有一个,且仅有一个成立。R约束(要求):原因a出现时,原因b也必须出现,a出现时,不可能b不出现。M约束(强制):若结果a为1,则结果b强为0。当a为0,b的值不确定83

恒等c1

e1

e1=1

c1=1

e1=0

c1=0

非c1

e1

e1=0

c1=1

e1=1

c1=0

因果图的基本符号若c1是1,则e1也为1,否则e1为0。若c1是1,则e1为0,否则e1为1。84

或c1e1c2c3e1=1c1=1或c2=1或c3=1否则e1=0与e1c2e1=1c1=1且c2=1否则e1=0c1因果图的基本符号(续)85输入条件的约束86输入条件的约束(续)87输出条件的约束因果图实战例1:用因果图法测试以下程序程序的规格说明要求:输入的第一个字符必须是#或*,第二个字符必须是一个数字,此情况下进行文件的修改;如果第一个字符不是#或*,则给出信息N,如果第二个字符不是数字,则给出信息M思路:(1)分析程序的规格说明,列出原因和结果(2)找出原因与结果之间的因果关系、原因与原因之间的约束关系,画出因果图(3)将因果图转换成判断表(4)根据(3)中的判断表,设计测试用例的输入数据和预期输出因果图实战1.分析规格说明中的原因和结果原因结果c1:第一个字符是#e1:给出信息Nc2:第一个字符是*e2:修改文件c3:第二个字符是一个数字e3:给出信息M2.画出因果图(编号为10的中间结点是导出结果的进一步原因)c1c2e1e2e3~10∨~c3∧E因果图实战3.将因果图转换为判定表

选项规则12345678条件c111110000c211001100c31010101010

111100动作e1

√√e2

e3

√不可能√√

测试用例

#3#A*6*BA1GT因果图实战根据决策表的每一列设计测试用例测试用例编号输入数据预期输出1#3修改文件2#A给出信息M3*6修改文件4*B给出信息M5A1给出信息N6GT给出信息N和信息M因果图实战题目一个处理单价为1元5角钱的盒装饮料自动售货机。若投入1元5角的硬币,按下“可乐”、“雪碧”或“红茶”按钮,相应的饮料就送出来。若投入的是两元硬币,在送出饮料的同时退出5角硬币。作业根据因果图法设计用例的步骤,为该题目设计测试用例9394作业9697判定表驱动法在所有的黑盒测试方法中,基于判定表的测试是最为严格、最具有逻辑性的测试方法。判定表的概念:判定表是分析和表达多逻辑条件下执行不同操作的情况的工具。判定表的优点:能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用判定表能够设计出完整的测试用例集合。在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。判定表很适合于处理这类问题。99判定表的组成判定表的组成判定表由4部分组成,即条件桩、动作桩、条件项、动作项,及规则条件桩:列出了问题的所有条件,通常认为列出的条件的次序无关紧要动作桩:列出了问题规定可能采取的操作,这些操作的排列顺序没有约束条件项:列出针对它所列条件的取值,在所有可能情况下的真假值动作项:列出条件项的各种取值情况下应该采取的动作判定表“阅读指南”选项规则12345678问题觉得疲倦?YYYYNNNN感兴趣吗?YYNNYYNN糊涂吗?YNYNYNYN建议重读√继续√跳下一章√√休息√√√√102规则任何一个条件组合的特定取值及其相应要执行的操作称为规则;在判定表中贯穿条件项和动作项的一列就是一条规则;判定表中列出多少组条件取值,也就有多少条规则,即条件项和动作项有多少列。103规则(续)规则合并规则合并就是判定表的简化。有两条或多条规则具有相同的动作,并且其条件项之间存在着极为相似的关系,就可以将规则合并。104条件项“—”表示与取值无关。(1)两条规则合并成一条105条件项“—”在逻辑上包含其它的条件。(2)两条规则的进一步合并106判定表建立步骤根据软件规格说明①列出所有的条件桩和动作桩;分析输入域,对输入域进行等价类划分;分析输出域,对输出进行细化,以指导具体的输出动作;②确定规则的个数;假如有n个条件,每个条件有两个取值(0,1),则有2的n次方

种规则;③填入条件项;④填入动作项,得到初始决策表;⑤简化,合并相似规则(相同动作)。107判定表实战:维修机器问题问题描述:“……对于功率大于50马力的机器,并且维修记录不全或已运行10年以上的机器,应给予优先的维修处理……”请建立决策表。108维修机器问题(续)(1)列出所有的条件桩和动作桩条件桩C1:功率大于50马力吗?C2:维修记录不全吗?C3:运行超过10年吗?动作桩A1:进行优先处理A2:作其他处理109维修机器问题(续)(2)确定规则个数输入条件个数:3;每个条件的取值:“是”或“否”;规则个数:2*2*2=8;

功率大于50马力吗维修记录不全吗运行超过10年吗11012345678条件功率大于50马力吗?

YYYYNNNN维修记录不全吗?YYNNYYNN运行超过10年吗?

YNYNYNYN动作进行优先处理作其他处理(3)填入条件项;利用集合的笛卡尔积计算条件项的取值维修机器问题(续)11112345678条件功率大于50马力吗?

YYYYNNNN维修记录不全吗?YYNNYYNN运行超过10年吗?

YNYNYNYN动作进行优先处理

作其他处理

(4)填入动作项;1,2合并,5,7合并,6,8合并维修机器问题(续)112(5)化简;(1)(2)(3)(4)(5)条

件功率大于50马力吗?

YYYNN维修记录不全吗?YNN——运行超过10年吗?

—YNYN动

作进行优先处理

作其他处理

维修机器问题(续)判定表实战例1:若手机用户欠费或停机,则不允许主被叫。请为该需求设计判定表条件手机欠费手机被停机动作不允许主被叫

规则1规则2规则3规则4条件手机欠费YYNN手机被停机YNYN动作不允许主被叫YYYN114作业:三角形问题问题描述输入三个正整数a、b、c,分别作为三角形的三条边,通过程序判断三条边是否能构成三角形?如果能构成三角形,判断三角形的类型(等边三角形、等腰三角形、一般三角形)。请用基于判定表的方法设计测试用例。115一、设计判定表(1)条件桩C1:a,b,c构成三角形?C2:a=b?C3:a=c?C4:b=c?(2)规则数共有四个条件,每个条件的取值为“是”或“否”,因此有24=16条规则。116一、设计判定表(续)(3)动作桩

A1:非三角形;

A2:不等边三角形;

A3:等腰三角形;

A4:等边三角形;

A5:不可能117123456789条

件a,b,c构成三角形NYYYYYYYYa=b?—YYYYNNNNa=c?—YYNNYYNNb=c?—YNYNYNYN动

作非三角形

不等边三角形

等腰三角形

等边三角形

不可能

一、设计判定表(续)118一、设计判定表(续)注意:条件的选择可以大大扩展判定表的规模;例如a,b,c构成三角形吗?可以扩展为三个条件:a<b+c?b<a+c?c<a+b?119条件桩修改后的判定表A5:不可能×××120a=b,a=c,b≠c二、设计测试用例错误推测法定义:基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。错误推测法的基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。比如设计一些非法的、错误的、不正确和垃圾数据进行输入测试。比如以前测试中曾经发现的错误,例如输入数据和输出数据为0的情况错误推测法比如在单元测试时曾列出的许多在模块中常见的错误、以前产品测试中曾经发现的错误等,这些就是经验的总结。还有,输入数据和输出数据为0的情况、输入表格为空格或输入表格只有一行等。这些都是容易发生错误的情况,可选择这些情况下的例子作为测试用例。比如,测试一个对线性表(比如数组)进行排序的程序,可推测列出以下几项需要特别测试的情况:输入的线性表为空表表中只含有一个元素输入表中所有元素已排好序输入表已按逆序排好输入表中部分或全部元素相同123正交试验法124主要内容一、设计测试用例时遇到的问题二、正交表的概念三、用正交表设计测试用例125一、设计测试用例时遇到的问题126114系统查询企业单位当用户打114查询某公司的电话时,电信局的坐席人员会输入该公司相关信息,并进行查询,最后把查询的结果告之用户。那么,测试人员如何对该此查询功能点进行测试呢?如何设计测试用例呢?127测试方法全部测试部分测试一部分测试二用正交表法设计用例并测试128全部测试用例数(25=32)测试用例太多测试时投入和回报不相符129音形码:

0不填、1填拼音码:

0不填、1填路名码:

0不填、1填行业类别:

0不填、1填特征码:

0不填、1填130部分测试一不能保证选中用例的代表性测试时没有把握131部分测试二测试时也没有把握132正交试验法利用正交表选择测试用例。正交法理论上可以保证其代表性。133加上可疑用例134二、正交表的概念135因素和水平什么是因素(Factor)在一项试验中,凡欲考察的变量称为因素(变量)什么是水平(位级)(Level)在试验范围内,因素被考察的值称为水平(变量的取值)什么是正交试验设计

是研究多因素多水平的一种设计方法,它是根据正交性从全面试验中挑选出部分有代表性的点进行试验,这些有代表性的点具备了“均匀分散,齐整可比”的特点,正交试验设计是一种基于正交表的、高效率、快速、经济的试验设计方法136正交表的正交性整齐可比性

在同一张正交表中,每个因素的每个水平出现的次数是完全相同的。由于在试验中每个因素的每个水平与其它因素的每个水平参与试验的机率是完全相同的,这就保证在各个水平中最大程度的排除了其它因素水平的干扰。因而,能最有效地进行比较和作出展望,容易找到好的试验条件。均衡分散性

在同一张正交表中,任意两列(两个因素)的水平搭配(横向形成的数字对)是完全相同的。这样就保证了试验条件均衡地分散在因素水平的完全组合之中,因而具有很强的代表性,容易得到好的试验条件。137正交表的构成行数(Runs):正交表中的行的个数,即试验的次数。因素数(Factors):正交表中列的个数。水平数(Levels):任何单个因素能够取得的值的最大个数。正交表中的包含的值为从0到数“水平数-1”或从1到“水平数”正交表的表示形式:L行数(水平数因素数)138L8(27)139如何查找正交表TechnicalSupport()http:///techsup/technote/ts723_Designs.txt查Dr.GenichiTaguchi设计的正交表,上面查询数理统计、试验设计等方面的书及附录中140关注点:因素数和对应的水平数组成的矩阵

L4(23)L9(34)141L18(3661)142L8(27)143三、用正交表设计测试用例144用正交表设计测试用例的步骤1有哪些因素(变量)2每个因素有哪几个水平(变量的取值)3选择一个合适的正交表4把变量的值映射到表中5把每一行的各因素水平的组合做为一个测试用例6加上你认为可疑且没有在表中出现的组合145如何选择正交表考虑因素(变量)的个数考虑因素水平(变量的取值)的个数考虑正交表的行数取行数最少的一个146设计测试用例时的三种情况1因素数(变量)、水平数(变量值)相符2因素数不相同3水平数不相同1471因素数、水平数相符水平数(变量的取值)相同、因素数(变量)刚好符合正交表148对某人进行查询假设查询某个人时有三个查询条件:根据“姓名”进行查询根据“身份证号码”查询根据“手机号码”查询考虑查询条件要么不填写,要么填写,此时可用正交表进行设计149因素数和水平数有三个因素:姓名、身份证号、手机号码每个因素有两个水平姓名:填、不填身份证号:填、不填手机号码:填、不填150选择正交表表中的因素数>=3表中至少有三个因素的水平数>=2行数取最少的一个结果:L4(23)151变量映射姓名:0填写,1不填写身份证号:0填写,1不填写手机号码:0填写,1不填写152用L4(23)设计的测试用例测试用例如下:

1:填写姓名、填写身份证号、填写手机号

2:填写姓名、不填身份证号、不填手机号

3:不填姓名、填写身份证号、不填手机号

4:不填姓名、不填身份证号、填写手机号增补测试用例5:不填姓名、不填身份证号、不填手机号测试用例减少数:851532因素数不相同水平数(变量的取值)相同但在正交表中找不到相同的因素数(变量)(取因素数最接近但略大的实际值的表)154114系统查询企业单位155因素数和水平数有五个因素:音形码、拼音码、路名码、行业类别和特征码每个因素有两个水平音形码:填、不填拼音码:填、不填路名码:填、不填行业类别:填、不填特征码:填、不填156选择正交表表中的因素数>=5表中至少有五个因素的水平数>=2行数取最少的一个结果:L8(27)157变量映射音形码:0不填写,1填写拼音码:0不填写,1填写路名码:0不填写,1填写行业类别:0不填写,1填写特征码:0不填写,1填写158159用L8(27)设计的测试用例测试用例如下:音形码填写、拼音码填写、路名码填写、行业类别填写、特征码填写音形码填写、拼音码填写、路名码填写、行业类别不填、特征码不填音形码填写、拼音码不填、路名码不填、行业类别填写、特征码填写音形码填写、拼音码不填、路名码不填、行业类别不填、特征码不填音形码不填、拼音码填写、路名码不填、行业类别填写、特征码不填音形码不填、拼音码填写、路名码不填、行业类别不填、特征码填写音形码不填、拼音码不填、路名码填写、行业类别填写、特征码不填音形码不填、拼音码不填、路名码填写、行业类别不填、特征码填写增补测试用例音形码不填、拼音码填写、路名码不填、行业类别不填、特征码不填音形码不填、拼音码不填、路名码填写、行业类别不填、特征码不填音形码不填、拼音码不填、路名码不填、行业类别填写、特征码不填音形码不填、拼音码不填、路名码不填、行业类别不填、特征码填写音形码不填、拼音码不填、路名码不填、行业类别不填、特征码填写测试用例减少数:32131603水平数不相同因素(变量)的水平数(变量的取值)不相同161水平数不相同的情况假设有一个系统有5个独立的变量(A,B,C,D,E)。变量A和B都有两个取值(A1、

A2和B1、B2)。变量C和D都有三个可能的取值(C1、C2、C3和D1、D2、D3)。变量E有六个可能的取值(E1、E2、E3、E4、E5、E6)。162因素数和水平数有五个因素(变量):

A、B、C、D和E两个因素有两个水平(变量的取值)、两个因素有三个水平,一个因素有六个水平

A:A1、A2

B:B1、B2

C:C1、C2、C3

D:D1、D2、D3

E:E1、E2、E3、E4、E5、E6163选择正交表表中的因素数(变量)>=5表中至少有二个因素的水平数(变量的取值)>=2至少有另外二个因素的水平数>=3还至少有另外一个因素的水平数>=6行数取最少的一个(L49(78)、L18(3661))结果:L18(3661)164变量映射A:0A1、1A2

B:0B1、1B2C:0C1、1C2、2

C3D:0D1、1D2、3D3E:0E1、1E2、2E3、3E4、4E5、5E6165166167168用L18(3661)设计的测试用例测试用例如下:省略测试用例减少数:21618加上一些可疑的情况(设为n个)为18+n它比原来也少多了169案例研究1992年AT&T发表了一个案例研究:对PC(IBM格式)和StarMail做回归测试;最初测试计划:18周,1500个用例。但是,开发推迟了。另一个测试方案:2个人8周,1000个测试用例,但不敢保证测试的质量,对这些用例检测缺陷的能力不放心。于是用正交表法重新设计了测试用例,测试用例422个。测试发现了41个缺陷,开发人员修复缺陷,然后软件就发布了。在使用的两年时间内,凡被测试到的领域都没有再发现缺陷,因此在发现缺陷这方面,此测试计划是100%有效。据测试负责人估计,如果AT&T采用1000个测试用例的测试计划,可能仅仅只发现这些缺陷中的32个与最初的计划相比,用正交表设计测试用例执行工作量不到50%,但却多发现28%的缺陷,而且测试人员个人的效率也增加了170另例:内部邮件系统企业或公司内部邮件系统当在测试写邮件的一些功能时情况如下:收件方(收件人、收件部门)内容标题(可以填写,可以不填写)邮件内容(可以填写,可以不填写)落款人(可以填写,可以不填写)附件(可以添加附件,可以不添加)171正交试验法实战作业:假设一个WEB站点,该站点有大量的服务器和操作系统,并且有许多具有各种插件的浏览器浏览:WEB浏览器:Netscape6.2、IE6.0、Opera4.0插件:无、RealPlayer、MediaPlayer应用服务器:IIS、Apche、NetscapeEnterprise操作系统:Windows2000、WindowsNT、Linux思路:1.提取用例中的因子2.分析因子的状态3.查找合适的正交表4.给出测试用例场景法定义:现在的软件都是用事件来触发流程的,事件触发时的情景并成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。用例场景用来描述流经用例的路径,从用例开始到结束,遍历这条路

温馨提示

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

最新文档

评论

0/150

提交评论