黑盒测试
实验实验 1 1 软件黑盒测试技术软件黑盒测试技术 1 1 实验类型:设计性实验类型:设计性 2 2 实验要求:必做学时:实验要求:必做学时:6 6 3 3 实验内容实验内容: : 以给定的模块为例进行黑盒测试,掌握等价分类法、边界值 分析法等方法。 4 4 实验的基本要求:实验的基本要求: 1、要求学生熟悉掌握黑盒法。 2、按照要求完成实验报告。 5 5 实验内容实验内容 黑盒测试: 1 这种方法是把测试对象看做一个黑盒子,这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑测试人员完全不考虑 程序内部的逻辑结构和内部特性,程序内部的逻辑结构和内部特性, 只依据程序的需求规格说明书,只依据程序的需求规格说明书, 检查程序的功能是否符合它的功能说明。检查程序的功能是否符合它的功能说明。 2 2 黑盒测试又叫做功能测试或数据驱动测试。黑盒测试又叫做功能测试或数据驱动测试。 黑盒测试的目的 1. 黑盒测试方法是在程序接口上进行测试,主要是为了发现以下错 误: 2. 是否有不正确或遗漏了的功能? 3. 在接口上,输入能否正确地接受? 能否输出正确的结果? 4. 是否有数据结构错误或外部信息(例如数据文件)访问错误? 5. 性能上是否能够满足要求? 6. 是否有初始化或终止性错误? 7. 用黑盒测试发现程序中的错误,必须在所有可能的输入条件和输 出条件中确定测试数据,来检查程序是否都能产生正确的输出。 8. 但这是不可能的。 黑盒测试的方法 1 等价类划分 1. 等价类划分是一种典型的黑盒测试方法,使用这一方法时完等价类划分是一种典型的黑盒测试方法,使用这一方法时完 全不考虑程序的内部结构,只依据程序的规格说明来设计测全不考虑程序的内部结构,只依据程序的规格说明来设计测 试用例。试用例。 2. 等价类划分方法把所有可能的输入数据,即程序的输入域划等价类划分方法把所有可能的输入数据,即程序的输入域划 分成若干部分,然后从每一部分中选取少数有代表性的数据分成若干部分,然后从每一部分中选取少数有代表性的数据 做为测试用例。做为测试用例。 3 3 使用这一方法设计测试用例要经历划分等价类(列出等价类使用这一方法设计测试用例要经历划分等价类(列出等价类 表)和选取测试用例两步。表)和选取测试用例两步。 2 等价分类法 等价类是指某个输入域的子集合。在该子集合中,各个输入等价类是指某个输入域的子集合。在该子集合中,各个输入 数据对于揭露程序中的错误都是等效的。数据对于揭露程序中的错误都是等效的。测试某等价类的代测试某等价类的代 表值就等价于对这一类其它值的测试。表值就等价于对这一类其它值的测试。 等价类的划分有两种不同的情况: ①有效等价类:是指对于程序的规格说明来说,是合理的,有意义的 输入数据构成的集合。 ②无效等价类:是指对于程序的规格说明来说,是不合理的,无意义 的输入数据构成的集合。 在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。 划分等价类等价类的原则。 (1) 如果输入条件规定了取值范围, 或值的个数,则可以确立一个有 效等价类和两个无效等价类。 如果输入条件规定了输入值的集合, 或者是规定了“必须如何”的条 件,这时可确立一个有效等价类和一个无效等价类。 (2)例如,在 Pascal 语言中对变量标识符规定为“以字母打头的„„ 串”。那么所有以字母打头的构成有效等价类,而不在此集合内(不 以字母打头)的归于无效等价类。 (3) 如果输入条件是一个布尔量, 则可以确定一个有效等价类和一个 无效等价类。 (4) 如果规定了输入数据的一组值, 而且程序要对每个输入值分别进 行处理。这时可为 每一个输入值确立一个有效等价类,此外针对这 组值确立一个无效等价类,它是所有不允许的输入值的集合。 用等价类划分法设计测试用例的实例 在某一 PASCAL 语言版本中规定: “标识符是由字母开头, 后跟字母或 数字的任意组合构成。有效字符数为 8 个,最大字符数为 80 个。 ” 并且规定: “标识符必须先说明, 再使用。 ” “在同一说明语句中, 标识符至少必须有一个。 ” 下面选取了下面选取了 9 9 个测试用例,它们覆盖了所有的等价类。个测试用例,它们覆盖了所有的等价类。 ①① VAR VARx x,,T1234567T1234567::REALREAL;; BEGIN BEGINx x := 3.414 := 3.414;; T1234567 := 2.732 T1234567 := 2.732;; .„.„ (1), (2), (4), (8), (9), (12), (14) (1), (2), (4), (8), (9), (12), (14) ② VAR :② VAR :REALREAL;;(3)(3) ③ VAR③ VARx x,, ::REAL; (5)REAL; (5) ④④ VAR T12345678 VAR T12345678::REALREAL;; (6) (6) ⑤⑤ VAR T12345 VAR T12345::REALREAL;; (7) (7) 多于多于 8080 个字符个字符 ⑥⑥ VAR T$ VAR T$::CHARCHAR;; (10) (10) ⑦⑦ VAR GOTO VAR GOTO::INTEGERINTEGER;; (11) (11) ⑧⑧ VAR 2T VAR 2T::REALREAL;; (13) (13) ⑨⑨ VAR PAR VAR PAR::REALREAL;; (15) (15) BEGIN BEGIN PAP := SIN (3.14 * 0.8) / 6PAP := SIN (3.14 * 0.8) / 6;; PascalPascal 语言转化语言转化 C C 语言语言 1 double x,T1234567;1 double x,T1234567; x=3.414; x=3.414; T1=2.732; T1=2.732; 2 double ;2 double ; 3 double x;3 double x; 4 4 double T12345678;double T12345678; 5 5 double T123456double T123456„„(80);„„(80); 6 6 char T$;char T$; 7 7 Scanf(Scanf(“%d“%d\ \n”,); 8 8 Double 2T;Double 2T; 9 9 Donble PAP;Donble PAP; PAP=Math.Sin(3.14*0.8)/6PAP=Math.Sin(3.14*0.8)/6 3 3 边界值分析方法边界值分析方法 比如,在做三角形计算时,要输入三角形的三个边长: A、B 和 C。 我 们应注意到这三个数值应当满足 A>0、B>0、C>0、 A+B>C、A+C>B、B+C>A,才能构成三角形。但如果把六个不等 式中的任何一个大于号“>”错写成大于等于号“≥”