1、1软件产品化之后给人们日常生活和工作带来了极大的便利。同样的,也使人们对产品的质量重视上升到了更进一步的高度。随着软件危机的不断出现以及人们对于软件更进一步的认识,测试的地位得到了前所未有的提高,并且人们意识到:测试开始的时间越早,软件的缺陷将越早被发现,带来整个软件开发中的成本也下降越多。软件测试是发现软件中缺陷的主要手段和唯一有效的方法。软件质量的重视度越高,软件测试工作在软件开发过程中就越重要。软件测试的意义 2什么是软件测试 软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。软件测试是为了发现错误而执行程序的过程。3为什么要使用测试用
2、例 软件测试中永远不可能做到穷举测试,又想使得测试工作的效率达到最高,那么该如何兼顾工作量和效率的问题,往往成为测试工作中的瓶颈问题所在。如何测试,用什么方式来测试,在什么环境和什么样的条件下进行测试,测试的工作量和如何避免重复的测试,等等各种应该考虑的因素在测试工作中如何协调和同步,在测试用例中应该充分描述这些问题。4 为达到最佳的测试效果或高效的揭露系统中隐藏的错误而精心设计的少量测试数据,称之为测试用例。一个好的测试用例是在于它能发现至今未发现的错误。什么是测试用例5 在开始实施测试之前设计好测试用例,可以避免盲目测试并提高测 试效率 测试用例的使用令软件测试的实施重点突出、目的明确 在
3、软件版本更新后只需修正少部分的测试用例便可展开测试工作,降 低工作强度,缩短项目周期使用测试用例的好处6 黑盒测试用例 白盒测试用例 逻辑覆盖法 基本路径测试法 设计测试用例的方法7黑盒测试用例的设计 黑盒测试法是根据被测程序功能来进行测试,所以通常也称为功能测试。用黑盒测试法设计测试用例,有4 种常用技术:等价分类法 边界值分析 错误猜测法 因果图法8一、等价分类法 所谓等价分类,就是把输入数据的可能值划分为 若干等价类(等价类是指某个输入域的子集合。在该 集合中,各个输入数据对于揭露程序中的错误都是等 价的)。因此,可以把全部输入数据合理地划分为若 干等价类,在每一个等价类中取一个数据作为
4、测试的 输入条件,这样就可以用少量的代表性测试数据,来 取得较好的测试结果。9 是指对于程序的规格说明来说,是合理的 有意义的输入数据构成的集合。利用它可以检 验程序是否实现预先规定的功能和性能。在具 体问题中,有效等价类可以是一个,也可以是 多个。有效等价类 10 是指对于程序的规格说明来说,是不合理 的,是无意义的输入数据构成的集合。测试员 主要利用这一类测试用例来检查程序中功能和 性能的实现是否不符合规格说明要求。在具体 问题中,无效等价类至少应有一个,也可能有 多个 无效等价类 11 1、如果输入条件规定了取值范围,或者是值 的个数,则可以确立一个有效等价类和两个无效 等价类。确定等价
5、类的原则:例如:序号值可以从 1到999 一个有效等价类:1 序号值 999 两个无效等价类:序号值 999 12 2、如果输入条件规定了输入值的集合,或 者是规定了“必须如何”的条件,这时 可确立一 个有效等价类和一个无效等价类。例如:在 C 语言中对变量标识符规定为“以字母打头的 串”。所有以字母打头的构成为有效等价 类;而不在此集合内(不以字母打头)归于无效等 价。13 3、如果输入条件是一个布尔量,则可以确 定一个有效等价类和一个无效等价类。14 4、如果规定了输入数据是一组值,而且程 序要对每个输入值分别进行处理。这时可为每一 个输入值确立一个有效等价类,此外再针对这组值 确立一个无
6、效等价类,它应是所有不允许输入值 的集合。例如:在教师分房方案中规定对教授、副教授、讲师 和助教分别计算分数,做相应的处理。因此可 以确定 个有效等价类为教授、副教授、讲师 和助教,以及 个无效等价类,它应是所有不 符合以上身份的人员的输入值的集合。15 5、如果规定了输入数据必须遵守的规 则,则可以确定一个有效等价类(符合规则),和若干个无效等价类(从不同角度违反则)。例如:在语言中规定了“一个语句必须以分号 作为结束”,这时,可以确定一个有效等价 类,以“;”结束,和若干个无效等价类应 以“”等。16 6、如果确知,已划分的等价类中各元素 在程序中的处理方式不同,则应将此等价类 进一步划分
7、成更小的等价类。17 1、划分等价类不仅要考虑代表“有效”输 入值的有效等价类,还需考虑代表“无效”输入 值的无效等价类。采用这一技术要注意以下两点:2、每一无效等价类至少要用一个测试用例 ,不然就可能漏掉某一类错误,但允许若干有 效等价类合用同一个测试用例,以便进一步减 少测试的次数。18二、确立测试用例输入条件有效等价类无效等价类等价类划分完以后,可以按下面的形式列出等价类表19确立测试用例原则 为每一个等价类规定一个唯一的编号。设计一个新的测试用例,使其尽可能地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止。设计一个新的测试用例,使其仅覆盖尚未被覆盖的无效等价类
8、,重复这一步,直到所有的无效等价类都被覆盖为止。20 在某一个PASCAL 语言版本中规定 1、标识符是由字母开头,后跟字母或数字 的任意组合构成。有效字符数为8个,最大 字符数为80 个;2、标识符必须先说明,后使用;3、在同一个说明语句中,标识符至少必须 有一个。请利用等价分类法为以下提供的内容设计测试用例21输入条件有效等价类无效等价类标识符个数标识符字符数标识符组成第一个字符标识符使用1个,多个0个 1个0个字母,数字非字母数字字符,保留字字母 非字母 先说明后使用 未说明已使用 22输入条件有效等价类无效等价类标识符个数1个,多个0个 标识符字符数1个0个标识符组成字母,数字非字母数
9、字字符,保留字第一个字符字母非字母 标识符使用先说明后使用未说明已使用 VAR x,T1234567:REAL;BEGIN x:=3.414;T1234567:=2.732;23输入条件有效等价类无效等价类标识符个数1个,多个0个 标识符字符数1个0个标识符组成字母,数字非字母数字字符,保留字第一个字符字母非字母 标识符使用先说明后使用未说明已使用 VAR:REAL;VAR T12345678:REAL;VAR T$:CHAR;VAR GOTO:INTEGER;(11)24输入条件有效等价类无效等价类标识符个数1个,多个0个 标识符字符数1个0个标识符组成字母,数字非字母数字字符,保留字第一个
10、字符字母非字母 标识符使用先说明后使用未说明已使用 VAR 2T:REAL;(13)VAR PAR:REAL;BEGIN PAR:=SIN(3.14*0.8)/6;(15)25二、边界值分析法 采用边界值分析法来选择测试用例,可使 得被测程序能在边界值及其附近运行,从而更 有效地暴露程序中潜藏的错误。这里所说的边 界值是指,相对与输入等价类和输出等价类而 言,稍高于或稍低于其边界值的一些特定情况。26 针对边界值设计测试用例时,应注意遵循以下几条原则1.如果输入条件规定了取值范围,或是规定了值的个数,则应以该范围的边界内及刚刚超出范围的边界外的值,或是分别取最大,最小个数及稍小于最小,稍大于最
11、 大个数作为测试用例。例如:某一个问题规格说明规 定:“某输入文件可包含1至255个记录.”,则测试用 例可取1和255,还应取0及256等。27 2.针对规格说明的每个输出条件使用前面的第1条原则。例如:情报检索系统要求每次最多显示4条情报摘要,这时,我们应考虑的测试用例包括1和4,还应包括0 和5等。28 3.如果程序规格说明中提到的输入或输出域是个有序的集 合(如顺序文件,表格等),就应注意选取有序集的第 一个和最后一个元素作为测试用例。291、等价分类法的测试数据是在各个等价类允许的值域内 任意选取的,而边界值分析法的测试数据必须在边界 值附近选取。2、一般来说,用边界值分析法设计的测
12、试用例要比等价分 类法的代表性更广,发现错误的能力也更强。但是对边 界的分析与确定比较复杂,它要求测试人员具有更多的 经验。等价分类法与边界值分析法的比较30三、错误猜测法 所谓猜测,就是猜测被测程序在哪些地方容易 出错,然后针对可能的薄弱环节来设计测试用例。显然它比前两种方法更多地依靠测试人员的直觉与 经验。所以一般都先用前两种方法设计测试用例然后 再用猜测法去补充一些例子作为辅助的手段。31四、因果图法 因果图是借助图形来设计测试用例的一种系 统方法。它适用于被测程序具有多种输入条件,程序的输出又依赖于输入条件的各种组合的情况 因果图是一种简化了的逻辑图,它能直观地 表明程序输入条件(原因
13、)和输出动作(结果)之间的相互关系。32 使用因果图的好处 考虑了多个输入之间的相互组合、相互制约关系 能够帮助我们按一定步骤,高效率地选择测试用 例,同时还能为我们指出,程序规格说明描述中 存在着什么问题 33 利用因果图导出测试用例需要经过的一般步骤1.分析程序规格说明的描述中,哪些是原因,哪些是结果。2.分析程序规格说明的描述中语义的内容,并将其表示成连 接各个原因与各个结果的因果图3.在因果图上使用若干个特殊的符号标明特定的约束条件4.把因果图转换成判定表5.把判定表中每一列表示的情况写成测试用例 34c1e1c3c2c1c2c1c1e1e1e1(a)恒等恒等(c)或或(d)与与(b)
14、非非因果图的基本符号35aaaaabbbbbcERMOI异要求唯一或强制约束符号36某软件规格说明中包含这样的要求:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改。但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。37原因:原因:1-1-第一列字符是第一列字符是A;A;2-2-第一列字符是第一列字符是B;B;3-3-第二列字符是一数字。第二列字符是一数字。结果:结果:21-21-修改文件修改文件;22-22-给出信息给出信息L;L;23-23-给出信息给出信息M M。分析原因和结果3813211232122E因果图3912345678条件(
15、原因)11111000021100110031010101011111100动作(结果)220000112110100023010101测试用例A3A8ABA?B5B4BNB!C2X6SDP$根据因果图建立如下判定表40测试策略 1、在任何情况下都应该使用边界值 分析的方法。2、必要时用等价类划分法补充测试 方案。3、必要时再用错误猜测法补充测试 方案。4、对照程序逻辑,检查已经设计出 出的测试方案。可以根据对程序 可靠性的要求采用不同的逻辑覆 盖标准,如果现有测试方案的逻 辑程度没有达到要求的覆盖标准 则应再补充一些测试方案。测试方法的选用41测试种类黑盒测试测试对象程序的功能 测试要求逐一
16、验证程序的功能 采用技术等价分类法 边界分析法错误猜测法 因果图法总结42 某工厂公开招工,规定报名者年龄应在周岁之间(到1995年6月30日为止),即出生年月不早于1960年7月,不晚于1979年6月。报名程序具有自动检验输入数据的功能。如出生年月不在上述范围内,将拒绝接受,并显示“年龄不合格”等出错信息。练习:请利用等价分类法及边界值分析法为以下提供的 内容设计测试用例,并比较两种方法的区别。43以下为练习答案44 假定已知出生年月是由 6 位数字字符表示,前4 位代表年,后2 位代表月,则可以划分为 3 个有效等价类和 7 个无效等价类。1、划分出生年月等价分类表输入数据有效等价类无效等
17、价类出生年月 6位有效数字字符 有非数字字符 少于6个数字字符 多于6个数字字符 对应数值 月份对应数值 在1-12之间 等于“0”12一 等价分类法452、设计有效等价类需要的测试用例输入数据有效等价类无效等价类出生年月 6位有效数字字符 有非数字字符 少于6个数字字符 多于6个数字字符 对应数值 月份对应数值 在1-12之间 等于“0”12测试数据期望结果测试范围 197011输入有效46输入数据有效等价类无效等价类出生年月 6位有效数字字符 有非数字字符 少于6个数字字符多于6个数字字符 对应数值 月份对应数值 在1-12之间 等于“0”12测试数据期望结果测试范围 输入无效 有非数字字
18、符输入无效输入无效 少于6个数字字符年龄不合格年龄不合格输入无效输入无效 多于6个数字字符 197906 等于“0”123、为每一个无效等价类至少设计一个测试用例47输入等价类测试用例说明测试数据期望结果出生年月(1)1 个数字字符(2)5 个数字字符(3)7 个数字字符(4)有1个非数字字符(5)全是非数字字符5 51970519705196801119680111970519705AUGUSAUGUS 输入无效对应数值(6)35 周岁(7)16 周岁196007196007197906197906合格年龄(8)35 周岁(9)16周岁196006196006197907197907不合格年龄月份对应数值(10)月份值为 1 月(11)月份值为 12 月196701196701197412197412输入有效(12)月份值 12196700196700197413197413 输入无效二 边界值分析法采用边界值分析设计的测试用例如下表所示
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。