资源预览内容
第1页 / 共85页
第2页 / 共85页
第3页 / 共85页
第4页 / 共85页
第5页 / 共85页
第6页 / 共85页
第7页 / 共85页
第8页 / 共85页
第9页 / 共85页
第10页 / 共85页
亲,该文档总共85页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
软件测试技术第3讲 软件测试用例设计方法本课教学目标学习理解黑盒测试方法的基本概念学习掌握黑盒测试的等价类划分法学习掌握黑盒测试的边界值分析法学习掌握黑盒测试的因果图测试法和决策表法课程内容3.1 测试用例设计概述3.2 黑盒测试法的概念3.3 黑盒测试用例设计方法3.4 测试方法的选择3.1 测试用例设计概述3.1.1 测试用例的定义和特征3.1.2 使用测试用例的好处3.1.3 测试用例的基本准则3.1.4 设计测试用例的着眼点3.1.5 测试用例设计书写标准3.1.1 测试用例的定义和特征测试用例的定义:(1)测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果。(2)测试用例是执行的最小实体。 测试用例的特征:(1)最有可能抓住错误的;(2)不是重复的、多余的;(3)一组相似测试用例中最有效的;(4)既不是太简单,也不是太复杂。3.1.2 使用测试用例的好 处在开始实施测试之前设计好测试用例,可以避免盲目测试并提高测试效率。测试用例的使用令软件测试的实施重点突出、目的明确。使用测试用例的好处(续 )在软件版本更新后只需修正少部分的测试用例便可展开测试工作,降低工作强度、缩短项目周期。功能模块的通用化和复用化使软件易于开发,而相对于功能模块的测试用例的通用化和复用化则会使软件测试易于开展,并随着测试用例的不断精化其效率也不断攀升。 3.1.3 设计测试用例的基本准则测试用例的代表性能够代表并覆盖各种合理的和不合理的、合法的和非法的、边界的和越界的以及极限的输入数据、操作和环境设置等。测试结果的可判定性即测试执行结果的正确性是可判定的,每一个测试用例都应有相应的期望结果。测试结果的可再现性即对同样的测试用例,系统的执行结果应当是相同的。3.1.4 设计测试用例的着眼点根据产品规格,测试基本功能;考虑设计一般用户(非专业人员)的使用方案;考虑设计稀有或特殊的使用方案;与系统其他组成部分的配合(如FAX和上网可能要用到MODEM,测试中考虑对设备的共享);考虑特殊情况(如内存和硬件的冲突等);设计极端情况(如内存泄漏、破坏性测试等);好的测试用例集能花费最小的代价(人力、物力、财力、时间)做最好的测试。3.1.5 测试用例设计书写标准在ANSI/IEEE829-1983标准中列出了和测试设计相关的测试用例编写规范和模板。标准模板中主要元素如下:标识符:惟一标识每一个测试用例测试项:准确的描述所需要测试的项及其特征测试环境要求:表征执行该测试用例需要的测试环境输入标准:执行测试用例的输入需求(这些输入可能包括数据、文件或者操作)输出标准:按照指定的环境和输入标准得到的期望输出结果测试用例之间的关联:标识该测试用例与其它的测试(或其它测试用例)之间的依赖关系问题与讨论邮箱登录功能测试用例编写?输入输出黑盒测试(功能测试或数据驱动测试):在测试时,把被测程序视为一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下进行。3.2 黑盒测试法的概念3.2 黑盒测试法的概念(续)采用黑盒测试的目的主要是在已知软件产品所应具有的功能的基础上,进行:(1)检查程序功能能否按需求规格说明书的规定正常使用,测试各个功能是否有遗漏,检测性能等特性要求是否满足。(2)检测人机交互是否错误,检测数据结构或外部数据库访问是否错误,程序是否能适当地接收输入数据而产生正确的输出结果,并保持外部信息(如数据库或文件)的完整性。(3)检测程序初始化和终止方面的错误。黑盒测试并不是无知的测试。黑盒测试意味着产品内部知识在测试中不起重要作用。黑盒测试强调有关软件的用户和环境知识。3.2 黑盒测试法的概念(续)3.3 黑盒测试用例设计方 法3.3.1 等价类划分3.3.2 边界值分析3.3.3 决策表法3.3.4 因果图3.3.5 正交试验法3.3.6 错误推测法3.3.1 等价类划分法3.3.1.1 等价类的划分原则3.3.1.2 等价类划分法的测试用例设计3.3.1.3 常见等价类划分测试形式3.3.1.4 使用等价类划分法测试的实例等价类划分法等价类划分法是一种重要的、常用的黑盒测试方法,它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。举例:设计这样的测试用例,来实现一个对所有实数进行开平方运算( y = sqrt(x) )的程序的测试。 思考方向:由于开平方运算只对非负实数有效,这时需要将所有的实数(输入域x)进行划分,可以分成:正实数、0 和 负实数。假设我们选定+1.4444代表正实数,-2.345代表负实数,则为该程序设计的测试用例的输入为+1.4444、 0 和 -2.345。等价类划分法(续)等价类划分法是把所有可能的输入数据,即程序的输入域划分为若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。所谓等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,它们具有等价特性,即每一类的代表性数据在测试中的作用都等价于这一类中的其它数据。这样,对于表征该类的数据输入将能代表整个子集合的输入。因此,可以合理的假定:测试某等价类的代表值就是等效于对于这一类其它值的测试。6.3.1.1 等价类的划分原则等价类是输入域的某个子集合,而所有等价类的并集就是整个输入域。因此,等价类对于测试有两个重要的意义: 完备性整个输入域提供一种形式的完备性 无冗余性若互不相交则可保证一种形式的无冗余性如何划分?先从程序的规格说明书中找出各个输入条件,再为每个输入条件划分两个或多个等价类,形成若干的互不相交的子集。采用等价类划分法设计测试用例通常分两步进行:(1)确定等价类,列出等价类表。(2)确定测试用例。等价类的划分原则(续)划分等价类可分为两种情况:(1)有效等价类是指对软件规格说明而言,是有意义的、合理的输入数据所组成的集合。利用有效等价类,能够检验程序是否实现了规格说明中预先规定的功能和性能。(2)无效等价类是指对软件规格说明而言,是无意义的、不合理的输入数据所构成的集合。利用无效等价类,可以鉴别程序异常处理的情况,检查被测对象的功能和性能的实现是否有不符合规格说明要求的地方。 等价类的划分原则(续)进行等价类划分的依据:(1)按照区间划分 在输入条件规定了取值范围或值的个数的情况下,可以确定一个有效等价类和两个无效等价类。例:在程序的规格说明书中,对输入条件有这么一句话:“程序输入条件为小于100大于10的整数x”则有效等价类为10x100,两个无效等价类为x10和x100。等价类的划分原则(续)进行等价类划分的依据:例:程序输入x取值于一个固定的枚举类型1,3,7,15,且程序 中对这4个数值分别进行了处理,则有效等价类为x=1、x=3、 x=7、x=15,无效等价类为x1,3,7,15的值的集合。(2)按照数值划分 在规定了一组输入数据(假设包括 n个输入值),并且程序要对每一个输入值分别进行处理的情况下,可确定 n 个有效等价类(每个值确定一个有效等价类)和一个无效等价类(所有不允许的输入值的集合)。等价类的划分原则(续)(3)按照数值集合划分 在输入条件规定了输入值的集合或规定了“必须如何”的条件下,可以确定一个有效等价类和一个无效等价类(该集合有效值之外)。例:程序输入条件为取值为奇数的整数x,则有效等价类为x的值为奇数的整数,无效等价类为x的值不为奇数的整数。进行等价类划分的依据:等价类的划分原则(续)例:程序输入条件为以字符a开头、长度为8的字符串,并且字符串不包含a z之外的其它字符,则有效等价类为满足了上述所有条件的字符串,无效等价类为不以a开头的字符串、长度不为8的字符串和包含了a z之外其它字符的字符串。(4)按照限制条件或规则划分 在规定了输入数据必须遵守的规则或限制条件的情况下,可确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。进行等价类划分的依据:(5)细分等价类 在确知已划分的等价类中各元素在程序中的处理方式不同的情况下,则应再将该等价类进一步划分为更小的等价类,并建立等价类表。 进行等价类划分的依据:等价类的划分原则(续)3.3.1.2 等价类划分法的测试用例设计在设计测试用例时,应同时考虑有效等价类和无效等价类测试用例的设计。根据已列出的等价类表可确定测试用例,具体过程如下:(1)首先为等价类表中的每一个等价类分别规定一个唯一的编号。(2)设计一个新的测试用例,使它能够尽量覆盖尚未覆盖的有效等价类。重复这个步骤,直到所有的有效等价类均被测试用例所覆盖。(3)设计一个新的测试用例,使它仅覆盖一个尚未覆盖的无效等价类。重复这一步骤,直到所有的无效等价类均被测试用例所覆盖。3.3.1.3 常见等价类划分测试形式针对是否对无效数据进行测试,可以将等价类测试分为: 标准等价类测试不考虑无效数据值,测试用例使用每个等价类中的一个值。 健壮等价类测试主要的出发点是考虑了无效等价类。对有效输入,测试用例从每个有效等价类中取一个值;对无效输入,一个测试用例有一个无效值,其他值均取有效值。健壮等价类测试存在两个问题:(1)需要花费精力定义无效测试用例的期望输出(2)对强类型的语言没有必要考虑无效的输入 3.3.1.4 使用等价类划分法测试的实例实例1 城市电话号码问题城市电话号码由三部分组成。它们的名称和内容分别是:地区码:空白或三位数字;前 缀:首位非0或1的三位数字;后 缀:4位数字。假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。根据该程序的规格说明,作等价类的划分,并设计测试方案。使用等价类划分法测试的实例(续)实例1 城市电话号码问题第一步:划分等价类,列出等价类列表输入条件有效等价类无效等价类地区码(1)空白; (2)三位数;(3)有非数字字符;(4)少于三位数字; (5)多于三位数字。前 缀(6)从200到999之间的三位(7)有非数字字符;(8)起始位为0; (9)起始位为1; (10)少于三位数字; (11)多于三位数字。 后 缀(12)四位数字。(13)有非数字字符;(14)少于四位数字; (15)多于四位数字。第二步:根据等价类列表确定测试用例使用等价类划分法测试的实例(续)序 号内容输 入预期 输出地区码前缀后缀 1空白200999之间的 三位数字四位数字( )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无效问题与讨论保险公司计算保费费率的程序某保险公司的人寿保险的保险费率依点数不同而有别,10点及10点以上保险 费率为0.6%,10点以下保险费率为0.1%;而点数又是由 投保人的年龄、性别、婚姻状况和抚养人数来决定,具体规则如下:年龄 (199)性别婚姻抚养人数(最多9人) 2039 4059 其它 M F 已婚 未婚 1人扣0.5点最多扣3点 (四舍五入取整) 6点 4点 2点 5点 3点 3点 5点请使用等价类划分法列出输入域等价类表,并设计相应的测试用例。3.3.2 边界值分析法6.3.2.1 边界值分析法概要6.3
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号