《软件测试-黑盒测试与白盒测试.ppt》由会员分享,可在线阅读,更多相关《软件测试-黑盒测试与白盒测试.ppt(36页珍藏版)》请在金锄头文库上搜索。
1、 白盒与黑盒的概念白盒与黑盒的概念 黑盒测试技术黑盒测试技术 白盒测试技术白盒测试技术 白盒与黑盒的比较白盒与黑盒的比较黑盒与白盒黑盒与白盒X=2Y=4 ? 黑黑盒盒测测试试又又叫叫功功能能测测试试,它它关关注注的的是是被被测测软软件件功功能能的的实实现现,而而不不是是内内部部逻逻辑辑。在在黑黑盒盒测测试试中中,被被测测对对象象的的内内部部结结构、运作情况对测试人员是不可见的。构、运作情况对测试人员是不可见的。黑盒测试黑盒测试 黑盒测试关注点:黑盒测试关注点: 功能错误与遗漏功能错误与遗漏 界面错误界面错误 数据结构与外部数据库访问错误数据结构与外部数据库访问错误 性能错误性能错误 初始化与终
2、止错误初始化与终止错误黑盒与白盒黑盒与白盒 白白盒盒测测试试又又叫叫玻玻璃璃盒盒测测试试、透透明明盒盒测测试试、结结构构化化测测试试、基基于于代代码码的的测测试试等等。白白盒盒测测试试需需要要对对系系统统内内部部的的结结构构和和工工作原理有一个清楚的了解。作原理有一个清楚的了解。白盒测试白盒测试 白盒测试关注逻辑细节白盒测试关注逻辑细节 关于控制流和数据流无意识的假设很可能造成错误关于控制流和数据流无意识的假设很可能造成错误 笔误是随机的笔误是随机的BeizerBeizer:“错误潜伏在角落里,聚集在边界上,而白盒测试更可能发现它。错误潜伏在角落里,聚集在边界上,而白盒测试更可能发现它。”X=
3、2Y=4 ?黑盒测试技术黑盒测试技术X=2Y=4 ?等价类技术等价类技术 等等价价类类划划分分不不考考虑虑程程序序的的内内部部结结构构,只只是是根根据据软软件件的的需需求求说说明明对对输输入入的的范范围围进进行行细细分分,然然后后再再从从分分出出的的每每个个区区域域内选取一个有代表性的测试数据。内选取一个有代表性的测试数据。 例例如如:一一程程序序,功功能能是是计计算算两两个个1-1001-100整整数数的的和和(两两个个数由用户键盘输入)。试设计等价类。数由用户键盘输入)。试设计等价类。黑盒测试技术黑盒测试技术X=2Y=4 ?等价类技术等价类技术无效等价类100加数加数数值数值非数值非数值整
4、数整数小数小数100字母字母特殊字符特殊字符空格空格空白空白黑盒测试技术黑盒测试技术X=2Y=4 ?等价类技术等价类技术黑盒测试技术黑盒测试技术X=2Y=4 ?等价类方法小结等价类方法小结 等价类的定义等价类的定义 等价类、有效等价类、无效等价类。等价类、有效等价类、无效等价类。 划分步骤划分步骤 先考虑数据类型,再考虑数据范围。先考虑数据类型,再考虑数据范围。 画示意图,区分等价类并编号画示意图,区分等价类并编号 从一个等价类中选举一组测试数据构造测试用例从一个等价类中选举一组测试数据构造测试用例黑盒测试技术黑盒测试技术X=2Y=4 ?等价类方法小结等价类方法小结 常用的等价类划分方法常用的
5、等价类划分方法 规定了输入值的范围,可分为规定了输入值的范围,可分为1 1个有效类和两个无效类个有效类和两个无效类 如果输入是布尔表达式,可分为如果输入是布尔表达式,可分为1 1个有效类和个有效类和1 1个无效类个无效类 如如果果规规定定了了输输入入数数据据是是一一组组值值,而而且且程程序序对对不不同同的的输输入入值值有有不不同同的的处处理理,则则每每个个允允许许的的输输入入值值是是一一个个有有效效等等价价类类,此此外外还有一个无效等价类。还有一个无效等价类。 如如果果规规定定了了输输入入数数据据必必须须遵遵循循的的规规则则,可可以以划划分分出出一一个个有有效等价类和若干个无效等价类。效等价类
6、和若干个无效等价类。黑盒测试技术黑盒测试技术X=2Y=4 ?边界值技术边界值技术 例例如如:一一程程序序,功功能能是是计计算算两两个个1-1001-100整整数数的的和和(两两个个数由用户键盘输入)。试设计等价类。数由用户键盘输入)。试设计等价类。 边边界界值值技技术术常常和和等等价价类类结结合合使使用用,测测试试边边界界时时,一一般般测试边界值和正好超出边界值一个单位的值。测试边界值和正好超出边界值一个单位的值。黑盒测试技术黑盒测试技术X=2Y=4 ?因果图法因果图法案例:案例:某奖金计算软件实现如下功能:某奖金计算软件实现如下功能: 该该软软件件可可以以计计算算某某公公司司的的年年终终奖奖
7、,该该公公司司员员工工分分为为普普通通员工和管理人员。员工和管理人员。 员员工工表表现现分分为为普普通通、优优秀秀和和特特殊殊贡贡献献(普普通通与与优优秀秀员员工工都都可可以以有有特特殊殊贡贡献献,普普通通员员工工表表现现普普通通和和管管理理人人员员表表现现普普通拿的奖金是不同的。)通拿的奖金是不同的。) 根据员工分类和表现,奖金分为根据员工分类和表现,奖金分为1 1类奖金,类奖金,2 2类奖金类奖金 使使用用该该软软件件时时,输输入入员员工工的的种种类类和和表表现现,就就会会输输出出对对应应的奖金类别。请为该软件设计测试用例。的奖金类别。请为该软件设计测试用例。黑盒测试技术黑盒测试技术X=2
8、Y=4 ?因果图法因果图法分析:分析:1 1、首先为输入输出条件编号、首先为输入输出条件编号 输入条件输入条件 员工类别:普通员工员工类别:普通员工A1A1、管理人员、管理人员A2A2 员工表现:普通员工表现:普通B1B1、优秀、优秀B2B2、特殊贡献、特殊贡献B3B3 输出条件输出条件 奖金类别:奖金类别:1 1类奖金类奖金C1C1、2 2类奖金类奖金C2C2 员工表现:员工表现:黑盒测试技术黑盒测试技术X=2Y=4 ?因果图法因果图法分析:分析:2 2、分析各种有效的输入条件组合、分析各种有效的输入条件组合 普通员工普通员工 A1+B1-C1 A1+B2-C2A1+B1-C1 A1+B2-
9、C2 A1+B1+B3-C3 A1+B2+B3-C4 A1+B1+B3-C3 A1+B2+B3-C4 管理人员管理人员 A2+B1-C5 A2+B1-C5 A2+B2-C6 A2+B2-C6 A2+B1+B3-C7 A2+B1+B3-C7 A2+B2+B3-B8 A2+B2+B3-B8黑盒测试技术黑盒测试技术X=2Y=4 ?因果图法因果图法分析:分析:3 3、根据以上条件分析,编写测试用例。、根据以上条件分析,编写测试用例。黑盒测试技术黑盒测试技术X=2Y=4 ?因果图因果图因因果果图图表表现现的的是是输输入入条条件件(原原因因)之之间间和和以以及及输输入入条条件件与与输出结果(结果)之间的对
10、应关系。输出结果(结果)之间的对应关系。其中:其中:CICI表示原因,表示原因,EIEI表示结果。表示结果。黑盒测试技术黑盒测试技术X=2Y=4 ?流程图法流程图法算法流程图算法流程图业务流程图业务流程图 针针对对整整个个系系统统业业务务功功能能流流程程绘绘制制业业务务流流程程图图,写写用用例例,覆盖所有的路径分支。覆盖所有的路径分支。 详细了解需求详细了解需求 根据需求说明或界面原型,找出各页面之间的流转关系根据需求说明或界面原型,找出各页面之间的流转关系 画出业务流程图画出业务流程图 写用例,覆盖所有的路径分支。写用例,覆盖所有的路径分支。黑盒测试技术黑盒测试技术X=2Y=4 ?黑盒技术小
11、结黑盒技术小结 运用流程图法测试软件的总体业务流程运用流程图法测试软件的总体业务流程 针对具体的模块运用等价类与边界值方法进行测试针对具体的模块运用等价类与边界值方法进行测试 如果涉及到多个输入条件组合情况,应用因果图法测试如果涉及到多个输入条件组合情况,应用因果图法测试流程图法流程图法等价类法等价类法边界值法边界值法因果图法因果图法黑盒测试技术黑盒测试技术X=2Y=4 ?综合应用综合应用1 1、计算三角形面积程序、计算三角形面积程序 输输入入三三个个整整数数A A、B B、C C,输输出出以以A A、B B、C C为为三三边边的的三三角角形面积(形面积(1=ABC1001=ABC100),
12、,结果保留结果保留2 2位小数。位小数。黑盒测试技术黑盒测试技术X=2Y=4 ?综合应用综合应用2 2、163163邮箱注册模块(不考虑重复用户)邮箱注册模块(不考虑重复用户)注册页面注册页面黑盒测试技术黑盒测试技术X=2Y=4 ?综合应用综合应用测试用例测试用例黑盒测试技术黑盒测试技术X=2Y=4 ?综合应用综合应用黑盒测试技术黑盒测试技术X=2Y=4 ?课堂练习课堂练习1.1.一一程程序序要要求求输输入入三三角角形形的的边边长长(要要求求整整数数),根根据据边边长长判判断断三三角形类型(不等边、等边、等腰),请画出等价类示意图。角形类型(不等边、等边、等腰),请画出等价类示意图。2.2.假
13、假定定一一台台ATMATM机机允允许许提提取取的的增增量量是是5050元元,总总额额从从5050到到50005000元元不不等等的的现现金金;并并要要求求一一次次最最多多取取20002000元元,一一天天最最多多取取50005000元元,一一天天最最多取多取3 3次。运用等价类和边界值的思想编写测试用例。次。运用等价类和边界值的思想编写测试用例。白盒测试技术白盒测试技术静态分析静态分析 代代码码走走查查(WorkThroughWorkThrough):开开发发组组内内部部采采用用讲讲解解、讨讨论和模拟运行的方式进行的查找错误的活动。论和模拟运行的方式进行的查找错误的活动。X=2Y=4 ? 代代
14、码码审审查查(InspectionInspection):在在开开发发组组内内部部进进行行的的,采采用用讲讲解解、提提问问和和模模拟拟运运行行的的方方式式查查找找错错误误。一一般般有有正正式式的的计计划、流程和结果报告。划、流程和结果报告。 技技术术评评审审(ReviewReview):开开发发组组、测测试试人人员员、QAQA等等人人员员联联合合进进行行的的通通过过讲讲解解、提提问问并并使使用用编编码码模模板板进进行行错错误误查查找找的的活动。一般有正式的流程和结果报告。活动。一般有正式的流程和结果报告。白盒测试技术白盒测试技术边界值测试边界值测试 错误隐藏在角落,问题聚集在边界。错误隐藏在角
15、落,问题聚集在边界。 边界值测试边界值测试是一种普遍的方法,适用于黑盒与白盒。是一种普遍的方法,适用于黑盒与白盒。 数据类型的边界值数据类型的边界值X=2Y=4 ?# include main() int a=32765; int b=3; int c; c=a+b; c=c/2; printf(“%d”,c);白盒测试技术白盒测试技术边界值测试边界值测试 数组的边界值数组的边界值X=2Y=4 ?# include main() int a5; int i=0; for(i=0;i=5;i+) scanf(“%d”,&ai); /输入数组输入数组5个元素个元素 for(i=1;i5;i+) p
16、rintf(“%d”,ai); /打印数组打印数组5个元素个元素白盒测试技术白盒测试技术边界值测试边界值测试X=2Y=4 ?# include main() int a,b,c; printf(“请输入两个请输入两个10到到99之间的整数之间的整数”); scanf(“%d%d”,&a,&b); if (a=99) printf(“a的值应在的值应在10到到99之间之间”); else if (b=99) printf(“a的值应在的值应在10到到99之间之间”); else c=a+b; printf(“两个数的和为两个数的和为%d”,c); 分分支支判判断断语语句句的的边边界界值值白盒测试
17、技术白盒测试技术逻辑覆盖技术逻辑覆盖技术逻逻辑辑覆覆盖盖是是一一种种传传统统的的白白盒盒测测试试技技术术,是是专专门门用用来来测测试试程程序中的分支结构和循环结构。序中的分支结构和循环结构。 分支结构测试分支结构测试X=2Y=4 ? 语句覆盖语句覆盖 分支覆盖分支覆盖 条件覆盖条件覆盖 分支分支- -条件覆盖条件覆盖 条件组合覆盖条件组合覆盖 路径覆盖路径覆盖白盒测试技术白盒测试技术逻辑覆盖技术逻辑覆盖技术X=2Y=4 ?# include main() float a,b,x; scanf(“%f%f%f”,&a,&b, &x); if (a1)&(b=0) x=x/a; if (a=2)|
18、(x1) x=x+1; printf(“%f”,x);入口(a1)&(b=0)(a=2)|(x1)返回x=x/ax=x+1YYsabdce白盒测试技术白盒测试技术逻辑覆盖技术逻辑覆盖技术 循环结构测试循环结构测试X=2Y=4 ? 简单循环简单循环 循环变量的初值是否正确循环变量的初值是否正确 循环变量的最大值是否正确循环变量的最大值是否正确 循环变量的增量是否正确循环变量的增量是否正确 何时退出循环何时退出循环# include main() int i=0; int sum=0; while (i10) sum=sum+i; i+; printf(“%dn”,sum);请设计测试用例!请设计
19、测试用例!白盒测试技术白盒测试技术逻辑覆盖技术逻辑覆盖技术 循环结构测试循环结构测试X=2Y=4 ? 嵌套循环嵌套循环 外内层循环变量都取最小值外内层循环变量都取最小值 外层最小,内层最大外层最小,内层最大 外层最大,内层最小外层最大,内层最小 循环变量增量循环变量增量 何时退出内循环何时退出内循环 何时退出外循环何时退出外循环# include main() int i=0; int j=0; int a55; for(i=0;i5;i+) for(j=0;j5;j+) aij=i+j; printf(“%dn”,aij); 请设计测试用例!请设计测试用例!白盒测试技术白盒测试技术面向对象测
20、试面向对象测试 面向对象基本概念面向对象基本概念X=2Y=4 ? 类类 子类子类 属性属性 方法方法 对象对象 封装封装 继承继承 多态多态白盒测试技术白盒测试技术面向对象测试面向对象测试 面向对象的测试面向对象的测试X=2Y=4 ? 面向对象分析的测试面向对象分析的测试 面向对象设计的测试面向对象设计的测试 面向对象编码的测试面向对象编码的测试 面向对象程序的单元测试面向对象程序的单元测试 面向过程语言测函数面向过程语言测函数 面向对象语言测类面向对象语言测类白盒测试技术白盒测试技术面向对象测试面向对象测试 案例分析案例分析X=2Y=4 ?/*形状类,实现该形状周长与面积计算形状类,实现该形
21、状周长与面积计算*/public abstract class Shape public abstract double perimeter(); public abstract double area();/*矩形类,实现该矩形周长与面积计算矩形类,实现该矩形周长与面积计算*/public class Rectangle extends Shape int a; int b;public Rectangle (int x, int y) a=x; b=y;public double perimeter() return 2*(a+b);public double area() return
22、a*b/*正方形类,实现正方形周长与面积计算正方形类,实现正方形周长与面积计算*/public class Square extends Rectanglepublic Square (int x, int y) super(x,y);public double perimeter() return 4*a;public double area() return a*a/*圆形类,实现圆周长与面积计算圆形类,实现圆周长与面积计算*/public class Circle extends Shape private int r;public Circle (int x) r=x;public d
23、ouble perimeter() return 2*3.14*r;public double area() return 3.14*r*r;白盒测试技术白盒测试技术面向对象测试步骤面向对象测试步骤 划分优先级,适当取舍划分优先级,适当取舍X=2Y=4 ?类类A类类D类类B类类CShape类类Rectange类类Circle类类Square类类白盒测试技术白盒测试技术面向对象测试步骤面向对象测试步骤 对被测类进行静态分析对被测类进行静态分析X=2Y=4 ?类结构是否合理类结构是否合理public、private、protect关键字设置是否合理关键字设置是否合理检查类中成员变量和方法设置是否合
24、理检查类中成员变量和方法设置是否合理检查程序是否符合相应的编码规范检查程序是否符合相应的编码规范白盒测试技术白盒测试技术面向对象测试步骤面向对象测试步骤 设计测试用例设计测试用例X=2Y=4 ?比如测试比如测试Rectangle类时,可以构造以下测试用例:类时,可以构造以下测试用例: (1,1) (1.2, 3.4) (a, b) ( , ) 设计测试驱动程序设计测试驱动程序/* 矩形类,矩形类, 实现矩形周长和面积的计算实现矩形周长和面积的计算 */public class Rectangle extends Shape public static void main(String args
25、) /测试测试Rectangle类类 Rectangle rect1=new Rectangle(1,1); Rectangle rect2=new Rectangle(1.2,3.4); Rectangle rect1=new Rectangle(a,b); Rectangle rect1=new Rectangle( , ); System.out.println(rect1.perimeter(); System.out.println(rect1.area(); System.out.println(rect2.perimeter(); System.out.println(rect2.area();System.out.println(rect3.perimeter(); System.out.println(rect3.area(); System.out.println(rect4.perimeter(); System.out.println(rect4.area();测试技术测试技术小结小结 黑盒测试技术黑盒测试技术X=2Y=4 ? 白盒测试技术白盒测试技术