(精品)02、白盒测试.ppt
《(精品)02、白盒测试.ppt》由会员分享,可在线阅读,更多相关《(精品)02、白盒测试.ppt(69页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第第 2 章章 白盒测试白盒测试罗罗 东东 俊俊ZSUJONE126.COM主要内容主要内容2.1静态白盒测试和动态白盒测试静态白盒测试和动态白盒测试 2.2白盒测试的重点及其对策白盒测试的重点及其对策 2.3白盒测试的测试用例设计方法白盒测试的测试用例设计方法 2.4白盒测试的覆盖准则白盒测试的覆盖准则 2.5白盒测试的工具白盒测试的工具 2.6代码的持续集成及其对测试的影响代码的持续集成及其对测试的影响12.1静态白盒测试和动态白盒测试静态白盒测试和动态白盒测试白盒测试关心软件内部设计和程序实现,主要测试白盒测试关心软件内部设计和程序实现,主要测试依据是设计文档。依据是设计文档。根据测试方
2、法分为静态白盒测试和动态白盒测试。根据测试方法分为静态白盒测试和动态白盒测试。静态白盒测试是指在不执行的条件下有条理地仔细审查软静态白盒测试是指在不执行的条件下有条理地仔细审查软件设计、体系结构和代码,从而找出软件缺陷的过程。件设计、体系结构和代码,从而找出软件缺陷的过程。动态白盒测试是指测试运行中的程序,并利用查看代码功动态白盒测试是指测试运行中的程序,并利用查看代码功能和实现方式得到的信息来确定哪些需要测试、哪些不需能和实现方式得到的信息来确定哪些需要测试、哪些不需要测试、如何开展测试,从而设计和执行测试,找出软件要测试、如何开展测试,从而设计和执行测试,找出软件缺陷的过程。缺陷的过程。2
3、静态白盒测试静态白盒测试 进行静态白盒测试的首要原因是尽早发现软进行静态白盒测试的首要原因是尽早发现软件缺陷,以找出动态黑盒测试难以揭示或遇件缺陷,以找出动态黑盒测试难以揭示或遇到的软件缺陷。到的软件缺陷。独立审查代码的人越多越好,特别是在开发独立审查代码的人越多越好,特别是在开发过程初期从底层进行。过程初期从底层进行。3代码静态质量分析代码静态质量分析进行代码静态质量分析所依据的度量理论进行代码静态质量分析所依据的度量理论McCabe度量法度量法HalStead度量法度量法4McCabe度量法度量法McCabe度量法是由度量法是由Thomas McCabe提出的提出的一种基于程序控制流的复杂
4、性度量方法。一种基于程序控制流的复杂性度量方法。基于图论,进行程序复杂度度量基于图论,进行程序复杂度度量V(G)=E-n+2p E为图为图G中的边数,中的边数,n为节点数,为节点数,p为连通分量个数为连通分量个数 V(G)值过大值过大(10),程序不易理解与维护,程序不易理解与维护5McCabe度量法示例度量法示例6HalStead度量法度量法Halstead度量法以程序中出现的操作符和操度量法以程序中出现的操作符和操作数为计算对象,作数为计算对象,给出源程序后,根据程序给出源程序后,根据程序中的这些参数,按公式可求得程序功耗的估中的这些参数,按公式可求得程序功耗的估值。值。7程序的简明性程序
5、的简明性 8程序的词汇量程序的词汇量(2)程序的词汇量像汉语中的字、英语中的单程序的词汇量像汉语中的字、英语中的单词一样,反映了程序员需要学习多少术语才词一样,反映了程序员需要学习多少术语才能理解、编程和维护一个程序。采用下式度能理解、编程和维护一个程序。采用下式度量:量:9程序的体积程序的体积 10程序的功耗程序的功耗 11动态白盒测试动态白盒测试动态白盒测试不仅仅是查看代码,还包括直接测试动态白盒测试不仅仅是查看代码,还包括直接测试和控制软件。和控制软件。主要包括四个部分,分别为:主要包括四个部分,分别为:直接测试底层功能、过程、子程序和库。在直接测试底层功能、过程、子程序和库。在Micr
6、osoft Windows中这称为应用程序编程接口中这称为应用程序编程接口(API)。以完整程序的方式从顶层测试软件,但是根据对软件运行以完整程序的方式从顶层测试软件,但是根据对软件运行的了解调整测试案例。的了解调整测试案例。从软件获得读取变量和状态信息的访问权,以便确定测试从软件获得读取变量和状态信息的访问权,以便确定测试与预期结果是否相符,同时,强制软件以正常测试难以实与预期结果是否相符,同时,强制软件以正常测试难以实现的方式运行。现的方式运行。估算执行测试时覆盖的代码量和具体代码,然后调整测试,估算执行测试时覆盖的代码量和具体代码,然后调整测试,去掉多余的,补充遗漏的。去掉多余的,补充遗
7、漏的。12动态白盒测试动态白盒测试 vs.调试技术调试技术 它们的目标不同:它们的目标不同:动态白盒测试的目标是寻找软件缺陷,调试的目动态白盒测试的目标是寻找软件缺陷,调试的目标是修复它们。标是修复它们。软件测试人员要把问题缩减为能够演示软件缺陷软件测试人员要把问题缩减为能够演示软件缺陷的最简化的测试案例,测试时甚至包括那些值得的最简化的测试案例,测试时甚至包括那些值得怀疑的代码行信息;进行调试的程序员从这里继怀疑的代码行信息;进行调试的程序员从这里继续,判断到底是什么导致软件缺陷,并设法修复。续,判断到底是什么导致软件缺陷,并设法修复。132.2白盒测试的重点及其对策白盒测试的重点及其对策
8、白盒测试的重点主要体现在五个方面:白盒测试的重点主要体现在五个方面:模块接口测试模块接口测试模块局部数据结构测试模块局部数据结构测试模块边界条件测试模块边界条件测试模块执行路径测试模块执行路径测试模块出错处理测试。模块出错处理测试。14白盒测试的重点白盒测试的重点15模块接口测试模块接口测试模块接口测试重点检查进出模块的数据是否正确。模块接口测试重点检查进出模块的数据是否正确。主要检查的内容包括以下几个方面:主要检查的内容包括以下几个方面:模块的实际输入与定义的输入是否一致,包括检查参数个模块的实际输入与定义的输入是否一致,包括检查参数个数、类型、顺序等。数、类型、顺序等。模块中对于非内部局部
9、变量是否合理使用。模块中对于非内部局部变量是否合理使用。使用其他模块时,是否检查该模块的可用性和处理结果。使用其他模块时,是否检查该模块的可用性和处理结果。使用外部资源时,是否检查了可用性并及时释放资源,这使用外部资源时,是否检查了可用性并及时释放资源,这些资源包括内存、文件、硬盘、端口等。些资源包括内存、文件、硬盘、端口等。16模块局部数据结构测试模块局部数据结构测试模块局部数据结构测试重点检查局部数据结构能否模块局部数据结构测试重点检查局部数据结构能否保持完整性。保持完整性。主要检查的内容包括以几个方面:主要检查的内容包括以几个方面:变量从来没有被使用,这时可能别的地方使用了错误的变变量从
10、来没有被使用,这时可能别的地方使用了错误的变量名。量名。变量没有初始化。变量没有初始化。程序中包含了错误的类型转换。程序中包含了错误的类型转换。程序中是否存在数组越界。程序中是否存在数组越界。程序中是否存在非法指针。程序中是否存在非法指针。程序中是否存在变量或函数名称拼写错误,以及使用了外程序中是否存在变量或函数名称拼写错误,以及使用了外部变量或函数。部变量或函数。17模块边界条件测试模块边界条件测试 模块边界条件测试重点检查临界数据是否正模块边界条件测试重点检查临界数据是否正确处理。确处理。主要检查的内容包括以下几个方面:主要检查的内容包括以下几个方面:普通合法数据是否正确处理。普通合法数据
11、是否正确处理。普通非法数据是否正确处理。普通非法数据是否正确处理。边界内最接近边界的边界内最接近边界的(合法合法)数据是否正确处理。数据是否正确处理。边界外最接近边界的边界外最接近边界的(非法非法)数据是否正确处理。数据是否正确处理。18模块独立执行路径测试模块独立执行路径测试 模块独立执行路径测试重点检查由于计算错误、判模块独立执行路径测试重点检查由于计算错误、判定错误、控制流错误导致的程序错误。定错误、控制流错误导致的程序错误。主要检查的内容包括以下几个方面:主要检查的内容包括以下几个方面:程序中是否存在死代码。程序中是否存在死代码。程序中是否存在错误的计算优先级。程序中是否存在错误的计算
12、优先级。程序中是否存在精度错误,例如:比较运算错误、赋值错程序中是否存在精度错误,例如:比较运算错误、赋值错误。误。表达式使用不正确符号,例如:应该使用表达式使用不正确符号,例如:应该使用“”,却用了,却用了“=”或者或者“1)and(b=0)then x=xaIf(a=2)or(x1)then x=x+123语句覆盖语句覆盖语句覆盖是指设计若干测试用例,使程序中语句覆盖是指设计若干测试用例,使程序中的每个可执行语句至少执行一次;的每个可执行语句至少执行一次;针对上例,如果选择针对上例,如果选择a=2,b=0,x=3,则程,则程序按照路径序按照路径ace执行,这样,程序段中的四个执行,这样,程
13、序段中的四个语句均得到执行,从而达到了语句覆盖。如语句均得到执行,从而达到了语句覆盖。如果果a=2,b=1,x=3,则程序按照路径,则程序按照路径abe执行,执行,便未能达到语句覆盖。便未能达到语句覆盖。24语句覆盖优缺点语句覆盖优缺点语句覆盖虽然使得程序中的每个语句都得到语句覆盖虽然使得程序中的每个语句都得到执行,但并不能全面地检验每一条语句。这执行,但并不能全面地检验每一条语句。这种覆盖测试不充分,无法发现程序中某些逻种覆盖测试不充分,无法发现程序中某些逻辑运算符和逻辑条件的错误。辑运算符和逻辑条件的错误。例如例例如例2-1的第一个逻辑运算符写成了的第一个逻辑运算符写成了“or”,第二个逻
14、辑运算符写成了,第二个逻辑运算符写成了and,使用测试,使用测试用例用例a=2,b=0,x=3,程序仍将按照路径,程序仍将按照路径ace执行,虽然达到了语句覆盖,但是并没有发执行,虽然达到了语句覆盖,但是并没有发现程序中的错误。现程序中的错误。25判定覆盖判定覆盖测试用例a b xa1 and b=0a=2 or xl执行路径用例12 0 3TTace用例21 0 1FFabd测试用例a b xa1 and b=0a=2 or x1执行路径用例13 0 3TFacd用例22 1 1FTabe判定覆盖是指设计若干测试用例,使程序中的每个判断真假的分支至少遍历一次;26判定覆盖的优缺点判定覆盖的优
15、缺点上边两组测试用例不仅满足了判定覆盖,而上边两组测试用例不仅满足了判定覆盖,而且还达到了语句覆盖,判定覆盖比语句覆盖且还达到了语句覆盖,判定覆盖比语句覆盖更强一些。更强一些。但是,上例若把但是,上例若把x1错写为错写为x1,b=0记为记为t1,t22)a1,b0记为记为t1,-t23)a=1,b=0记为记为-t1,t24)a=1,b0记为记为-t1,-t25)a=2,x1记为记为t3,t46)a=2,x=1记为记为t3,-t47)a2,x1记为记为-t3,t48)a2,x=1记为记为-t3,-t4条件组合覆盖是指选择条件组合覆盖是指选择足够的测试用例,使得足够的测试用例,使得程序中每一个分支
16、判断程序中每一个分支判断中的每一个条件的每一中的每一个条件的每一种可能组合结果都至少种可能组合结果都至少被执行一次;被执行一次;31条件组合覆盖测试用例条件组合覆盖测试用例 测试用例 a b x 覆盖组合号执行路径 覆盖条件 用例1 2 0 3 1,5 acet1,t2,t3,t4 用例2 2 1 1 2,6 abet1,-t2,t3,-t4 用例3 1 1 1 4,8 abd-t1,-t2,-t3,-t4 用例4 1 0 3 3,7 abe-t1,t2,-t3,t4上边四个测试用例虽然覆盖了条件组合和分支,但是仅覆盖了三条路径,漏掉了路径acd。32路径覆盖路径覆盖 测试用例 a b x 覆
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 02 测试
限制150内