白盒测试的实用技术.ppt
《白盒测试的实用技术.ppt》由会员分享,可在线阅读,更多相关《白盒测试的实用技术.ppt(57页珍藏版)》请在三一办公上搜索。
1、第2章 白盒测试的实用技术 白盒测试(White Box Testing),按照程序内部的结构、逻辑驱动测试程序,通过测试来检测产品内部动作是否按照设计说明书的规定正常进行,检验程序中的每条路径是否都能按预定要求正确工作。,软件测试技术研究组 中国信息大学,白盒测试技术是软件测试的主要方法之一,白盒测试的基本概念、检查方法、测试方法、测试工具等内容是必须掌握的,本章重点讨论以下内容:白盒测试的概述 白盒测试的静态检查方法 白盒测试的常用方法,软件测试技术研究组 中国信息大学,2.1白盒测试的概述 白盒测试的对象主要是源程序。是指用代码内部的分支、路径、条件,使程序设计的控制结构导出测试用例,是
2、软件测试的主要方法之一。2.1.1 白盒测试的基本知识白盒测试方法分为两类:(1)静态测试(2)动态测试:,软件测试技术研究组 中国信息大学,2.1.2 白盒测试测试原则白盒测试的原则有4点:1)保证一个模块中所有路径至少被测试一次;2)所有逻辑值都要测试真和假两种情况;3)检查程序的内部数据结构是否有效;4)检查上、下边界及可操作范围内运行所有循环。,软件测试技术研究组 中国信息大学,2.1.3 白盒测试的类别、依据和流程 白盒测试策略是首先进行静态结构分析,采用先静态后动态的组合方式。然后进行覆盖测试。利用静态测试的分析结果和通过动态测试的结果进行进一步确认已达到测试效果。白盒测试一般要考
3、虑类别、依据和流程。,软件测试技术研究组 中国信息大学,1.白盒测试的类别白盒测试的类别具体分为8大类。(1)软件公用问题的测试;(2)语言测试;(3)SQL语句测试;(4)数据类型测试;(5)界面测试;(6)数值对象测试;(7)业务对象测试;(8)数据管理对象测试。,软件测试技术研究组 中国信息大学,2.白盒测试依据软件需求报告;软件需求规格说明;程序设计文档;软件界面设计;编码规范;开发命名标准。,软件测试技术研究组 中国信息大学,3.白盒测试的流程白盒测试的流程分为界面对象和业务对象两种方式。界面对象测试界面对象测试的流程如图2-1所示。,软件测试技术研究组 中国信息大学,图2-1界面对
4、象的流程图,(2)业务对象流程测试业务对象测试的流程如图2-2所示。,软件测试技术研究组 中国信息大学,图2-2 业务对象测试的流程图,2.2 白盒测试方法 在白盒测试中,可以使用各种测试方法进行测试。但是,测试要考虑五点问题。(1)测试中,尽量先用自动化工具来进行静态结构分析;(2)测试中建议先从静态测试开始,如:静态结构分析、代码走查和静态质量度量,然后进行动态测试,如:覆盖率测试;(3)利用静态分析的结果作为依据,再使用代码检查和动态测试的方式对静态分析结果进行进一步确认,提高测试效率及准确性;(4)覆盖率测试是白盒测试中的重要手段,在测试报告中可以作为量化指标的依据,对于软件的重点模块
5、,应使用多种覆盖率标准衡量代码的覆盖率;(5)在不同的测试阶段,测试的侧重点是不同的。,软件测试技术研究组 中国信息大学,2.2.1 代码检查 代码检查是静态测试的主要方法,代码检查包括代码走查、桌面检查、流程图审查等。对于代码检查从如下几点进行叙述。1)概述 代码检查主要检查代码和流图设计的一致性、代码结构的合理性、代码编写的标准性、可读性、代码的逻辑表达的正确性等方面。包括变量检查、命名和类型审查、程序逻辑审查、程序语法检查和程序结构检查等内容。,软件测试技术研究组 中国信息大学,2)代码走查目的代码走查是为达到以下目的:通过检查代码程序是不是按照某种标准或规范编写的代码;通过检查代码来发
6、现程序缺陷;通过检查代码容易发现程序产生的错误;通过检查代码来发现代码是不是流程图要求的;通过检查代码来发现有没有遗漏的项目;要代码易于移植,代码经常需要在不同的硬件中运行,或者使用不同的编译器编译;要代码易于阅读、理解和维护。,软件测试技术研究组 中国信息大学,2.2.2 代码检查方式代码走查的方式有:1 桌面检查2 走查3 代码审查 代码审查可分为以下两步:第一步:小组负责人把程序文本、规范、相关要求、流程图及设计说明书发给每个成员。第二步:每个成员依据所发材料作为审查依据,但是由程序员讲解程序的结构每、逻辑和源程序。在此过程中,小组成员可以提出自己的疑问;程序员在讲解自己的程序时,也能发
7、现自己原来没有注意到的问题。,软件测试技术研究组 中国信息大学,2.2.3 代码检查项目代码检查项目主要有以下几点:目录文件组织检查函数数据类型及变量检查条件判断语句检查循环体制检查代码注释桌面检查其它检查,软件测试技术研究组 中国信息大学,2.2.4 静态结构分析静态结构分析主要是以图形的方式表现程序的内部结构,例如函数调用关系图、函数内部控制流图。通过应用程序各函数之间的调用关系展示了系统的结构。列出所有函数,用连线表示调用关系和作用。静态结构主要分析:1.可以检查函数的调用关系是否正确;2.是否存在孤立的函数而没有被调用;3.明确函数被调用的频繁度,对调用频繁的函数可以重点检查。,软件测
8、试技术研究组 中国信息大学,2.2.5 SQL语句测试主要检查以下两点:语句检查类型转换2.2.6 代码检查的分析与评价代码检查的分析与评价主要注意以下两大点:1 能力陈述经代码检查证实了的本软件的能力。2 缺陷和限制,软件测试技术研究组 中国信息大学,2.3 白盒测试的常用技术白盒测试常用技术主要有7种。现分别叙述如下:,软件测试技术研究组 中国信息大学,2.3.1 逻辑覆盖法,逻辑覆盖也是白盒测试主要的动态测试方法之一,是以程序内部的逻辑结构为基础的测试技术,是通过对程序逻辑结构的遍历实现程序的覆盖,这一方法要求测试人员对程序的逻辑结构有清楚的了解逻辑覆盖法主要讨论四点:测试覆盖率;逻辑覆
9、盖;面向对象的覆盖;测试覆盖准则。现分别进行讨论。,1.测试覆盖率 测试覆盖率是用于确定测试所执行到的覆盖项的百分比。其中的覆盖项是指作为测试基础的一个入口或属性,比如语句、分支、条件等。测试覆盖率可以表示出测试的充分性,在测试分析报告中可以作为量化指标的依据,测试覆盖率越高效果越好。但覆盖率不是目标,只是一种手段。其中 测试覆盖率包括功能覆盖和结构覆盖,软件测试技术研究组 中国信息大学,2 逻辑覆盖 从覆盖源程序语句的详细程度分析,逻辑覆盖标准有语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖。为便于理解,根据下面所示的2个被测试程序(用C语言书写),分别讨论几种常用的覆盖技术。,
10、程序1如下:void js(float A,floatB,float X)if(A1&B=0)X=X/A;if(A=2|X1)X=X+1;,图2-2 程序1流程图,程序2如下:void DoWork(int x,int y,int z)int k=0,j=0;if(x2),图2-4 程序2流程图,1语句覆盖 语句覆盖使程序中每个语句至少都能被执行一次。例:请对以上的程序1和程序2设计测试用例,达到语句覆盖。,在程序1中,为使程序中每个语句至少执行一次,只需设计一个能通过路径a-c-e的数据就可以了,例如选择输入数据为:A=2,B=0,X=2就可达到“语句覆盖”标准。在程序2中,如测试用例输入为
11、:x=4、y=5、z=5 程序执行的路径是:a-b-d。,如果把程序2中的第二个if 改成else呢?,2判定覆盖 比语句覆盖稍强的覆盖标准是判定覆盖。按判定覆盖准则进行测试是指,设计若干测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假值均曾被满足。判定覆盖又称为分支覆盖。,例:请对以上的程序1和程序2设计测试用例,达到判定覆盖。,程序1:判定覆盖判定如下:A1&B=0 为真 为假 A=2|X1为真 为假测试用例如下:A=2 B=0 X=1 覆盖1,3A=5 B=0 X=0 覆盖2,4,3条件覆盖 在设计程序中,一个判定语句是由多个条件组合而成的复合判定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 测试 实用技术
链接地址:https://www.31ppt.com/p-6594246.html