(VIP专享)4-1结构性测试-控制流测试课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《(VIP专享)4-1结构性测试-控制流测试课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VIP专享 VIP 专享 结构性 测试 控制 课件
- 资源描述:
-
1、 结构性测试(结构性测试(1 1)控制流测试控制流测试结构性测试n结构性测试方法的突出特点,是它们都基于被测程序的源代码,而不是基于定义n由于这种绝对化的基础,结构性测试方法支持严格定义、数据分析和精确度量n结构性测试方法大致包括两类:p基于控制流(或基于路径)的测试:以程序图为基础(结点表示语句片断,边表示控制流),通过图论的一些知识完全从程序的结构来定义结构性的测试,而不考虑代码本身的内在关系p基于数据流的测试:从代码本身的内在关系出发进行的一种结构性的测试内容n逻辑覆盖p语句覆盖p判定覆盖(分支覆盖)p条件覆盖p判定-条件覆盖p条件组合覆盖p路径覆盖nDD路径n基路径测试例:实现一个简单
2、的数学运算1.int a,b;2.double c;3.scanf(“%d,%d,%f”,&a,&b,&c)4.If(a0 And b0)5.c=c/a;6.If(a1 or c1)7.c=c+1;8.c=b+c语句覆盖n基本思想是:设计若干测试用例,运行被测程序,使程序中每个可执行语句至少执行一次。1n只需设计一个测试用例:a=2,b=1,c=6,即达到了语句覆盖。语句覆盖(续)语句覆盖(续)n优点:可以很直观地从源代码得到测试用例,无须细分每条判定表达式。n缺点:语句覆盖是最弱的逻辑覆盖。对程序的逻辑覆盖很少,只关心判定表达式的值,而没有分别测试判定表达式中每个条件取不同值时的情况。(这种
3、方法仅仅针对程序逻辑中显式存在的语句,但对于隐藏的条件是无法测试的。比如在if结构中若源代码没有给出else后面的执行分支,那么语句覆盖测试就不会考虑这种情况。)内容n逻辑覆盖p语句覆盖p判定覆盖(分支覆盖)p条件覆盖p判定-条件覆盖p条件组合覆盖p路径覆盖nDD路径n基路径测试判定覆盖n基本思想是:设计若干测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断真假值均曾被满足。判定覆盖(续)na=2,b=1,c=6可覆盖判断M的Y分支和判断Q的Y分支na=-2,b=-1,c=-3可覆盖判断M的N分支和判断Q的N分支n这两组测试用例可覆盖所有判定的真假分支判断M判断
4、Q判定覆盖(续)na=1,b=1,c=-3 可覆盖判断M的Y分支和判断Q的N分支na=1,b=-2,c=3可覆盖判断M的N分支和判断Q的Y分支n同样的这两组测试用例也可覆盖所有判定的真假分支判断M判断Q判定覆盖(续)n优点:判定覆盖具有比语句覆盖更强的测试能力。同样判定覆盖也具有和语句覆盖一样的简单性,无须细分每个判定就可以得到测试用例。n缺点:往往大部分的判定语句是由多个逻辑条件组合而成,若仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。判定覆盖仍是弱的逻辑覆盖。内容n逻辑覆盖p语句覆盖p判定覆盖(分支覆盖)p条件覆盖p判定-条件覆盖p条件组合覆盖p路径覆盖nDD路
5、径n基路径测试条件覆盖n基本思想是:设计若干测试用例,执行被测程序以后要使每个判断中每个条件的可能取值至少满足一次。1条件覆盖(续)n判断M表达式:设条件 a0 取真 记为 T1 假 F1 条件 b0 取真 记为 T2 假 F2n判断Q表达式:设条件 a1 取真 记为 T3 假 F3 条件 c1 取真 记为 T4 假 F4判断判断M判断判断Q条件覆盖(续)测试用例覆盖条件具体取值条件a=2,b=-1,c=-2T1,F2,T3,F4a0,b1,c=1a=-1,b=2,c=3F1,T2,F3,T4a0,a1它们覆盖了判定它们覆盖了判定M M的的N分支和判断分支和判断Q Q的的Y分支分支我们用条件覆
6、盖设计的思想就是让测试用例能覆盖我们用条件覆盖设计的思想就是让测试用例能覆盖T1T1、T2T2、T3T3、T4T4、F1F1、F2F2、F3F3、F4F4判断判断M判断判断Q条件覆盖(续)n优点:增加了对条件判定情况的测试,增加了测试路径。n缺点:条件覆盖不一定包含判定覆盖。例如,我们刚才设计的用例就没有覆盖判断M的Y分支和判断Q的N分支。条件覆盖只能保证每个条件至少有一次为真,而不考虑所有的判定结果。内容n逻辑覆盖p语句覆盖p判定覆盖(分支覆盖)p条件覆盖p判定-条件覆盖p条件组合覆盖p路径覆盖nDD路径n基路径测试判定-条件覆盖n基本思想是:设计足够的测试用例,使得判断条件中的所有条件可能
7、取值至少执行一次,同时,所有判断的可能结果至少执行一次。1判断M判断Q判定-条件覆盖(续)n按照判定-条件覆盖的要求,我们设计的测试用例要满足如下条件:1.所有条件可能取值至少执行一次;2.所有判断的可能结所有判断的可能结果至少执行一次。果至少执行一次。要满足要满足T1、T2、T3、T4F1、F2、F3、F4判定-条件覆盖(续)测试用例覆盖条件覆盖判断a=2,b=1,c=6T1,T2,T3,T4M的Y分支和Q的Y分支a=-1,b=-2,c=-3F1,F2,F3,F4M的N分支和Q的N分支判断M判断Q要满足要满足T1、T2、T3、T4F1、F2、F3、F4判定-条件覆盖(续)n优点:能同时满足判
8、定、条件两种覆盖标准。n缺点:判定/条件覆盖准则的缺点是未考虑条件的组合情况。内容n逻辑覆盖p语句覆盖p判定覆盖(分支覆盖)p条件覆盖p判定-条件覆盖p条件组合覆盖p路径覆盖nDD路径n基路径测试条件组合覆盖n基本思想是:设计足够的测试用例,使得所有可能的条件取值组合至少执行一次1条件组合覆盖(续)n按照条件组合覆盖的基本思想,对于前面的例子,我们把每个判断中的所有条件进行组合,设计组合条件如表所示,而我们设计的测试用例就要包括所有的组合条件。编号覆盖条件取值判定条件取值具体条件取值1 T1,T2M取Y a0,b02 T1,F2M取N a0,b=03 F1,T2M取N a04 F1,F2M取N
9、 a=0,b1,c16 T3,F4Q取Y a1,c=17 F3,T4Q取Y a18 F3,F4Q取N a=1,c=1条件组合覆盖(续)测试用例覆盖条件覆盖判断覆盖组合a=2,b=1,c=6T1,T2,T3,T4M取Y分支,Q取Y分支1,5a=2,b=-1,c=-2T1,F2,T3,F4M取N分支,Q取Y分支2,6a=-1,b=2,c=3F1,T2,F3,T4M取N分支,Q取Y分支3,7a=-1,b=-2,c=-3 F1,F2,F3,F4M取N分支,Q取N分支4,8要满足要满足1、2、3、4、5、6、7、8条件组合条件组合条件组合覆盖(续)n优点:条件组合覆盖准则满足判定覆盖、条件覆盖和判定-条
10、件覆盖准则。n缺点:线性地增加了测试用例的数量。内容n逻辑覆盖p语句覆盖p判定覆盖(分支覆盖)p条件覆盖p判定-条件覆盖p条件组合覆盖p路径覆盖nDD路径n基路径测试路径覆盖n基本思想是:设计所有的测试用例,来覆盖程序中的所有可能的执行路径。1路径覆盖(续)测试用例覆盖组合覆盖路径a=2,b=1,c=61,51-2-4a=1,b=1,c=-31,81-2-5a=-1,b=2,c=34,71-3-4a=-1,b=-2,c=-3 4,81-3-5路径覆盖(续)n优点:这种测试方法可以对程序进行彻底的测试,比前面五种的覆盖面都广。n缺点:需要设计大量、复杂的测试用例,使得工作量呈指数级增长,不见得把
11、所有的条件组合都覆盖。在实际的测试用例设计过程中,可以根据需要将不同的覆盖方法组合起来使用,以实现最佳的测试用例设计。条件组合覆盖结合路径覆盖测试用例覆盖条件覆盖路径覆盖组合a=2,b=1,c=6T1,T2,T3,T4P1:(1-2-4)1,5a=1,b=1,c=-3T1,T2,F3,F4P2:(1-2-5)1,8a=-1,b=2,c=3F1,F2,F3,T4P3:(1-3-4)4,7a=-1,b=-2,c=-3F1,F2,F3,F4P4:(1-3-5)4,8a=2,b=-1,c=-2T1,F2,T3,F4P3:(1-3-4)2,6a=-1,b=2,c=3F1,T2,F3,T4P3:(1-3-
12、4)3,7路径覆盖的困难n右边的控制流图大致对应一个100行长的Pascal程序n若其中唯一的循环至多执行20次,则最多有520个逻辑路径n假设每运行一组测试用例平均花费1毫秒,总共需要3170年才能穷尽测试这些逻辑路径内容n逻辑覆盖p语句覆盖p判定覆盖(分支覆盖)p条件覆盖p判定-条件覆盖p条件组合覆盖p路径覆盖nDD路径n基路径测试程序图/控制流图n程序图是一种有向图,图中的节点表示语句片断,边表示控制流。n如果 i 和 j 是程序图中的节点,从节点 i 到节点 j 存在一条边,当且仅当对应节点 j 的语句片断可以在对应节点 i 的语句片断之后立即执行。程序图/控制流图(续)n程序图(控制
13、流图)中只有两种图形符号:1.结点结点:以标有编号的圆圈表示。它代表了程序流程图中矩形框表示的处理、菱形表示的两个到多个出口判断以及两条到多条流线相交的汇合点。2.边(弧)边(弧):以箭头表示。它与程序流程图中的流线是一致的,表明了控制的顺序。为了方便讨论,控制流线通常标有名字,如图中所标的a、b、c等。1234513542n除了用程序流程图可以转化成控制流图以外,还可以把伪代码表示的处理过程转化成控制流图。根据程序建构控制流图很容易。n例如:三角形伪代码实现过程转化成了控制流图 程序图/控制流图(续)4567891011121314151617181920212223491011121314
14、151617181920212223n有的时候,我们可以把几个节点合并成一个,合并的原则是:若在一个节点序列中没有分支,则我们可以把这个序列的节点都合并成一个节点DD路径测试nDecision-Decision(决策-决策)路径nPage126路径n路径是一系列边,使得对于该序列中的所有相邻边对偶ei、ej来说,第一条边的终止节点是第二条边的初始节点。n环路是一个在同一个节点上开始和结束的(有向)路径。半路径n半路径是一系列边,使得对于该序列中至少有一个相邻边对偶ei、ej来说,第一条边的初始节点是第二条边的初始节点,或第一条边的终止节点是第二条边的终止节点。路径与半路径举例p从n1到n6的一
15、条路径e2,e5:e2终止结点是e5的初始结点p从n1到n5的一条路径p从n3到n6的一条路径pn1和n3之间的一条半路径e2,e3:e2和e3有相同的终止结点pn2和n4之间的一条半路径e1,e2:e1和e2有相同的初始结点pn5和n6之间的一条半路径(路径)链n链是一条起始和终止结点不同的路径,并 且每个结点都满足入度1、出度1 p链的长度:边的数量p长度为0的退化链,即链有一个节点和0条边组成n初始结点与链中的所有其他结点2-连接,不会存在1-连接或3-连接n-连接性n有向图中的两个结点ni和njp0-连接,当且仅当ni和nj之间没有路径p1-连接,当且仅当ni和nj之间有一条半路径,但
16、没有路径p2-连接,当且仅当ni和nj之间有一条路径p3-连接,当且仅当ni和nj之间有一条路径,并且从nj到ni有一条路径举例nn1 和n7是0-连接nn2 和n6是1-连接nn1 和n6是2-连接nn3 和n6是3-连接n3n7n6n4n5n2n1e1e4e3e5e2e6DD-路径的定义nDD-路径是程序图中的一条链,使得:p情况1:由一个结点组成,indeg0;p情况2:由一个结点组成,outdeg0;p情况3:由一个结点组成,indeg2 或 outdeg2;p情况4:由一个结点组成,indeg1 并且outdeg1;p情况5:长度1的最大链图9-1三角形程序的程序图n程序:page1
展开阅读全文