下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、南天培训教材系列 版权所有(C)南天信息,白盒测试技术,广州南天电脑系统有限公司 质量中心,南天培训教材系列 版权所有(C)南天信息,目录,南天培训教材系列 版权所有(C)南天信息,为什么要进行白盒测试,从清洗面包机讲起 现在假定这个面包机多年未用,内部都生锈了,现在要清洗它,类似于我们开发的软件,软件有Bug,那得通过测试来清理。 有两种洗法,一是拿水从上往下灌,这是系统测试的方法。另一种是拆开来洗,拆开机器后,拿抺布沾点清洁剂,把各零件的坑坑槽槽擦洗一遍,然后组装回来,再用水从上往下冲一遍,拆开来洗是白盒方法,组装回来用水冲是黑盒方式,相当于白盒测试之后再追加一次系统测试。 所以,软件的白
2、盒测试不可或缺,因为遗留Bug的影响很大,就像面包机没洗净留铁锈会致癌,还因为软件系统远比面包机复杂,不拆开来怎么能洗干净!,南天培训教材系列 版权所有(C)南天信息,第一章 白盒测试的基本概念,白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。白盒测试是被测代码可见的测试 。与黑盒测试的概念是相反的。,南天培训教材系列 版权所有(C)南天信息,第一章 白盒测试的基本概念,白盒测试的原则: 1)保证模块中每一个独立的路径至少执行一次。 2)保证所有判断的每一个分支至少执行一次。 3)保证每一
3、个循环都在边界条件和一般条件下至少执行一次。 4)验证所有内部数据结构的有效性。,南天培训教材系列 版权所有(C)南天信息,第一章 白盒测试的基本概念,黑 盒 测 试 VS 白 盒 测 试,南天培训教材系列 版权所有(C)南天信息,第二章 白盒测试基本技术,词法与语法分析,静态错误分析,程序插桩技术,白盒测试的几种基本技术,南天培训教材系列 版权所有(C)南天信息,一、词法与语法分析,通过词法与语法分析可以获取软件组成的重要基本因数,包括变量标识符、过程标识符、常量等。 1)标号交叉引用表:列出各模块中出现的全部标号及标号的属性,模块以外的全局、计算标号。 2)变量交叉引用表:列出变量定义及引
4、用信息,变量的属性,变量类型(全局、局部) 3)子程序、宏和函数表:列出各个子程序、宏及函数的属性,输入、输出参数信息。 4)等价表:列出在等价语句和等值语句中出现的全部变量和标号。 5)常数表:列出全部数字常数和字符常数 。 使用这些引用表可以直接查出说明或使用错误、为用户提高辅助信息和做错误预测、程序复杂度计算。,南天培训教材系列 版权所有(C)南天信息,例子,根据流程图来导出其定义和引用的变量,导出变量交叉引用表来查看程序中存在的问题:,1,2,3,4,5,6,7,8,9,10,11,南天培训教材系列 版权所有(C)南天信息,例子(答案),从定义和引用表来看,该程序有两个错误: 1)语句
5、2使用了变量W,而在此之前并未对其定义。 2)语句5、6使用变量V,这在第一次执行循环时也未对其定义过。 此外,该程序还包括一个异常: 3)语句8对W的定义也从未使用过。,南天培训教材系列 版权所有(C)南天信息,表格作用,利用以上表格可以直接找出以下问题: 引用未定义的变量(错误) 未曾使用的定义(错误) 常数传播(可优化) 循环内的不变定义(可优化) 用错的局部变量和全局变量(错误) 不匹配的参数(错误) 不允许的递归(错误) ,南天培训教材系列 版权所有(C)南天信息,二、静态错误分析,类型和单位分析,引用分析,表达式分析,对源程序的类型进行检查,为了强化检查效果, 扩充一些新的数据类型
6、,进行静态预处理程序, 分析程序中的类型错误。,对程序中变量的引用进行检查,发现引用异常错误 (如变量在定义前被引用,变量定义后未被引用)。 采用深度优选的方法遍历程序流图的每一条路径。 建立引用异常的探测工具,包括变量定义表和变量引用表。,对表达式进行分析,以发现和纠正在表达式出现的错误,如:在表达式中不正确的使用了括号造成错误;数组下标越界错误 ;除数为零;浮点数计算的误差(最复杂)。,接口分析,各模块之间接口一致性。 模块与外部数据库的接口一致性。 形参与实参在类型,数量,顺序,维数,使用上的一致性。 全局变量和公共数据区在使用上的一致性。,南天培训教材系列 版权所有(C)南天信息,三、
7、程序插桩技术,设计时考虑的问题如下: 明确要探测哪些信息; 在程序的什么部位设置探测点; 需要设计多少个探测点。,探测点设置位置(以Fortran为例): 程序块的第一个可执行语句之前; Entry语句的前后; 有标号的可执行语句处; 循环、条件、call、go to语句之后;,向程序中插入断言语句来测试: 当断言语句成立时,程序可以继续往下执行,否则将终止该程序。,在动态测试中,是一种基本的测试手段,有广泛的应用。主要借助向程序中插入操作,来实现测试目的的方法(即向源程序中添加一些语句(也称探测器),实现对程序语句的执行、变量的变化等情况进行检查)。,南天培训教材系列 版权所有(C)南天信息
8、,断言语句,在程序中特定部位插入某些用以判断变量特性的语句,使得程序执行中这些语句得以证实,从而使程序的运行特性得到证实。我们把插入的这些语句称为断言。这一做法是程序正确性证明的基本步骤,尽管算不上严格的证明,但方法本身仍然是很实用的。 在什么情况下该插入断言语句: 1)程序的入口处需要插入断言语句; 2)在判定语句的前后需要插入断言语句; 3)可以判断出变量确切值时,可以插入断言语句来断言变量的值。,南天培训教材系列 版权所有(C)南天信息,断言语句实例分析,源代码如下: public class SampleCalculator public int add(int augend , in
9、t addend) return augend + addend ; public int subtration(int minuend , int subtrahend) return minuend - subtrahend ; ,南天培训教材系列 版权所有(C)南天信息,断言语句实例分析,使用Junit工具编写断言语句的测试代码如下: public class TestSample extends TestCase public void testAdd() SampleCalculator calculator = new SampleCalculator(); int result
10、= calculator.add(50 , 20); assertEquals(70 , result);/*断言预期结果为70*/ public void testSubtration() SampleCalculator calculator = new SampleCalculator(); int result = calculator.subtration(50 , 20); assertEquals(30 , result);/*断言预期结果为30*/ ,南天培训教材系列 版权所有(C)南天信息,包括桌面检查、代码审查和走查等,通过测试工具分析源程序的各种内部结构,用质量度量模型来
11、评估软件的每个方面,通过对程序逻辑结构的遍历实现程序的覆盖,分析控制流图环路复杂性,导出基本可执行路径的集合,代码检查法,静态结构分析法,静态质量度量法,逻辑覆盖法,基本路径测试法,第三章 白盒测试方法,白盒测试的几种测试方法,其他方法,包括域测试、符号测试、Z路径覆盖和程序变异等,南天培训教材系列 版权所有(C)南天信息,一、代码检查法,目的: 排除违背程序编写标准的问题 排除违背程序编程风格的问题 找出程序中不可移植的部分 发现程序中不安全、不明确和模糊的部分 确保代码和设计的一致性 确保代码的逻辑表达的正确性 确保代码结构的合理性,南天培训教材系列 版权所有(C)南天信息,一、代码检查法
12、,由程序员检查自己的程序,程序编译通过后,对源程序代码进行分析、检验,并补充相关的文档,为了发现程序中的错误。,由审查小组静态分析程序,以审查会议的形式审查设计规格说明书、控制流程图、程序文本、有关要求和规范是否存在错误。,由走查小组将程序沿逻辑运行一遍,以会议的形式借助测试用例让程序沿逻辑运行一遍,记录程序的踪迹,对程序的逻辑和功能提出的问题展开讨论,为了能发现更多问题。,代码审查,走查,桌面检查,代码检查方式,南天培训教材系列 版权所有(C)南天信息,几种检查方式比较,南天培训教材系列 版权所有(C)南天信息,代码检查项目,检查变量的交叉引用表。 检查标号的交叉引用表。 检查子程序、宏、函
13、数。 等价性检查。 标准检查。 风格检查。 比较控制流。 选择、激活路径。 对照程序的规格说明和源代码。 补充文档。,南天培训教材系列 版权所有(C)南天信息,代码检查重点和规则,代码检查重点: 变量命名和类型审查 变量初始值检查 变量作用范围检查 程序逻辑审查 程序语法检查 程序结构检查 根据编程语言以及被测试程序的特点,选择自动化测试工具中内置的合适的编码规则来进行检查。,南天培训教材系列 版权所有(C)南天信息,编码规范,是程序编写过程中必须遵循的规则,详细规定了代码的语法规则、语法格式等。从以下几个方面的规定进行检查: 排版、注释、标识符命名、可读性、变量、函数、过程、可测性、程序效率
14、、质量保证、代码编辑、编译和审查、代码测试、维护和宏。,南天培训教材系列 版权所有(C)南天信息,缺陷检查表,缺陷检查表既检查时用到的测试用例,里面包括一些容易出错的地方和以往遇到的典型错误如下:(每种语言有各自的特点) 格式部分。 入口和出口的连接。 程序语言的使用。 存储器的使用。 判断和转移。 性能。 可维护性。 逻辑。 可靠性。,南天培训教材系列 版权所有(C)南天信息,二、静态结构分析法,源代码的系统结构,内部控制逻辑,数据结构,数据接口,静态分析,内部文件调用关系图,子程序表、宏和函数参数表,函数调用关系图,模块控制流图(使用Logiscope测试工具),生成,生成,生成,生成,南
15、天培训教材系列 版权所有(C)南天信息,二、静态结构分析法,在设计和开发阶段,使用LOGISCOPE可以对软件的体系结构和编码进行确认。可以在尽可能的早期阶段检测那些关键部分,寻找潜在的错误,并在禁止更改和维护工作之前做更多的工作。 Logiscope RuleChecker:根据工程中定义的编程规则自动检查软件代码错误,可直接定位错误。包含大量标准规则,用户也可定制创建规则。自动生成测试报告。 Logiscope Audit:定位错误模块,可评估软件质量及复杂程度。提供代码的直观描述,自动生成软件文档。 Logiscope TestChecker:测试覆盖分析,显示没有测试的代码路径,基于源
16、码结构分析。直接反馈测试效率和测试进度,协助进行衰退测试。既可在主机上测试,也可在目标板上测试。支持不同的实时操作系统、支持多线程。可累积合并多次测试结果,自动鉴别低效测试和衰退测试。自动生成定制报告和文档。 Logiscope分为Audit、RuleChecker和TestChecker3部分,对代码分别进行静态度量、编程风格检测和测试覆盖率分析 。,南天培训教材系列 版权所有(C)南天信息,三、静态质量度量法,有效性(时间特性、资源特性 ),可靠性(成熟性、容错性、可恢复性 ),可用性(可理解性、易学性、可操作性 ),轻便性(即可移植性,包括适应性、可安装性、一致性、可替换性 ),可维护性
17、(可分析性、可修改性、稳定性、可测性 ),功能性(适合性、准确性、互操作性、依从性、安全性 ),质量,南天培训教材系列 版权所有(C)南天信息,构造质量模型度量可维护性,确定度量的规则:代码行数、注释频度等度量软件的各种行为属性。度量规则参数表参考书本P176。 确定所采用的分类标准:可分析性、可修改性、稳定性和可测性,每个分类标准由一系列度量规则组成,由规则的取值与权重值计算出每个分类标准的取值。分类标准组参考书本P177。 计算出各分类标准后确定代码的质量等级:优秀、良好、一般和较差。 根据分类标准的计算结果来确定质量因素的取值,也分为四个等级:优秀、良好、一般和较差。 可以使用上述得出的
18、计算数据来量化被测程序的质量。,南天培训教材系列 版权所有(C)南天信息,软件质量评价过程,南天培训教材系列 版权所有(C)南天信息,四、逻辑覆盖法,这是其中一种动态白盒测试的方法,动态白盒测试也称结构化测试 ,要根据程序的控制结构设计相应的测试用例,原则如下: 1)保证一个模块中的所有独立路径至少被使用一次。 2)对所有逻辑值均需测试true和false。 3)在上下边界及可操作范围内运行所有循环。 4)检查内部数据结构以确保其有效性。 逻辑覆盖法是其中一种实用的白盒测试用例设计的方法,是通过对程序逻辑结构的遍历来实现程序的覆盖,是一系列测试过程的总称。 逻辑覆盖标准包括以下几种:语句覆盖(
19、SC)、判定覆盖(DC)、条件覆盖(CC)、条件判定组合覆盖(CDC)、多条件覆盖(MCC)和修正判定条件覆盖(MCDC)。,南天培训教材系列 版权所有(C)南天信息,四、逻辑覆盖法,首先,来看个例子,源代码如下: if (!(x=80) ,南天培训教材系列 版权所有(C)南天信息,四、逻辑覆盖法,开始,(x=80) int y=0; while(iRecordNum- 0) if(0=iType) x=y+2;break; else if(1=iType) x=y+10; else x=y+20; ,南天培训教材系列 版权所有(C)南天信息,例子,画出程序流程图:,4,6,7,14,8,10
20、,11,13,南天培训教材系列 版权所有(C)南天信息,例子,控制流图如下:,4,6,7,14,8,10,11,13,南天培训教材系列 版权所有(C)南天信息,例子,二、计算圈复杂度,计算如下: 1)流图中有四个区域。 2)V(G)=10条边-8结点+2=4。 3)V(G)=3个判定结点+1=4 。 三、导出测试用例 路径1:4-14 路径2:4-6-7-14 路径3:4-6-8-10-13-4-14 路径4:4-6-8-11-13-4-14,南天培训教材系列 版权所有(C)南天信息,例子,四、准备测试用例: 路径1:4-14 输入数据:iRecordNum=0,或者取iRecord Num0
21、的某一个值 预期结果:x=0 路径2:4-6-7-14 输入数据:iRecordNum=1,iType=0 预期结果:x=2 路径3:4-6-8-10-13-4-14 输入数据:iRecordNum=1,iType=1 预期结果:x=10 路径4:4-6-8-11-13-4-14 输入数据:iRecordNum=1,iType=2 预期结果:x=20,南天培训教材系列 版权所有(C)南天信息,五、基本路径法,基本路径法缺点: 缺点1:只考虑每个判定表达式的取值,并没有检验表达 式中条件的各种可能组合情况 解决办法:1、拆分 2、和条件覆盖法结合起来使用 缺点2:对循环结构测试不充分 解决办法:对循环结构进行补充测试,南天培训教材系列 版权所有(C)南天信息,六、其他白盒测试方法,南天培训教材系列 版权所有(C)南天信息,白盒测试方法小结,从前面的例子我们可以看到,采用任何一种覆盖方法都不能满足我们的要求,所以,在实际的测试用例设计过程中,可以根据需要将不同的覆盖方法组合起来使用,以实现最佳的测试用例设计 。,南天培训教材系列 版权所有(C)南天信息,白盒测试综合选择策略,在测试中,应尽量先用工具进行静态结构分析; 测试中要采取先静态后动态的组合方式:先进行静态结构分析、代码检查和静态质量度量,再进行覆盖率测试; 利用静态分析的结果作为引导,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 挤压修模工岗后考核试卷含答案
- 珂罗版制版员安全意识强化知识考核试卷含答案
- 金属材涂层机组操作工创新意识强化考核试卷含答案
- 金属版印刷员操作水平模拟考核试卷含答案
- 中药散剂(研配)工岗前安全教育考核试卷含答案
- 新生儿脐炎的并发症及处理
- 基础护理学第四版:疼痛管理
- 莞邑探径:东莞市城区小学教师教育科研素质的现状剖析与进阶策略
- 药液实时精确计量与变量喷雾控制技术:原理、应用与创新
- 荧光原位杂交技术在尿路上皮癌与前列腺癌诊疗中的深度解析与应用拓展
- 全胃切除病人全程营养管理中国专家共识(2026版)
- 2026年四川成都市中考地理试卷含答案
- 2025-2026 学年人音版初中音乐八年级下册全册知识点梳理
- 2026年自贡市自流井区社区工作者招聘笔试参考试题及答案解析
- 2026年版闲鱼卖货实战手册(选品+定价+爆款打造完整攻略)
- 雨课堂学堂在线学堂云审计法律研究与案例(西南政法大学)单元测试考核答案
- “十五五”规划纲要应知应会100题及答案
- 2026安徽合肥市发展和改革委员会上半年招聘事业单位工作人员20人考试备考试题及答案解析
- 限额以下小型工程常见安全隐患指导手册(2026版)
- 年龄相关性黄斑变性课件
- 小水电生态流量监测项目招标文件
评论
0/150
提交评论