软件测试教案课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《软件测试教案课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 教案 课件
- 资源描述:
-
1、第四章第四章 白盒测试及其用例设计白盒测试及其用例设计软件测试概论软件测试概论Software Testing韩启龙韩启龙RCIIP Software Testing2第第4章章 白盒测试及其用例的设计白盒测试及其用例的设计4.1 白盒测试方法白盒测试方法4.2 基本概念基本概念4.3 静态白盒测试静态白盒测试4.4 动态白盒测试动态白盒测试RCIIP Software Testing3本章教学目标本章教学目标理论环节v学习理解白盒测试方法的基本概念学习理解白盒测试方法的基本概念v学习理解白盒测试的覆盖理论学习理解白盒测试的覆盖理论v学习掌握白盒测试的路径表达学习掌握白盒测试的路径表达v学习掌
2、握白盒测试的基本路径测试法学习掌握白盒测试的基本路径测试法实践环节v通过案例运用学习掌握覆盖问题的解决方法通过案例运用学习掌握覆盖问题的解决方法v运用基本路径测试方法进行实际程序测试运用基本路径测试方法进行实际程序测试RCIIP Software Testing44.1 白盒测试方法白盒测试方法v 为什么要进行白盒测试?为什么要进行白盒测试?如果所有软件错误的根源都可以追溯到某个如果所有软件错误的根源都可以追溯到某个唯一原因唯一原因,那,那么问题就简单了。然而,事实上一个么问题就简单了。然而,事实上一个bug 常常是由多个因常常是由多个因素共同导致的,如下图所示。素共同导致的,如下图所示。假设
3、此时开发工作已结束,程序送交到测试组,没有人知道代码中有一个潜在的被 0 除的错误。若测试组采用的测试用例的执行路径没有同时经过x=0和y=5/x进行测试,显然测试工作似乎非常完善,测试用例覆盖了所有执行语句,也没有被 0 除的错误发生。RCIIP Software Testing5白盒测试方法(续)白盒测试方法(续)v 白盒测试也称白盒测试也称结构测试结构测试或或逻辑驱动测试逻辑驱动测试,是针对被测单元,是针对被测单元是如何进行工作的测试。它根据程序的是如何进行工作的测试。它根据程序的设计设计测试用例,主要用于测试用例,主要用于。v 白盒测试法检查程序白盒测试法检查程序内部逻辑结构内部逻辑结
4、构,对,对所有所有逻辑路径进行逻辑路径进行测试,是一种测试,是一种穷举穷举路径的测试方法。路径的测试方法。因为:。因为:穷举路径测试无法检查出程序本身是否违反了设计规范,即程序是否是一个错误的程序。穷举路径测试不可能查出程序因为遗漏路径而出错。穷举路径测试发现不了一些与数据相关的错误。RCIIP Software Testing6白盒测试方法(续)白盒测试方法(续)v 采用白盒测试方法必须遵循以下采用白盒测试方法必须遵循以下几条原则几条原则,才能,才能达到测试的目的:达到测试的目的:1.保证一个模块中的保证一个模块中的所有独立路径所有独立路径至少被测试一次。至少被测试一次。2.所有逻辑值所有逻
5、辑值均需测试真均需测试真(true)和假和假(false)两种情两种情况。况。3.检查程序的检查程序的内部数据结构内部数据结构,保证其结构的有效性。,保证其结构的有效性。4.在上下边界及可操作范围内运行在上下边界及可操作范围内运行所有循环所有循环。v 白盒测试主要是检查程序的白盒测试主要是检查程序的内部结构、逻辑、循内部结构、逻辑、循环和路径。环和路径。常用测试用例设计方法有:常用测试用例设计方法有:逻辑覆盖法(逻辑驱动测试)逻辑覆盖法(逻辑驱动测试)基本路径测试方法基本路径测试方法RCIIP Software Testing74.2 白盒测试的基本概念白盒测试的基本概念4.2.1 控制流图控
6、制流图4.2.2 环形复杂度环形复杂度4.2.3 图矩阵图矩阵RCIIP Software Testing84.2.1 控制流图控制流图v控制流图(控制流图(可简称可简称流图)流图)是对程序流程图进行简化是对程序流程图进行简化后得到的,它可以更加突出的表示后得到的,它可以更加突出的表示程序控制流的结程序控制流的结构。构。v控制流图中包括两种图形符号:控制流图中包括两种图形符号:节点节点和和控制流线。控制流线。节点由带标号的节点由带标号的圆圈圆圈表示,可代表表示,可代表一个或多个语句一个或多个语句、一一个处理框序列和一个条件判定框个处理框序列和一个条件判定框(假设不包含复合条(假设不包含复合条件
7、)。件)。控制流线由带箭头的弧或线表示,可称为边。它代表程控制流线由带箭头的弧或线表示,可称为边。它代表程序中的控制流。序中的控制流。RCIIP Software Testing9常见结构的控制流图常见结构的控制流图顺序结构IF选择结构WHILE重复结构UNTIL重复结构CASE多分支结构其中,包含条件的节点被称为判定节点判定节点(也叫谓词节点),由判定节点发出的边必须终止于某一个节点,由边和节点所限定的范围被称为区域区域。RCIIP Software Testing10控制流图样例控制流图样例RCIIP Software Testing11复合条件的分解复合条件的分解对于复合条件,则可将其分
8、解为多个对于复合条件,则可将其分解为多个单个条件,并映射成控制流图。单个条件,并映射成控制流图。RCIIP Software Testing124.2.2 环形复杂度环形复杂度v环形复杂度也称为环形复杂度也称为圈复杂度,圈复杂度,它是一种为它是一种为程序程序逻辑复杂度逻辑复杂度提供定量尺度的软件度量。提供定量尺度的软件度量。v环形复杂度的应用环形复杂度的应用可以将环形复杂度用于可以将环形复杂度用于基本路基本路径方法径方法,它可以提供:程序基本集的,它可以提供:程序基本集的独立路径数量独立路径数量;确保确保所有语句所有语句至少执行一次的测试数量的上界至少执行一次的测试数量的上界。独立路径是指程序
9、中至少引入了一个新的处理语句集合或一个新条件的程序通路。采用流图的术语,即独立路径必须至少包含一条在本次定义路径之前不曾用过的边。v 测试可以被设计为测试可以被设计为基本路径集基本路径集的执行过程,但基本路径集通常的执行过程,但基本路径集通常并不唯一。并不唯一。RCIIP Software Testing13计算环形复杂度的方法计算环形复杂度的方法v环形复杂度以图论为基础,为我们提供了非常有用环形复杂度以图论为基础,为我们提供了非常有用的软件度量。可用以下方法之一来计算环形复杂度:的软件度量。可用以下方法之一来计算环形复杂度:控制流图中区域的数量对应于环形复杂度。给定控制流图G的环形复杂度V(
10、G),定义为 V(G)=E-N+2 其中,E是控制流图中边的数量,N是控制流图中的节点数量。给定控制流图G的环形复杂度V(G),也可定义为 V(G)=P+1 其中,P是控制流图G中判定节点的数量。RCIIP Software Testing144.2.3 图矩阵图矩阵v图矩阵是图矩阵是控制流图控制流图的的矩阵表示形式矩阵表示形式。v图矩阵是一个图矩阵是一个方形矩阵方形矩阵,其,其维数等于维数等于控制流图的控制流图的节节点数点数。矩阵中的每列和每行都对应于标识的节点,。矩阵中的每列和每行都对应于标识的节点,矩阵元素对应于节点间的边。矩阵元素对应于节点间的边。v通常,控制流图中的结点用数字标识,边
11、则用字母通常,控制流图中的结点用数字标识,边则用字母标识。如果在控制流图中从第标识。如果在控制流图中从第 i 个结点到第个结点到第 j 个个结点有一个标识为结点有一个标识为 x 的边相连接,则在对应图矩的边相连接,则在对应图矩阵的第阵的第 i 行第行第 j 列有一个非空的元素列有一个非空的元素 x。RCIIP Software Testing15图矩阵样例图矩阵样例结点结点12341a2b3c4dRCIIP Software Testing164.3 静态白盒测试静态白盒测试4.3.1 相关概念相关概念4.3.2 代码检查法代码检查法4.3.3 审查审查RCIIP Software Testi
12、ng174.3.1 相关概念相关概念是在是在不执行软件不执行软件条件下有条理地仔条件下有条理地仔细细审查审查软件设计、体系结构和代码,从而找出软软件设计、体系结构和代码,从而找出软件缺陷的过程,有时称为件缺陷的过程,有时称为结构化分析结构化分析。v首要原因首要原因是尽早发现软件缺陷,以找出动态黑盒是尽早发现软件缺陷,以找出动态黑盒测试难以发现或隔离的软件缺陷。在测试难以发现或隔离的软件缺陷。在开发过程初开发过程初期期让测试小组集中精力进行软件设计的审查非常让测试小组集中精力进行软件设计的审查非常有价值。有价值。v另一个原因另一个原因,为黑盒测试员在接受软件进行软件,为黑盒测试员在接受软件进行软
13、件测试时设计和应用测试用例测试时设计和应用测试用例提供思路提供思路。他们可能。他们可能不必了解代码的细节,但是通过听不必了解代码的细节,但是通过听审查评论审查评论,可,可以确定以确定有问题或者容易产生有问题或者容易产生软件缺陷的特性范围。软件缺陷的特性范围。静态白盒测试的好处静态白盒测试的好处RCIIP Software Testing184.3.2 代码检查法代码检查法v检查代码和设计的一致性检查代码和设计的一致性v代码对标准的遵循、可读性代码对标准的遵循、可读性v代码逻辑表达的正确性代码逻辑表达的正确性v代码结构的合理性代码结构的合理性v程序编写与编写标准的符合性程序编写与编写标准的符合性
14、v程序中不安全、不明确和模糊的部分程序中不安全、不明确和模糊的部分v编程风格问题等编程风格问题等 通过通过桌面检查桌面检查,代码审查代码审查和和走查走查方式,对以下方式,对以下内容进行检查:内容进行检查:RCIIP Software Testing194.3.2 代码检查法代码检查法1 1词法和语法分析词法和语法分析 2 2静态错误分析静态错误分析基本技术基本技术 用于确定在源程序中是否有某类错误或用于确定在源程序中是否有某类错误或危险危险结构,结构,包括以下几种:包括以下几种:(1)类型和单位分析类型和单位分析对源程序的类型进行检查,分析程序中的类型错误对源程序的类型进行检查,分析程序中的类
15、型错误(2)引用分析引用分析对程序中变量的引用进行检查,发现引用异常错误(如对程序中变量的引用进行检查,发现引用异常错误(如变量在定义前被引用,变量定义后未被引用)。变量在定义前被引用,变量定义后未被引用)。(3)表达式分析表达式分析(4)接口分析接口分析RCIIP Software Testing204.3.3 审审 查查审查方式审查方式1 1正式审查基本要素正式审查基本要素2 2同事审查同事审查3 3走查走查4 4检验检验通用代码审查清单通用代码审查清单RCIIP Software Testing214.3.3 审审 查查1 1正式审查基本要素正式审查基本要素1.1.确定问题确定问题2.2
16、.遵守规则遵守规则3.3.准备准备4.4.编写报告编写报告审查的目的是找出软件的问题审查的目的是找出软件的问题不仅是出不仅是出错的项目,还包括错的项目,还包括遗漏项目遗漏项目。对象为。对象为代码或代码或设计。设计。审查要遵守一套固定的规则,规则可能设定审查要遵守一套固定的规则,规则可能设定要审查的要审查的代码量代码量,花费时间花费时间,哪些内容哪些内容要做要做评价等。评价等。每个参与者都为审查做准备。根据审查的类每个参与者都为审查做准备。根据审查的类型,参与者可能扮演型,参与者可能扮演不同的角色不同的角色,需要了解,需要了解自己的责任和义务。在审查过程中,大部分自己的责任和义务。在审查过程中,
17、大部分的问题是在准备期间发现的。的问题是在准备期间发现的。审查小组必须做出审查结果的审查小组必须做出审查结果的书面总结报告书面总结报告,并使报告便于开发小组的成员使用。并使报告便于开发小组的成员使用。RCIIP Software Testing224.3.3 审审 查查2 2同事审查同事审查u召集小组成员进行召集小组成员进行初次正式审查初次正式审查最简单的方法是通过最简单的方法是通过同事审查的方式。这是要求最低的正式方式,有时称为同事审查的方式。这是要求最低的正式方式,有时称为伙伴审查伙伴审查。这种方法大体类似于。这种方法大体类似于“你看我的,我看你的你看我的,我看你的”类型的讨论。类型的讨论
18、。u同事审查常常同事审查常常仅在编写代码或设计体系结构的程序员,仅在编写代码或设计体系结构的程序员,以及充当审查者的其他一两个程序员和测试员之间进行。以及充当审查者的其他一两个程序员和测试员之间进行。这个小团体只是在一起审查代码,寻找问题和失误。为这个小团体只是在一起审查代码,寻找问题和失误。为了保证审查的高效率,所有的参与者要切实保证正式审了保证审查的高效率,所有的参与者要切实保证正式审查的查的4个关键基本要素:个关键基本要素:u查找问题、遵守规则、审查准备和编写报告。查找问题、遵守规则、审查准备和编写报告。RCIIP Software Testing234.3.3 审审 查查3 3走查(走
19、查(WalkthroughWalkthrough)u 比同事审查更正规化的下一步。走查中比同事审查更正规化的下一步。走查中编写代码的编写代码的程序员程序员向向5人小组或者其它程序员和测试员组成的小组人小组或者其它程序员和测试员组成的小组做做正式陈述正式陈述。审查人员应该在审查之前接到软件拷贝,。审查人员应该在审查之前接到软件拷贝,以便检查并编写备注和问题,在审查过程中提问。审查以便检查并编写备注和问题,在审查过程中提问。审查人员之中至少有一位人员之中至少有一位资深程序员资深程序员是很重要的。是很重要的。u 陈述者陈述者逐行或者逐个功能逐行或者逐个功能地通读代码,解释代码为地通读代码,解释代码为
20、什么且如何工作。什么且如何工作。审查人员聆听叙述,提出有疑义的问审查人员聆听叙述,提出有疑义的问题。由于公开陈述的参与人数要多于同事审查,因此,题。由于公开陈述的参与人数要多于同事审查,因此,为审查做好为审查做好准备和遵守规则准备和遵守规则是非常重要的。同样重要的是非常重要的。同样重要的是审查之后,表述者是审查之后,表述者编写报告编写报告说明发现了哪些问题,计说明发现了哪些问题,计划如何解决发现的软件缺陷。划如何解决发现的软件缺陷。RCIIP Software Testing244.3.3 审审 查查4 4检验(检验(inspectionsinspections)u 最正式最正式的审查类型,具
21、有高度组织化,要求每一个参的审查类型,具有高度组织化,要求每一个参与者都接受训练。与者都接受训练。检验检验与与同事审查同事审查和和走查走查的的不同之处在不同之处在于表述代码的人于表述代码的人表述者(表述者(presenter)或者宣读)或者宣读(reader)不是原来的程序员不是原来的程序员。这就迫使他学习和。这就迫使他学习和了解要表述的材料,从而有可能在检验会议上提出不同了解要表述的材料,从而有可能在检验会议上提出不同的看法和解释。的看法和解释。u 其余的参与者称为检验员(其余的参与者称为检验员(inspector),其职责是从),其职责是从不同的角度审查代码。不同的角度审查代码。u 有些检
22、验员还同时被委任为会议协调员(有些检验员还同时被委任为会议协调员(moderator)和会议记录员(和会议记录员(recorder),以保证检验过程遵守规则),以保证检验过程遵守规则及审查有效进行。及审查有效进行。RCIIP Software Testing254.3.3 审审 查查通用代码审查清单通用代码审查清单1.1.数据引用错误数据引用错误2.2.数据声明错误数据声明错误3.3.计算错误计算错误4.4.比较错误比较错误5.5.控制流程错误控制流程错误6.6.子程序参数错误子程序参数错误7.7.输入输入/输出错误输出错误8.8.其他错误其他错误RCIIP Software Testing2
23、6数据引用错误数据引用错误 A.A.是否引用了未初始化的变量?是否引用了未初始化的变量?B.B.数组和字符串的下标是整数值吗?下标总是在数组和字符串的下标是整数值吗?下标总是在数组和字符串大小范围之内吗?数组和字符串大小范围之内吗?C.C.在检索操作或者应用数组下标时是否包含在检索操作或者应用数组下标时是否包含 丢丢掉一个掉一个 这样的潜在错误?这样的潜在错误?D.D.是否在应该使用常量的地方使用了变量?是否在应该使用常量的地方使用了变量?E.E.变量是否被赋予不同类型的值?变量是否被赋予不同类型的值?F.F.为引用的指针分配内存了吗?为引用的指针分配内存了吗?G.G.一个数据结构是否在多个函
24、数或者子程序中引一个数据结构是否在多个函数或者子程序中引用,在每一个引用中明确定义结构了吗?用,在每一个引用中明确定义结构了吗?RCIIP Software Testing27数据声明错误数据声明错误 A.A.所有变量都赋予正确的长度、类型和存储类所有变量都赋予正确的长度、类型和存储类了吗?了吗?B.B.变量是否在声明的同时进行了初始化?是否变量是否在声明的同时进行了初始化?是否正确初始化并与其类型一致?正确初始化并与其类型一致?C.C.变量有相似的名称吗?变量有相似的名称吗?D.D.存在声明过、但从未引用或者只引用过一次存在声明过、但从未引用或者只引用过一次的变量吗?的变量吗?E.E.在特定
25、模块中所有变量都显式地声明了吗?在特定模块中所有变量都显式地声明了吗?RCIIP Software Testing28计算错误计算错误 A.A.计算中是否使用了不同数据类型的变量,如整数与浮点数相计算中是否使用了不同数据类型的变量,如整数与浮点数相加?加?B.B.计算中是否使用了数据类型相同但字节长度不同的变量?计算中是否使用了数据类型相同但字节长度不同的变量?C.C.计算时是否了解和考虑到编译器对类型或长度不一致的变量计算时是否了解和考虑到编译器对类型或长度不一致的变量的转换规则?的转换规则?D D.赋值的目的变量是否小于赋值表达式的值?赋值的目的变量是否小于赋值表达式的值?E.E.在数值计
展开阅读全文