黑盒与白盒测试讲座.ppt

上传人:啊飒飒 文档编号:11924427 上传时间:2021-11-01 格式:PPT 页数:53 大小:589.50KB
返回 下载 相关 举报
黑盒与白盒测试讲座.ppt_第1页
第1页 / 共53页
黑盒与白盒测试讲座.ppt_第2页
第2页 / 共53页
黑盒与白盒测试讲座.ppt_第3页
第3页 / 共53页
黑盒与白盒测试讲座.ppt_第4页
第4页 / 共53页
黑盒与白盒测试讲座.ppt_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《黑盒与白盒测试讲座.ppt》由会员分享,可在线阅读,更多相关《黑盒与白盒测试讲座.ppt(53页珍藏版)》请在三一文库上搜索。

1、软件测试基本方法,软件测试方法,三种常用的测试方法 黑盒测试 白盒测试 灰盒测试,黑盒测试,黑盒测试,这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。 黑盒测试又叫做功能测试或数据驱动测试。,黑盒测试方法是在程序接口上进行测试,主要是为了发现以下错误: 是否有不正确或遗漏了的功能? 在接口上,输入能否正确地接受? 能否输出正确的结果? 是否有数据结构错误或外部信息(例如数据文件)访问错误? 性能上是否能够满足要求? 是否有初始化或终止性错误?,用黑盒测试发现程序中的错误,必须在所有可能的输入条件

2、和输出条件中确定测试数据,来检查程序是否都能产生正确的输出。 但这是不可能的。,假设一个程序P有输入量X和Y及输出量Z。若X、Y取整数,按黑盒方法进行穷举测试: 可能采用的 测试数据组: 232232 264 如果测试一组数据需要1毫秒,一年工作365 24小时,完成所有测试需5亿年。,黑盒测试的技术方法,等价类划分 边界值分析 错误推测法 因果图 比较测试法 决策表法,等价类划分,等价类划分是一种典型的黑盒测试方法,使用这一方法时,完全不考虑程序的内部结构,只依据程序的规格说明来设计测试用例。 等价类划分方法把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少数有代表性

3、的数据做为测试用例。,在进行等价类划分之前,需要先从程序的功能说明书中找出各个输入条件,然后为每个输入条件划分两个或多个等价类,形成若干的互不相交的子集,这称之为等价类。所谓等价类是指输入域的某个子集合,所有等价类的并集就是整个输入域,使用这一方法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步。 划分等价类等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。测试某等价类的代表值就等价于对这一类其它值的测试。,等价类的划分有两种不同的情况: 有效等价类:是指对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。 举例:测试a、b是正整数

4、,1a4,1b4;求a+b=c那么a取值范围在2,3;该类则属于有效等价类, 无效等价类:是指对于程序的规格说明来说,是不合理的,无意义的输入数据构成的集合。 在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。 举例:测试a、b是正整数,1a4,1b4;则a+b=?那么a取值范围在-,0;该类则属于无效等价类,划分等价类的原则(1) 如果输入条件规定了取值范围,或值的个数,则可以确立一个有效等价类和两个无效等价类。,例如,在程序的规格说明中,对输入条件有一句话: “ 项数可以从1到999 ” 则有效等价类是“1项数999” 两个无效等价类是“项数1”或“项 数999”。在数轴上表示成:

5、,(2) 如果输入条件规定了输入值的集合,或者是规定了“必须如何”的条件,这时可确立一个有效等价类和一个无效等价类。 例如,在Pascal语言中对变量标识符规定为“以字母打头的串”。那么所有以字母打头的构成有效等价类,而不在此集合内(不以字母打头)的归于无效等价类。,(3) 如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类。(4) 如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理。这时可为每一个输入值确立一个有效等价类,此外针对这组值确立一个无效等价类,它是所有不允许的输入值的集合。,例如,在教师上岗方案中规定对教授、副教授、讲师和助教分别计算分数,做相应的处理

6、。因此可以确定4个有效等价类为教授、副教授、讲师和助教,一个无效等价类,它是所有不符合以上身分的人员的输入值的集合。(5) 如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。,例如,Pascal语言规定 “一个语句必须以分号;结束”。这时,可以确定一个有效等价类 “以;结束”,若干个无效等价类 “以:结束”、“以,结束”、“以 结束”等。 确立测试用例在确立了等价类之后,建立等价类表,列出所有划分出的等价类。,再从划分出的等价类中按以下原则选择测试用例:(1) 为每一个等价类规定一个唯一编号;(2) 设计一个新的测试用例,使其尽可能

7、多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;(3) 设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。,用等价类划分法设计测试用例的实例在某一PASCAL语言版本中规定:“标识符是由字母开头,后跟字母或数字的任意组合构成。有效字符数为8个,最大字符数为80个。” 并且规定:“标识符必须先说明,再使用。” “在同一说明语句中,标识符至少必须有一个。”,用等价类划分方法,建立输入等价类表:,下面选取了9个测试用例,它们覆盖了所有的等价类。 VAR x,T1234567:REAL; BEGIN x := 3.4

8、14; T1234567 := 2.732; . (1), (2), (4), (8), (9), (12), (14) VAR :REAL; (3) VAR x,:REAL; (5), VAR T12345678:REAL; (6) VAR T12345.:REAL; (7) 多于80个字符 VAR T$:CHAR; (10) VAR GOTO:INTEGER; (11) VAR 2T:REAL; (13) VAR PAR:REAL; (15) BEGIN . PAP := SIN (3.14 * 0.8) / 6;,三角形问题,输入三个整数a、b、c,分别作为三角形的三条边,现通过程序判断

9、由三条边构成的三角形的类型为等边三角形,等腰三角形,一般三角形(特殊的还有直角三角形)以及构不成三角形。 现在假设输入条件为:整数,三个数的取值在1100之间。如下表:,共有四种可能输出: 等边三角形、等腰三角形、一般三角形、非三角形 R1=:边为a、b、c的等边三角形 R2=:边为a、b、c的等腰三角形 R3=:边为a、b、c的一般三角形 R4=:边为a、b、c的非三角形,4个标准等价类测试用例,7个健壮性等价类测试用例,边界值分析,边界值分析也是一种黑盒测试方法,是对等价类划分方法的补充。 人们从长期的测试工作经验得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。因此

10、针对各种边界情况设计测试用例,可以查出更多的错误。,比如,在做三角形计算时,要输入三角形的三个边长:A、B和C。 我们应注意到这三个数值应当满足 A0、B0、C0、 ABC、ACB、BCA,才能构成三角形。但如果把六个不等式中的任何一个大于号“”错写成大于等于号“”,那就不能构成三角形。问题恰出现在容易被疏忽的边界附近。,这里所说的边界是指,相对于输入等价类和输出等价类而言,稍高于其边界值及稍低于其边界值的一些特定情况。 使用边界值分析方法设计测试用例,首先应确定边界情况。应当选取正好等于,刚刚大于,或刚刚小于边界的值做为测试数据,而不是选取等价类中的典型值或任意值做为测试数据。,在应用边界值

11、分析法进行测试用例设计时,应遵循的原则: 1、如果输入条件对取值范围进行了界定,则应以边界内部以及刚超出范围边界外的值作为测试用例。若范围的下界为条件X,上界为Y,则测试用例应当包含X、Y以及稍小于X和稍大于Y的值。 2、如果对取值的个数进行了界定,则应当分别以最大、最小个数及稍小于最小、稍大于最大个数作为测试用例。,3、对于输出条件,同样可以应用上面提到的两条原则来进行测试用例设计。 4、如果程序规格说明书中指明输入或输出域是一个有序的集合,如顺序文件、表格等,就应当注意选取该有序集合中的第一个和最后一个元素作为测试用例。 下例是三角形问题用边界值分析法设计的测试用例,错误推测法,人们也可以

12、靠经验和直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的例子。这就是错误推测法。 错误推测法的基本想法是:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。,因果图,因果图的适用范围如果在测试时必须考虑输入条件的各种组合,可使用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来设计测试用例,这就需要利用因果图。因果图方法最终生成的就是判定表。它适合于检查程序输入条件的各种组合情况。,(1) 分析软件规格说明描述中,哪些是原因 (即输入条件或输入条件的等价类),哪些是结果 (即输出条件),并给每个原因和结果赋予一个标识符。(2) 分析软件规格说

13、明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么关系? 根据这些关系,画出因果图。,(3) 由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。(4) 把因果图转换成判定表。(5) 把判定表的每一列拿出来作为依据,设计测试用例。,在因果图中出现的基本符号通常在因果图中用Ci表示原因,用Ei表示结果,各结点表示状态,可取值“0”或“1”。“0”表示某状态不出现,“1”表示某状态出现。 主要的原因和结果之间的关系有:,表示约束条件的符号为了表示原因与原因之间,结果与结果之间可能存在的约束条件,在因果图

14、中可以附加一些表示约束条件的符号。,测试方法的选择,为了最大程度地减少遗留的缺陷,同时也为了最大限度地发现存在的缺陷,在测试实施之前,测试工程师必须确定将要采用的测试策略和测试方法,并一次为依据制定详细的测试方案。通常,一个好的测试策略和测试方法必将给整个测试工作带来事半功倍的效果,从而充分利用有限的人力和物力资源,高效率、高质量地完成测试。,如何才能确定好的测试策略和测试方法呢?通常,在确定测试方法时,应遵循以下原则: 1、根据程序的重要性和一旦发生故障将造成的损失来确定测试等级和测试重点; 2、认真选择测试策略,以便能尽可能少地使用测试用例,发现尽可能多的程序错误。,确定测试策略5条参考原

15、则,1、在任何情况下都必须采用边界值分析法。这种方法设计出的测试用例发现程序错误的能力最强。 2、必要时采用等价类划分法补充测试用例。 3、采用错误推断法再追加测试用例。 4、对照程序逻辑,检查已设计处的测试用例的逻辑覆盖程度。如果没有达到要求的覆盖标准,则应当再补充更多的测试用例。 5、如果程序的功能说明中心含有输入条件的组合情况,则应该在一开始就选用因果法。,白盒测试,何谓白盒测试?,白盒测试与前面我们所讲的黑盒测试恰好相对,黑盒测试的重点是不关注程序的内部实现,仅从程序的执行表现,根据需求规格说明书来判断是否符合。白盒则是从程序控制结构设计导出测试用例,主要用于程序的验证。 一般来说,白

16、盒测试需要深厚的开发功底,以及对程序内部结构相当熟悉。,白盒测试的基本方法,白盒测试主要有程序结构分析,逻辑覆盖,基本路径测试等方法,但我们较为常用的方法是逻辑覆盖方法,逻辑覆盖方法主要有以下几点: 1、语句覆盖; 2、判定覆盖; 3、条件覆盖; 4、判定/条件覆盖; 5、组合覆盖; 6、路径覆盖,1、语句覆盖,语句覆盖方法选择足够多的测试用例,使程序中的每个可执行语句至少执行一次。他关注的是一个结果的实现,只要能够有测试用例使得本次测试走通,那么就可以说达到了一个语句覆盖。他可以保证程序中每个语句都得到执行,但是他并不能全面地检验每一个语句,他并非一种充分的检验方法。,2、判定覆盖,判定覆盖

17、是比语句覆盖较强一些的方法,通过执行足够的测试用例,使得程序中的每个判定至少都获得一次“真”或“假”的值,也就是使程序中的每个取“真”分支和取“假”分支至少均经历一次,也称为“分支覆盖”。,3、条件覆盖,与前面两种覆盖方法相比,条件覆盖是一种更强的覆盖标准,他的目的是设计若干测试用例,在执行被测程序以后,要使每个判定中每个条件的可能值至少满足一次。 满足条件覆盖不一定满足判定覆盖。,4、判定/条件覆盖,判定/条件覆盖要求设计足够的测试用例,使得判定中每个条件的所有情况(真/假)至少出现一次,并且每个判定本身的判定结果(真/假)也至少出现一次。,5、组合覆盖,组合覆盖的目的是通过执行足够的测试用例,使得每个判定中条件的各种可能都至少出现,因此,满足条件组合覆盖的测试用例一定满足判定覆盖,条件覆盖和判定/条件覆盖。,6、路径覆盖,路径覆盖的目的是设计足够多的测试用例,要求覆盖程序所有可能的路径。 这种目的在现实软件开发中是不可能达到的,只有将该方法与前面的几种相结合,寻求一种平衡点,才能发挥他们的效用。,白盒测试方法小结,前面简单的介绍白盒测试的几种方法,需要注意的是,白盒测试基本都是在单元测试阶段,而现在大多数软件开发单元测试都由开发人员进行,测试人员很少接触,即使需要测试人员做,也需要测试人员具备相当深厚的开发功底和对系统的内部实现相当了解。所以,我们只做一般性的介绍。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1