黑盒测试方法(第三讲)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

概览在本章中,我们将学习:测试用例黑盒测试方法等价类划分边界值分析因果图与决策表法其他测试法测试用例的概念测试用例的定义(1)为特定目标而编制的一组测试输入、执行条件和预期结果,其目的是测试程序中的路径,核实程序或软件能否满足某个特定的需求。(2)测试用例是执行的最小实体。(3)对被测程序的测试通常需要多个测试用例测试用例的主要元素测试名称:测试用例的编号和名称描述:测试用例的详细描述前提条件:测试用例执行的前提条件步骤描述、预期结果及实际结果状态:测试用例的状态(是否执行,是否通过)设计人员和执行人员创建日期和执行日期测试用例设计单模版测试用例的重要性测试用例在测试活动中占有核心的作用,它是测试工作的指导。在测试执行过程中,测试用例是软件测试必须遵守的准则,可以把人为因素的影响减少到最小。因此测试用例的设计和编制是软件测试活动中最重要的。测试用例的重要性(了解)测试用例在测试活动中占有核心的作用,主要体现在以下几个方面:测试用例构成了设计和执行测试过程的基础。测试的“深度”与测试用例的数量呈比例。测试是否完全的依据。测试工作量与测试用例的数量呈比例测试设计和开发的类型及所需的资源主要都受控于测试用例测试用例的设计准则由于穷举测试是不可能的,因此测试人员应设计有限的、有代表性或特殊性的测试用例。总之一句话,设计尽可能少的用例去尽可能多的发现软件的缺陷。基本准则如下:测试用例的代表性能够代表并覆盖各种合理的和不合理的、合法的和非法的、边界的和越界的以及极限的输入数据、操作和环境设置等。稀有、极端、特殊的点需要测试人员重点关注。测试用例的非重复性测试用例不应是与原有测试用例重复的或等价效果的,应追求测试用例数目的精简测试用例的设计准则测试结果的可判定性即测试执行结果的正确性是可判定的,每一个测试用例都应有相应的期望结果。测试结果的可再现性即对同样的测试用例,系统的执行结果应当是相同的。好的测试用例集能花费最小的代价(人力、物力、财力、时间)做最好的测试。测试用例的设计方法主要分为黑盒法和白盒法。黑盒测试方法黑盒测试又称为功能测试,把被测软件看成一个封闭的盒子,在完全不考虑软件内部逻辑和内部结构的情况下进行的测试。黑盒测试常见的错误1、功能不正确或者遗漏2、界面错误。在接口上输入能否正确地接受。能否输出正确的结果3、数据库访问错误4、性能上能否满足要求5、是否有初始化或终止错误黑盒测试的优点1、黑盒测试与软件如何实现无关,如果实现发生变化,黑盒测试用例仍然可用(可重用性,面向回归测试)2、用例设计可以与软件的实现同时进行,加快了软件测试与开发的速度黑盒测试的缺点1、只能找到缺陷,难以查找错误的具体原因。2、没有清晰的需求规格说明书,测试用例很难被设计。3、相比白盒测试,测试用例产生遗漏或冗余的可能性大大增加黑盒测试的特点从理论上讲,黑盒测试只有采用穷举输入测试,把所有可能的输入都作为测试情况考虑,才能查出所有的错误。实际上测试情况是无穷多的,完全测试是不可能的。那么我们如何设计黑盒测试用例满足“最尽可能少的测试用例去发现尽可能多的软件缺陷”呢?典型的黑盒测试方法等价类划分法边界值分析法因果图法其他方法(正交试验法、错误推测法、判定表法)等价类划分法等价类划分法是一种重要的、常用的黑盒测试方法,它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。举例:设计这样的测试用例,来实现一个对所有实数进行开平方运算(y=sqrt(x))的程序的测试。思考方向:由于开平方运算只对非负实数有效,这时需要将所有的实数(输入域x)进行划分,可以分成:正实数、0和负实数。假设我们选定+1.4444代表正实数,-2.345代表负实数,则为该程序设计的测试用例的输入为+1.4444、0和-2.345。等价类划分法(续)等价类划分是将程序的输入域(较多见)或输出域(较少见)的不同区间划分为不同的数据类,以便导出测试用例每个等价类所揭示的程序错误都是等价的要求此方法的测试用例能各自发现一类错误,从而减少必须开发的测试用例数测试某等价类的代表值就是等效于对于这一类其它值的测试。例如:程序在输入小于4的数得到结果5,那么使用2还是3或者都是一样的等价类分类有效等价类对于程序的需求说明来说是合理的,有意义的输入数据所构成的集合利用它可以检验程序是否实现了预期的功能和性能无效等价类对于程序的需求说明来说是不合理的,没有意义的输入数据所构成的集合利用它可以检验程序对于无效数据的处理能力等价类划分数学含义A=x=BC=y=D问题1:例子中共有多少个等价类?有效的几个,无效的几个?问题2:写出这些等价类,这些等价类是否可以合并?问题3:最好用多少个数据来测试?测试数据是否可以减少?确立等价类的原则严格的,可以按照变量来划分有效和无效等价类。即:-1--先按照X来划分有效等价类和无效等价类,然后再按照Y来划分有效等价类和无效等价类-2--最后再形成相应的测试用例。X:有效等价类为:A=x=B;无效等价类为:xA和Bx两个无效等价类Y:有效等价类为:C=y=D;无效等价类为:yC和Dy两个无效等价类确立等价类的原则如果输入条件规定了取值范围,或者值的个数,则可以确立一个有效等价类和两个无效等价类,例如:数据范围是1~50有效等价类为“=1&&=50”两个无效等价类为“1”和“50”确立等价类的原则如果输入条件是一个布尔量,则可以确立一个有效等价类和一个无效等价类如果规定了输入数据的一组值,而且程序要对每一个输入值分别进行处理,这时要对每一个规定的输入值确立一个有效等价类,而对于这组值之外的所有值确立一个无效等价类例:程序输入x取值于一个固定的枚举类型{1,3,7,15},且程序中对这4个数值分别进行了处理,则有效等价类为x=1、x=3、x=7、x=15,无效等价类为x≠1,3,7,15的值的集合。确立等价类的原则如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类(即遵守规则的数据)和若干无效等价类(从不同角度违反规则的数据),例如:测试密码域,要求密码必须是数字或字母有效等价类为“密码是数字和字母的组合”(还可以细分)无效等价类为“密码包括中文”、“密码包括其它符号”等如果确知已划分的等价类中的各元素在程序中的处理方式不同(例如字母还要区分大小写等),则应进一步划分成更小的等价类等价类测试用例设计分析输入、输出划分有效等价类、无效等价类设计测试用例,使其尽可能多的覆盖有效等价类设计测试用例,使其尽可能多的覆盖无效等价类等价类测试用例设计过程在设计测试用例时,应同时考虑有效等价类和无效等价类测试用例的设计。根据已列出的等价类表可确定测试用例。具体过程如下:(1)首先为等价类表中的每一个等价类分别规定一个唯一的编号。(2)设计一个新的测试用例,使它能够尽量覆盖尚未覆盖的有效等价类。重复这个步骤,直到所有的有效等价类均被测试用例所覆盖。(3)设计一个新的测试用例,使它仅覆盖一个尚未覆盖的无效等价类。重复这一步骤,直到所有的无效等价类均被测试用例所覆盖。?3的顺序是否可以和2颠倒??123好还是132好?为什么?等价类测试用例设计针对是否对无效数据进行测试,可以将等价类测试分为标准等价类测试和健壮等价类测试。标准等价类测试——不考虑无效数据值,测试用例使用每个等价类中的一个值。健壮等价类测试——主要的出发点是考虑了无效等价类。对有效输入,测试用例从每个有效等价类中取一个值;对无效输入,一个测试用例有一个“无效值”,其他值均取“有效值”。举例1(保险费率计算)按照输入域划分等价类的例子。某保险公司承担人寿保险,该公司保费计算方式为:保费=投保额*保险率,保险率依点数不同而有别,10点以上(含10点)费率为0.6%,10点以下费率为0.1%点数的计算是年龄、性别、婚姻、抚养人数所得的点数的总和输入:年龄、性别、婚姻、抚养人数输出:保险率输入数据说明年龄20~396点40~594点99以下59以上、20以下1以上2点性别男5点女3点婚姻已婚3点未婚5点抚养人数1人扣0.5点最多扣3点(四舍五入)第一步:输入和输出变量确认按照输入域划分等价类的例子。输入:年龄、性别、婚姻、抚养人数输出:保险率等价类划分原则:按照输入变量来确认等价类(有效等价类和无效等价类)第二步:等价类划分输入年龄有效等价类20~39(6点)(1)40~59(4点)(2)60~99、1~19(2点)(3)无效等价类空白(未知)(4)1(未知)(5)99(未知)(6)包含非数字字符(未知)(7)性别有效等价类男(5点)(8)女(3点)(9)婚姻有效等价类已婚(3点)(10)未婚(5点)(11)是否可以有更多无效等价类?第二步:等价类划分输入抚养人数有效等价类1~2(1点)(12)3~4(2点)(13)4(3点)(14)无效等价类空白(未知)(15)1(未知)(16)包含非数字字符(未知)(17)输出保险费率有效等价类=10点(0.6%)(18)10点(0.1%)(19)第三步:设计测试用例按照输入域划分等价类的例子。1、设计测试用例,尽可能的覆盖尚未覆盖的有效等价类。(1)(8)(10)(12)(2)(9)(11)(13)(3)(8)(10)(14)2、设计测试用俐,使得每一个新设计的测试用例只包含一个无效等价类,其他的选择有效等价类。(4)(8)(10)(12)(5)(9)(11)(13)(6)(8)(10)(14)(7)(8)(10)(14)(1)(8)(10)(15)(2)(9)(11)(16)(3)(8)(10)(16)说明:在设计无效部分的测试用例的时候,有效等价类部分,可以任意选择。第四步:选取测试用例用例编号输入输出备注年龄性别婚姻抚养人数保险率122男已婚10.6%(1)(8)(10)(12)(18)13点245女未婚40.1%(2)(9)(11)(13)(19)8点365男已婚80.1%(3)(8)(10)(14)(19)7点4空白男未婚1错误(4)5-1男未婚2错误(5)6122男未婚8错误(6)7“tt1”女已婚1错误(7)822女已婚空白错误(15)922女已婚-1错误(16)1022女未婚“ct2”错误(17)课堂实际应用:有一个员工管理系统,现对其录入模块进行测试。其中,人员信息包括:1、编号:必须有,系统自动编号;2、姓名:必须有,要求为不超过5个汉字;3、身份证:必须有,长度为15或18位置,末尾为数字或X,注意大小写;4、邮箱:要么为空白,输入必须包含@和.5、年龄:18-80之间的数字6、住址:可以空白注意:如果录入正确,则提示录入成功,录入错误,则提示数据不对。要求:1、确认输入域和输出域;2、划出有效等价类和无效等价类;3、给出测试用例的个数。4、请大家上来介绍自己的划分。边界值分析边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。为什么使用边界值分析法?无数的测试实践表明,大量的故障往往发生在输入定义域或输出值域的边界上,而不是在其内部。因此,针对各种边界情况设计测试用例,通常会取得很好的测试效果。怎样用边界值分析法设计测试用例?(1)首先确定边界情况。通常输入或输出等价类的边界就是应该着重测试的边界情况。(2)选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值。举例——常见的边界值对16-bit的整数而言32767和-32768是边界屏幕上光标在最左上、最右下位置报表的第一行和最后一行数组元素的第一个和最后一个循环的第0次、第1次和倒数第2次、最后一次边界值分析数学含义A=x=BC=y=D确立边界值的原则如果输入条件或输出条件规定了值的范围并且有效条件包括了值的边界,可分

1 / 89
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功