黑盒测试方法 .ppt
- 格式:ppt
- 大小:3.15 MB
- 文档页数:64
第4章动态测试技术(1)-黑盒测试方法1.黑盒测试概述1.定义:黑盒测试是依据软件的需求规约,设计测试用例,检查程序的功能是否符合需求规约的要求2.测试用例:由测试输入数据和预期结果组成(运行实际结果和预期结果不一致说明存在错误)3.主要的黑盒测试方法有等价类划分边界值分析错误猜测法因果图法判定表测试法基于场景测试法正交试验法比较测试2.等价类划分1.概述:1.1由于不能穷举所有可能的输入数据来进行测试,所以只能选择少量有代表性的输入数据,来揭露尽可能多的程序错误(设计测试用例遵循的原则之一)1.2等价类划分方法将所有可能的输入数据划分成若干个等价类,然后在每个等价类中选取一个代表性的数据作为测试用例的输入数据等价类是指输入域的某个子集,该子集中的每个输入数据对揭露软件中的错误都是等效的,测试等价类的某个代表值就等价于对这一类其他值的测试 也就是说,如果该子集中的某个输入数据能检测出某个错误,那么该子集中的其他输入数据也能检测出同样的错误;反之,如果该子集中的某个输入数据不能检测出错误,那么该子集中的其他输入数据也不能检测出错误例如:判断一个三角形的三条边是否构成等边三角形,那么{1,1,1}、{3,3,3,}、{8,8,8}……都是等效的。
1.3等价类划分方法把输入数据分为有效输入数据和无效输入数据(除测试正常的数据外,还应该测试不正常的数据)1.4有效输入数据指符合规格说明要求的合理的输入数据,主要用来检验程序是否实现了规格说明中的功能1.5无效输入数据指不符合规格说明要求的不合理或非法的输入数据,主要用来检验程序是否做了规格说明以外的事例如:程序判断三角形是否等边三角形,输入a、b、c三条边,如果a=b,b=c,a=c =>等边三角形,{0,0,0}、{-1,-1,-1}属于无效输入数据,不仅要检查正常的数据输入,还应驾车不正常的数据输入1.6在确定输入数据等价类时,常常还要分析输出数据的等价类,以便根据输出数据等价类导出输入数据等价类2.等价类划分设计测试用例的步骤2.1确定等价类根据软件的规格说明,对每一个输入条件(通常是规格说明中的一句话或一个短语)确定若干个有效等价类和若干个无效等价类可使用如下表格3.确定等价类的规则:3.1如果输入条件规定了取值范围,则可以确定一个有效等价类(输入值在此范围内)和两个无效等价类(输入值小于最小值及大于最大值)例如,规定输入的考试成绩在0..100之间,则有效等价类是“0 ≤成绩≤100”,无效等价类是“成绩<0”和“成绩>100”3.2如果输入条件规定了值的个数,则可以确定一个有效等价类(输入值的个数等于规定的个数)和两个无效等价类(输入值的个数小于规定的个数和大于规定的个数) 例如,规定输入构成三角形的3条边,则有效等价类是“输入边数= 3”,无效等价类是“输入边数<3”和“输入边数>3”3.3如果输入条件规定了输入值的集合(即离散值),而且程序对不同的输入值做不同的处理,那么每个允许的值都确定为一个有效等价类,另外还有一个无效等价类(任意一个不允许的值)(例如:交通信号灯“红”、“黄”,“绿”,是输入的集合,输入离散值) 例如,规定输入的考试成绩为优、良、中、及格、不及格,则可确定5个有效等价类和一个无效等价类3.4如果输入条件规定了输入值必须遵循的规则,那么可确定一个有效等价类(符合此规则)和若干个无效等价类(从各个不同的角度违反此规则)例如,在程序语言中对变量标识符规定为“以字母开头的……串”,那么有效等价类是“以字母开头的串”,而无效等价类有“以数字开头的串”、“以标点符号开头的串”…等3.5如果输入条件规定输入数据是整型,那么可以确定三个有效等价类(正整数、零、负整数)和一个无效等价类(非整数)3.6如果输入条件规定处理的对象是表格,那么可以确定一个有效等价类(表有一项或多项)和一个无效等价类(空表)以上只是列举了一些规则,实际情况往往是千变万化的,在遇到具体问题时,可参照上述规则的思想来划分等价类4.设计测试用例4.1在确定了等价类之后,建立等价类表,列出所有划分出的等价类,并为每个有效等价4.24.2.1设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止(一个测试用例覆盖多个有效等价类)4.2.2为每个无效等价类设计一个新的测试用例(无效等价类发现错误的概率比较大,每个无效等价类设计一个测试用例,提供测试的精度)4.3用等价类划分法设计测试用例的实例:某编译程序的规格说明中关于标识符的规定如下:标识符是由字母开头,后跟字母或数字的任意组合构成;标识符的字符数为1~8个;标识符必须先说明后使用;一个说明语句中至少有一个标识符;保留字不能用作变量标识符(例如:if、goto、int、float)4.3.1用等价类划分方法,建立输入等价类表4.3.2下面选取9个测试用例,它们覆盖了所有的等价类3.边界值分析1.概述:1.1边界值分析常用于对其他黑盒测试方法(特别是等价类划分方法)的补充1.2人们从长期的测试工作经验得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。
黑盒测试(black—box testing)又称功能测试、数据驱动测试或基于规范的测试。
用这种方法进行测试时,被测程序被当作看不见内部的黑盒。
在完全不考虑程序内部结构和内部特性的情况下,测试者仅依据程序功能的需求规范考虑确定测试用例和推断测试结果的正确性。
因此黑盒测试是从用户观点出发的测试,黑盒测试直观的想法就是既然程序被规定做某些事,那我们就看看它是不是在任何情况下都做的对。
完整的“任何情况”是无法验证的,为此黑盒测试也有一套产生测试用例的方法,以产生有限的测试用例而覆盖足够多的“任何情况”。
由于黑盒测试不需要了解程序内部结构,所以许多高层的测试如确认测试、系统测试、验收测试都采用黑盒测试。
黑盒测试首先是程序通常的功能性测试。
要求:每个软件特性必须被一个测试用例或一个被认可的异常所覆盖;用数据类型和数据值的最小集测试;用一系列真实的数据类型和数据值运行,测试超负荷、饱和及其他“最坏情况”的结果;用假想的数据类型和数据值运行,测试排斥不规则输入的能力;对影响性能的关键模块,如基本算法、应测试单元性能(包括精度、时间、容量等)。
不仅要考核“程序是否做了该做的?”还要考察“程序是否没做不该做的2”同时还要考察程序在其他一些情况下是否正常。
这些情况包括数据类型和数据值的异常等等。
下述几种方法:(a)等价类划分,(b)因果图方法,(c)边值分析法,(d)猜错法,(e)随机数法,就是从更广泛的角度来进行黑盒测试。
每一个方法都力图能涵盖更多的“任何情况”,但又各有长处,综合使用这些方法,会得到一个较好的测试用例集。
1.等价类划分等价类划分是一种典型的黑盒测试方法。
等价类是指某个输入域的集合。
它表示对揭露程序中的错误来说,集合中的每个输入条件是等效的。
因此我们只要在一个集合中选取一个测试数据即可。
等价类划分的办法是把程序的输入域划分成若干等价类,然后从每个部分中选取少数代表性数据当作测试用例。
这样就可使用少数测试用例检验程序在一大类情况下的反映。