软件测试教案课件

上传人:我*** 文档编号:145068574 上传时间:2020-09-16 格式:PPT 页数:80 大小:3.37MB
返回 下载 相关 举报
软件测试教案课件_第1页
第1页 / 共80页
软件测试教案课件_第2页
第2页 / 共80页
软件测试教案课件_第3页
第3页 / 共80页
软件测试教案课件_第4页
第4页 / 共80页
软件测试教案课件_第5页
第5页 / 共80页
点击查看更多>>
资源描述

《软件测试教案课件》由会员分享,可在线阅读,更多相关《软件测试教案课件(80页珍藏版)》请在金锄头文库上搜索。

1、第四章 白盒测试及其用例设计,软件测试概论Software Testing韩启龙,RCIIP Software Testing,2,第4章 白盒测试及其用例的设计,4.1 白盒测试方法 4.2 基本概念 4.3 静态白盒测试 4.4 动态白盒测试,RCIIP Software Testing,3,本章教学目标,理论环节 学习理解白盒测试方法的基本概念 学习理解白盒测试的覆盖理论 学习掌握白盒测试的路径表达 学习掌握白盒测试的基本路径测试法 实践环节 通过案例运用学习掌握覆盖问题的解决方法 运用基本路径测试方法进行实际程序测试,RCIIP Software Testing,4,4.1 白盒测试方

2、法,为什么要进行白盒测试? 如果所有软件错误的根源都可以追溯到某个唯一原因,那么问题就简单了。然而,事实上一个bug 常常是由多个因素共同导致的,如下图所示。,假设此时开发工作已结束,程序送交到测试组,没有人知道代码中有一个潜在的被 0 除的错误。若测试组采用的测试用例的执行路径没有同时经过x=0和y=5/x进行测试,显然测试工作似乎非常完善,测试用例覆盖了所有执行语句,也没有被 0 除的错误发生。,RCIIP Software Testing,5,白盒测试方法(续),白盒测试也称结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试。它根据程序的控制结构设计测试用例,主要用于软件或程

3、序验证。 白盒测试法检查程序内部逻辑结构,对所有逻辑路径进行测试,是一种穷举路径的测试方法。但即使每条路径都测试过了,仍然可能存在错误。因为: 穷举路径测试无法检查出程序本身是否违反了设计规范,即程序是否是一个错误的程序。 穷举路径测试不可能查出程序因为遗漏路径而出错。 穷举路径测试发现不了一些与数据相关的错误。,RCIIP Software Testing,6,白盒测试方法(续),采用白盒测试方法必须遵循以下几条原则,才能达到测试的目的: 保证一个模块中的所有独立路径至少被测试一次。 所有逻辑值均需测试真 (true) 和假 (false) 两种情况。 检查程序的内部数据结构,保证其结构的有

4、效性。 在上下边界及可操作范围内运行所有循环。 白盒测试主要是检查程序的内部结构、逻辑、循环和路径。常用测试用例设计方法有: 逻辑覆盖法(逻辑驱动测试) 基本路径测试方法,RCIIP Software Testing,7,4.2 白盒测试的基本概念,4.2.1 控制流图 4.2.2 环形复杂度 4.2.3 图矩阵,RCIIP Software Testing,8,4.2.1 控制流图,控制流图(可简称流图)是对程序流程图进行简化后得到的,它可以更加突出的表示程序控制流的结构。 控制流图中包括两种图形符号:节点和控制流线。 节点由带标号的圆圈表示,可代表一个或多个语句、一个处理框序列和一个条件判

5、定框(假设不包含复合条件)。 控制流线由带箭头的弧或线表示,可称为边。它代表程序中的控制流。,RCIIP Software Testing,9,常见结构的控制流图,其中,包含条件的节点被称为判定节点(也叫谓词节点),由判定节点发出的边必须终止于某一个节点,由边和节点所限定的范围被称为区域。,RCIIP Software Testing,10,控制流图样例,RCIIP Software Testing,11,复合条件的分解,对于复合条件,则可将其分解为多个单个条件,并映射成控制流图。,RCIIP Software Testing,12,4.2.2 环形复杂度,环形复杂度也称为圈复杂度,它是一种为

6、程序逻辑复杂度提供定量尺度的软件度量。 环形复杂度的应用可以将环形复杂度用于基本路径方法,它可以提供:程序基本集的独立路径数量;确保所有语句至少执行一次的测试数量的上界。 独立路径是指程序中至少引入了一个新的处理语句集合或一个新条件的程序通路。采用流图的术语,即独立路径必须至少包含一条在本次定义路径之前不曾用过的边。 测试可以被设计为基本路径集的执行过程,但基本路径集通常并不唯一。,RCIIP Software Testing,13,计算环形复杂度的方法,环形复杂度以图论为基础,为我们提供了非常有用的软件度量。可用以下方法之一来计算环形复杂度: 控制流图中区域的数量对应于环形复杂度。 给定控制

7、流图G的环形复杂度V(G),定义为 V(G) = E-N+2 其中,E是控制流图中边的数量,N是控制流图中的节点数量。 给定控制流图G的环形复杂度V(G),也可定义为 V(G) = P+1 其中,P是控制流图G中判定节点的数量。,RCIIP Software Testing,14,4.2.3 图矩阵,图矩阵是控制流图的矩阵表示形式。 图矩阵是一个方形矩阵,其维数等于控制流图的节点数。矩阵中的每列和每行都对应于标识的节点,矩阵元素对应于节点间的边。 通常,控制流图中的结点用数字标识,边则用字母标识。如果在控制流图中从第 i 个结点到第 j 个结点有一个标识为 x 的边相连接,则在对应图矩阵的第

8、i 行第 j 列有一个非空的元素 x 。,RCIIP Software Testing,15,图矩阵样例,RCIIP Software Testing,16,4.3 静态白盒测试,4.3.1 相关概念 4.3.2 代码检查法 4.3.3 审查,RCIIP Software Testing,17,4.3.1 相关概念,静态白盒测试是在不执行软件条件下有条理地仔细审查软件设计、体系结构和代码,从而找出软件缺陷的过程,有时称为结构化分析。,首要原因是尽早发现软件缺陷,以找出动态黑盒测试难以发现或隔离的软件缺陷。在开发过程初期让测试小组集中精力进行软件设计的审查非常有价值。 另一个原因,为黑盒测试员在

9、接受软件进行软件测试时设计和应用测试用例提供思路。他们可能不必了解代码的细节,但是通过听审查评论,可以确定有问题或者容易产生软件缺陷的特性范围。,静态白盒测试的好处,RCIIP Software Testing,18,4.3.2 代码检查法,检查代码和设计的一致性 代码对标准的遵循、可读性 代码逻辑表达的正确性 代码结构的合理性 程序编写与编写标准的符合性 程序中不安全、不明确和模糊的部分 编程风格问题等,通过桌面检查,代码审查和走查方式,对以下内容进行检查:,RCIIP Software Testing,19,4.3.2 代码检查法,1词法和语法分析,2静态错误分析,基本技术,用于确定在源程

10、序中是否有某类错误或危险结构,包括以下几种:,(1) 类型和单位分析,对源程序的类型进行检查,分析程序中的类型错误,(2) 引用分析,对程序中变量的引用进行检查,发现引用异常错误(如变量在定义前被引用,变量定义后未被引用)。,(3) 表达式分析,(4) 接口分析,RCIIP Software Testing,20,4.3.3 审 查,审查方式,1正式审查基本要素,2同事审查,3走查,4检验,通用代码审查清单,RCIIP Software Testing,21,4.3.3 审 查,1正式审查基本要素,确定问题,遵守规则,准备,编写报告,审查的目的是找出软件的问题不仅是出错的项目,还包括遗漏项目。

11、对象为代码或设计。,审查要遵守一套固定的规则,规则可能设定要审查的代码量,花费时间,哪些内容要做评价等。,每个参与者都为审查做准备。根据审查的类型,参与者可能扮演不同的角色,需要了解自己的责任和义务。在审查过程中,大部分的问题是在准备期间发现的。,审查小组必须做出审查结果的书面总结报告,并使报告便于开发小组的成员使用。,RCIIP Software Testing,22,4.3.3 审 查,2同事审查,召集小组成员进行初次正式审查最简单的方法是通过同事审查的方式。这是要求最低的正式方式,有时称为伙伴审查。这种方法大体类似于“你看我的,我看你的”类型的讨论。 同事审查常常仅在编写代码或设计体系结

12、构的程序员,以及充当审查者的其他一两个程序员和测试员之间进行。这个小团体只是在一起审查代码,寻找问题和失误。为了保证审查的高效率,所有的参与者要切实保证正式审查的4个关键基本要素: 查找问题、遵守规则、审查准备和编写报告。,RCIIP Software Testing,23,4.3.3 审 查,3走查(Walkthrough),比同事审查更正规化的下一步。走查中编写代码的程序员向5人小组或者其它程序员和测试员组成的小组做正式陈述。审查人员应该在审查之前接到软件拷贝,以便检查并编写备注和问题,在审查过程中提问。审查人员之中至少有一位资深程序员是很重要的。 陈述者逐行或者逐个功能地通读代码,解释代

13、码为什么且如何工作。 审查人员聆听叙述,提出有疑义的问题。由于公开陈述的参与人数要多于同事审查,因此,为审查做好准备和遵守规则是非常重要的。同样重要的是审查之后,表述者编写报告说明发现了哪些问题,计划如何解决发现的软件缺陷。,RCIIP Software Testing,24,4.3.3 审 查,4检验(inspections),最正式的审查类型,具有高度组织化,要求每一个参与者都接受训练。检验与同事审查和走查的不同之处在于表述代码的人表述者(presenter)或者宣读(reader)不是原来的程序员。这就迫使他学习和了解要表述的材料,从而有可能在检验会议上提出不同的看法和解释。 其余的参与

14、者称为检验员(inspector),其职责是从不同的角度审查代码。 有些检验员还同时被委任为会议协调员(moderator)和会议记录员(recorder),以保证检验过程遵守规则及审查有效进行。,RCIIP Software Testing,25,4.3.3 审 查,通用代码审查清单,数据引用错误 数据声明错误 计算错误 比较错误 控制流程错误 子程序参数错误 输入/输出错误 其他错误,RCIIP Software Testing,26,数据引用错误,A. 是否引用了未初始化的变量?B. 数组和字符串的下标是整数值吗?下标总是在数组和字符串大小范围之内吗?C.在检索操作或者应用数组下标时是否

15、包含丢掉一个这样的潜在错误?D.是否在应该使用常量的地方使用了变量?E.变量是否被赋予不同类型的值?F.为引用的指针分配内存了吗?G.一个数据结构是否在多个函数或者子程序中引用,在每一个引用中明确定义结构了吗?,RCIIP Software Testing,27,数据声明错误,A.所有变量都赋予正确的长度、类型和存储类了吗?B.变量是否在声明的同时进行了初始化?是否正确初始化并与其类型一致?C.变量有相似的名称吗?D.存在声明过、但从未引用或者只引用过一次的变量吗?E.在特定模块中所有变量都显式地声明了吗?,RCIIP Software Testing,28,计算错误,A.计算中是否使用了不同

16、数据类型的变量,如整数与浮点数相加?B.计算中是否使用了数据类型相同但字节长度不同的变量?C.计算时是否了解和考虑到编译器对类型或长度不一致的变量的转换规则?D.赋值的目的变量是否小于赋值表达式的值?E.在数值计算过程中是否可能出现溢出?F.除数或模是否可能为零?G.对于整型算术运算或某些计算,特别是除法的代码处理是否会丢失精度?H.变量的值是否超过有意义的范围?I.对于包含多个操作的表达式,求值次序是否混乱,运算优先级对吗?需要加括号使其清晰吗?,RCIIP Software Testing,29,比较错误,A.比较得正确吗?B.存在分数或者浮点数之间的比较吗?如果有,精度问题会影响比较吗?1.00000001和1.00000002极其接近,它们相等吗?C.每一个逻辑表达式都正确地表达了吗?逻辑计算如期进行了吗?求值次序有疑问吗?D.逻辑表达式的操作数是逻辑值吗?,RCIIP Software Testing,30,控制流程错误,A.程序中的语句组是否对应?B.程序、模块、子程序和循环能否终止?如果不能,可以接受吗?C.可能存在永远不停的循环吗?D.循环可能从不执

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号