版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、南天培训教材系列 版权所有(c)南天信息 白盒测试技术 广州南天电脑系统有限公司 质量中心 南天培训教材系列 版权所有(c)南天信息 目录 白盒测试概述 白盒测试基本技术 白盒测试方法 白盒测试基本概念 词法和语法分析技术 静态错误分析技术 程序插桩技术 代码检查法 静态结构分析法 静态质量度量法 逻辑覆盖法 基本路径覆盖法 其他方法 南天培训教材系列 版权所有(c)南天信息 为什么要进行白盒测试 n从清洗面包机讲起 n现在假定这个面包机多年未用,内 部都生锈了,现在要清洗它,类似 于我们开发的软件,软件有bug, 那得通过测试来清理。 n有两种洗法,一是拿水从上往下灌, 这是系统测试的方法。
2、另一种是拆 开来洗,拆开机器后,拿抺布沾点 清洁剂,把各零件的坑坑槽槽擦洗 一遍,然后组装回来,再用水从上 往下冲一遍,拆开来洗是白盒方法, 组装回来用水冲是黑盒方式,相当 于白盒测试之后再追加一次系统测 试。 n所以,软件的白盒测试不可或缺, 因为遗留bug的影响很大,就像面 包机没洗净留铁锈会致癌,还因为 软件系统远比面包机复杂,不拆开 来怎么能洗干净! 南天培训教材系列 版权所有(c)南天信息 第一章 白盒测试的基本概念 n白盒测试又称结构测试、 透明盒测试、逻辑驱动 测试或基于代码的测试。 盒子指的是被测试的软 件,白盒指的是盒子是 可视的,你清楚盒子内部 的东西以及里面是如何 运作的
3、。白盒测试是被 测代码可见的测试 。与 黑盒测试的概念是相反 的。 3581322.29341998568030282973 4315 250*(1+0.015)*(1+0.015)360- 1)/0.015 白盒测试白盒测试 带上带上x x光眼镜测光眼镜测 试试 南天培训教材系列 版权所有(c)南天信息 第一章 白盒测试的基本概念 n白盒测试的原则: 1)保证模块中每一个独立的路径至少执行 一次。 2)保证所有判断的每一个分支至少执行一 次。 3)保证每一个循环都在边界条件和一般条 件下至少执行一次。 4)验证所有内部数据结构的有效性。 南天培训教材系列 版权所有(c)南天信息 第一章 白盒
4、测试的基本概念 黑黑 盒盒 测测 试试 vs 白白 盒盒 测测 试试 黑盒测试黑盒测试白盒测试白盒测试 不涉及程序结构考查程序逻辑结构 用软件规格说明设计 测试用例 用程序结构信息生成 测试用例 确认测试和系统测试 单元测试和集成测试 某些代码得不到测试 对所有逻辑路径进行 测试 南天培训教材系列 版权所有(c)南天信息 第二章 白盒测试基本技术 词法与语法分析 静态错误分析 程序插桩技术 白 盒 测 试 的 几 种 基 本 技 术 南天培训教材系列 版权所有(c)南天信息 一、词法与语法分析 n通过词法与语法分析可以获取软件组成的重要基本 因数,包括变量标识符、过程标识符、常量等。 1)标号
5、交叉引用表标号交叉引用表:列出各模块中出现的全部标 号及标号的属性,模块以外的全局、计算标号。 2)变量交叉引用表变量交叉引用表:列出变量定义及引用信息, 变量的属性,变量类型(全局、局部) 3)子程序、宏和函数表子程序、宏和函数表:列出各个子程序、宏及 函数的属性,输入、输出参数信息。 4)等价表等价表:列出在等价语句和等值语句中出现的 全部变量和标号。 5)常数表常数表:列出全部数字常数和字符常数 。 使用这些引用表可以直接查出说明或使用错误、 为用户提高辅助信息和做错误预测、程序复杂度计 算。 南天培训教材系列 版权所有(c)南天信息 例子 根据流程图来导出其定义 和引用的变量,导出变量
6、 交叉引用表来查看程序中 存在的问题: 1 2 3 4 56 7 8 9 1 0 1 1 节 点 被定义变 量 被引用变 量 1x,y,z 2xw,x 3x,y 4y,z 5yv,y 6zv,z 7vx 8wy 9zv 10zz 11z 南天培训教材系列 版权所有(c)南天信息 例子(答案) n从定义和引用表来看,该程序有两个错误: 1)语句2使用了变量w,而在此之前并未对 其定义。 2)语句5、6使用变量v,这在第一次执行 循环时也未对其定义过。 此外,该程序还包括一个异常: 3)语句8对w的定义也从未使用过。 南天培训教材系列 版权所有(c)南天信息 表格作用 利用以上表格可以直接找出以下
7、问题: n引用未定义的变量(错误) n未曾使用的定义(错误) n常数传播(可优化) n循环内的不变定义(可优化) n用错的局部变量和全局变量(错误) n不匹配的参数(错误) n不允许的递归(错误) n 南天培训教材系列 版权所有(c)南天信息 二、静态错误分析 类型和单位分析类型和单位分析 引用分析引用分析 表达式分析表达式分析 对源程序的类型进行检查,为了强化检查效果, 扩充一些新的数据类型,进行静态预处理程序, 分析程序中的类型错误。 对程序中变量的引用进行检查,发现引用异常错误 (如变量在定义前被引用,变量定义后未被引用)。 采用深度优选的方法遍历程序流图的每一条路径。 建立引用异常的探
8、测工具,包括变量定义表和变量引用表。 对表达式进行分析,以发现和纠正在表达式出现的错误,如: 在表达式中不正确的使用了括号造成错误;数组下标越界错误 ;除数为零;浮点数计算的误差(最复杂)。 接口分析接口分析 各模块之间接口一致性。 模块与外部数据库的接口一致性。 形参与实参在类型,数量,顺序,维数,使用上的一致性。 全局变量和公共数据区在使用上的一致性。 南天培训教材系列 版权所有(c)南天信息 三、程序插桩技术 设计时考虑的问题 如下: 明确要探测哪些信 息; 在程序的什么部位 设置探测点; 需要设计多少个探 测点。 探测点设置位置 (以fortran为 例): 程序块的第一个可 执行语句
9、之前; entry语句的前后; 有标号的可执行语 句处; 循环、条件、call、 go to语句之后; 向程序中插入断言 语句来测试: 当断言语句成立时, 程序可以继续往下 执行,否则将终止 该程序。 在动态测试中,是一种基本的测试手段,有广泛的应用。主要借助 向程序中插入操作,来实现测试目的的方法(即向源程序中添加一些语 句(也称探测器),实现对程序语句的执行、变量的变化等情况进行检 查)。 南天培训教材系列 版权所有(c)南天信息 断言语句 n在程序中特定部位插入某些用以判断变量特性 的语句,使得程序执行中这些语句得以证实, 从而使程序的运行特性得到证实。我们把插入 的这些语句称为断言。这
10、一做法是程序正确性 证明的基本步骤,尽管算不上严格的证明,但 方法本身仍然是很实用的。 n在什么情况下该插入断言语句: 1)程序的入口处需要插入断言语句; 2)在判定语句的前后需要插入断言语句; 3)可以判断出变量确切值时,可以插入断言 语句来断言变量的值。 南天培训教材系列 版权所有(c)南天信息 断言语句实例分析 源代码如下: public class samplecalculator public int add(int augend , int addend) return augend + addend ; public int subtration(int minuend , in
11、t subtrahend) return minuend - subtrahend ; 南天培训教材系列 版权所有(c)南天信息 断言语句实例分析 使用junit工具编写断言语句的测试代码如下: public class testsample extends testcase public void testadd() samplecalculator calculator = new samplecalculator(); int result = calculator.add(50 , 20); assertequals(70 , result);/*断言预期结果为70*/ public
12、void testsubtration() samplecalculator calculator = new samplecalculator(); int result = calculator.subtration(50 , 20); assertequals(30 , result);/*断言预期结果为30*/ 南天培训教材系列 版权所有(c)南天信息 包括桌面检查、代码审查和走查等包括桌面检查、代码审查和走查等 通过测试工具分析源程序的各种内部结构通过测试工具分析源程序的各种内部结构 用质量度量模型来评估软件的每个方面用质量度量模型来评估软件的每个方面 通过对程序逻辑结构的遍历实现程
13、序的覆盖通过对程序逻辑结构的遍历实现程序的覆盖 分析控制流图环路复杂性,导出基本可执行路径的集合分析控制流图环路复杂性,导出基本可执行路径的集合 代码检查法 静态结构分析法 静态质量度量法 逻辑覆盖法 基本路径测试法 第三章 白盒测试方法 白盒测试的几种测试方法 其他方法 包括域测试、符号测试、包括域测试、符号测试、z路径覆盖和程序变异等路径覆盖和程序变异等 南天培训教材系列 版权所有(c)南天信息 一、代码检查法 目的: n排除违背程序编写标准的问题 n排除违背程序编程风格的问题 n找出程序中不可移植的部分 n发现程序中不安全、不明确和模糊的部分 n确保代码和设计的一致性 n确保代码的逻辑表
14、达的正确性 n确保代码结构的合理性 南天培训教材系列 版权所有(c)南天信息 一、代码检查法 由程序员检查自己的程序 程序编译通过后,对源 程序代码进行分析、检 验,并补充相关的文档 ,为了发现程序中的错 误。 由审查小组静态分析程序 以审查会议的形式审查 设计规格说明书、控制 流程图、程序文本、有 关要求和规范是否存在 错误。 由走查小组将程序沿逻辑运行一遍 以会议的形式借助测试 用例让程序沿逻辑运行 一遍,记录程序的踪迹 ,对程序的逻辑和功能 提出的问题展开讨论, 为了能发现更多问题。 代码审查代码审查走查走查桌面检查桌面检查 代码检查方式 南天培训教材系列 版权所有(c)南天信息 几种检
15、查方式比较 方式名称方式名称执行人员执行人员检查内容、过程检查内容、过程 桌面检查 程序员 对源代码进行分析、检验, 并补充相关的文档,发现程 序中的错误。 代码审查程序员和测 试员组成审 查小组 通过阅读、讨论和争议,以 程序进行静态分析的过程。 走查程序员和测 试员组成审 查小组 通过逻辑运行程序,发现问 题。 南天培训教材系列 版权所有(c)南天信息 代码检查项目 n检查变量的交叉引用表。 n检查标号的交叉引用表。 n检查子程序、宏、函数。 n等价性检查。 n标准检查。 n风格检查。 n比较控制流。 n选择、激活路径。 n对照程序的规格说明和源代码。 n补充文档。 南天培训教材系列 版权
16、所有(c)南天信息 代码检查重点和规则 n代码检查重点: 变量命名和类型审查 变量初始值检查 变量作用范围检查 程序逻辑审查 程序语法检查 程序结构检查 n根据编程语言以及被测试程序的特点,选择 自动化测试工具中内置的合适的编码规则来 进行检查。 南天培训教材系列 版权所有(c)南天信息 编码规范 n是程序编写过程中必须遵循的规则,详细规 定了代码的语法规则、语法格式等。从以下 几个方面的规定进行检查: n排版、注释、标识符命名、可读性、变量、 函数、过程、可测性、程序效率、质量保证、 代码编辑、编译和审查、代码测试、维护和 宏。 南天培训教材系列 版权所有(c)南天信息 缺陷检查表 n缺陷检
17、查表既检查时用到的测试用例,里面包括一 些容易出错的地方和以往遇到的典型错误如下: (每种语言有各自的特点) n格式部分。 n入口和出口的连接。 n程序语言的使用。 n存储器的使用。 n判断和转移。 n性能。 n可维护性。 n逻辑。 n可靠性。 南天培训教材系列 版权所有(c)南天信息 二、静态结构分析法 静态分析静态分析 内部文件调用关系图内部文件调用关系图 子程序表、宏和函数参数表子程序表、宏和函数参数表 函数调用关系图函数调用关系图 模块控制流图模块控制流图 (使用(使用 logiscope测试测试 工具)工具) 生成 生成 生成 生成 南天培训教材系列 版权所有(c)南天信息 二、静态
18、结构分析法 n在设计和开发阶段,使用logiscope可以对软件的 体系结构和编码进行确认。可以在尽可能的早期阶 段检测那些关键部分,寻找潜在的错误,并在禁止 更改和维护工作之前做更多的工作。 nlogiscope rulechecker:根据工程中定义的编程规则自动检 查软件代码错误,可直接定位错误。包含大量标准规则,用户 也可定制创建规则。自动生成测试报告。 nlogiscope audit:定位错误模块,可评估软件质量及复杂程度。 提供代码的直观描述,自动生成软件文档。 nlogiscope testchecker:测试覆盖分析,显示没有测试的代码 路径,基于源码结构分析。直接反馈测试效
19、率和测试进度,协 助进行衰退测试。既可在主机上测试,也可在目标板上测试。 支持不同的实时操作系统、支持多线程。可累积合并多次测试 结果,自动鉴别低效测试和衰退测试。自动生成定制报告和文 档。 nlogiscope分为audit、rulechecker和testchecker3部分,对代 码分别进行静态度量、编程风格检测和测试覆盖率分析 。 南天培训教材系列 版权所有(c)南天信息 三、静态质量度量法 有效性(时间特 性、资源特性 ) 可靠性(成熟性、 容错性、可恢复 性 ) 可用性(可理解 性、易学性、可 操作性 ) 轻便性(即可移植 性,包括适应性、 可安装性、一致性、 可替换性 ) 可维护
20、性(可分析 性、可修改性、稳 定性、可测性 ) 功能性(适合性、准确性、互操 作性、依从性、安全性 ) 质量质量 南天培训教材系列 版权所有(c)南天信息 构造质量模型度量可维护性 n确定度量的规则:代码行数、注释频度等度量软件 的各种行为属性。度量规则参数表参考书本p176。 n确定所采用的分类标准:可分析性、可修改性、稳 定性和可测性,每个分类标准由一系列度量规则组 成,由规则的取值与权重值计算出每个分类标准的 取值。分类标准组参考书本p177。 n计算出各分类标准后确定代码的质量等级:优秀、 良好、一般和较差。 n根据分类标准的计算结果来确定质量因素的取值, 也分为四个等级:优秀、良好、
21、一般和较差。 可以使用上述得出的计算数据来量化被测程序的质 量。 南天培训教材系列 版权所有(c)南天信息 软件质量评价过程 确立评价需求 确立评价目的 确定产品类型 指定质量模型 16260.1 质量模型 选择度量 建立度量评定等级 建立评估准则 16260.2 外部度量 16260.3 内部度量 18905.6 评价模块 规定评价 制定评价计划 设计评价 进行度量 与评估准则相比较 评估结果 执行评价 南天培训教材系列 版权所有(c)南天信息 四、逻辑覆盖法 n这是其中一种动态白盒测试的方法,动态白盒测试 也称结构化测试 ,要根据程序的控制结构设计相应 的测试用例,原则如下: 1)保证一个
22、模块中的所有独立路径至少被使用一 次。 2)对所有逻辑值均需测试true和false。 3)在上下边界及可操作范围内运行所有循环。 4)检查内部数据结构以确保其有效性。 n逻辑覆盖法是其中一种实用的白盒测试用例设计的 方法,是通过对程序逻辑结构的遍历来实现程序的 覆盖,是一系列测试过程的总称。 n逻辑覆盖标准包括以下几种:语句覆盖(sc)、判 定覆盖(dc)、条件覆盖(cc)、条件判定组合覆 盖(cdc)、多条件覆盖(mcc)和修正判定条件 覆盖(mcdc)。 南天培训教材系列 版权所有(c)南天信息 四、逻辑覆盖法 首先,来看个例子,源代码如下: if (!(x=80) else /* 语句
23、1 */ printf(“you are right); 南天培训教材系列 版权所有(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 1011 13 南天培训教材系列 版权所有(c)南天信息 例子 控制流图如下: 4 6 7 14 8 10 11 13 南天培训教材系列 版权所有(c)南天信息 例子 二、计算圈复杂度,
24、计算如下: 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的某一个值 预期结果:x=0 路径2:4-6-7-14 输入数据:irecordnum=1,itype=0 预期结果:x=2 路径3:4-6-8-10-13-4-14 输入数据:ire
25、cordnum=1,itype=1 预期结果:x=10 路径4:4-6-8-11-13-4-14 输入数据:irecordnum=1,itype=2 预期结果:x=20 南天培训教材系列 版权所有(c)南天信息 五、基本路径法 基本路径法缺点: n缺点1:只考虑每个判定表达式的取值,并没 有检验表达 式中条件的各种可能组合情况 解决办法:1、拆分 2、和条件覆盖法结合起来使用 n缺点2:对循环结构测试不充分 解决办法:对循环结构进行补充测试 南天培训教材系列 版权所有(c)南天信息 六、其他白盒测试方法 域测试符号测试 方法方法 ab 程序变异 d z路径覆盖 c 允许程序的输入不仅仅 是具体的数值数据,而 且包括符号值。 针对某类特定程序错误 而进行的错误驱动测试。 主要针对域错误进行 的程序测试。主要是 对输入空间的分析。 分析程序中的路径是 指检验程序从入口开 始,执行过程中经历 的各个语句,直到出 口。 南天培训教材系列 版权所有(c)南天信息 白盒测试方法小结 从前面的例子我们可以看到,采用任 何一种覆盖方法都不能满足我们的要求, 所以,在实际的测试用例设计过程中,可 以根据需要将不同的覆盖方法组合起来使 用,以实现最佳的测
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年钢筋施工承揽具体合同版B版
- 一年级人自然社会教案(全册)浙江版
- 预制柱吊装施工工艺正式版
- 2024版苏州租赁房屋家具清单3篇
- 2024年餐饮业标准原材料购销协议样本一
- 2024年简化版离婚协议书样本
- 黔南民族师范学院《offce办公软件三剑客》2023-2024学年第一学期期末试卷
- 2024苏州二手房买卖合同风险评估与防控措施协议3篇
- 重庆文理学院《JAVA面向对象编程》2023-2024学年第一学期期末试卷
- 3.1多变的天气【帮课堂】2025学年七年级地理上册同步学与练(人教版)(解析版)
- 外立面改造专项施工方案
- 乡村旅游景观小品装饰创新创意
- 《甲状腺的超声诊断》
- 事业单位岗位设置管理工作手册-台州市事业单位岗位设置管理
- 中医医师定考述职报告3篇
- 医疗系统气动物流传输系统施工工法
- GB/T 42177-2022加氢站氢气阀门技术要求及试验方法
- 多层共挤吹膜
- YY 0286.1-2007专用输液器第1部分:一次性使用精密过滤输液器
- GB/T 4423-2020铜及铜合金拉制棒
- GB/T 4354-2008优质碳素钢热轧盘条
评论
0/150
提交评论