软件测试方法与实践讲义-第四章_第1页
软件测试方法与实践讲义-第四章_第2页
软件测试方法与实践讲义-第四章_第3页
软件测试方法与实践讲义-第四章_第4页
软件测试方法与实践讲义-第四章_第5页
已阅读5页,还剩47页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2020年7月7日,讲授软件测试,第1章,第4章软件测试复盖分析,2020年7月7日,第4章软件测试复盖分析,2, 主要内容4.1代码复盖分析4.2控制流复盖4.2.1文件复盖4.2.2判定复盖4.2.3条件复盖4.2.4条件判定组合复盖4.2.5条件组合复盖4.2.6路径复盖4.3流复盖4.4其他复盖标准,2020年7月7日,第软件测试复盖分析的概要、测试复盖分析是可能的测试计划阶段,必须确定哪个测试复盖分析及其对应的复盖率。 复盖率通常由百分比表示,但百分比的含义取决于所使用的复盖分析方法。 测试霸盖分析的测试过程:生成一系列测试用例收集在测试用例中运行测试的测试结果。进行测试盖分析的测试

2、结果达到既定的复盖率时,停止测试,否则,重复上述步骤14。 2020年7月7日,第四章软件测试复盖分析,4,4.1代码复盖分析,1 .代码复盖的概念,代码复盖是测试软件的测量标准,它描述了程序源代码的测试程度。 代码包复是直接观测代码来进行的测试,所以属于白盒测试。 测试代码复盖的两个主要步骤是识别满足复盖标准的实体群组并选择复盖该群组的有限路径。 其中主要有两种方法:控制流盖:选择一组实体,满足复盖标准。 主要包括语句复盖、判定复盖、条件复盖、多条件复盖、条件判定组合复盖、修改条件/判定复盖以及路径复盖的数据流复盖:选择满足变量定义和参照之间的关联实体的组,并选择复盖该组的有限路径2020年

3、7月7日,第四章软件测试垄断分析,5,4.1代码垄断分析,2 .代码垄断的测试过程,(1)被测程序的源代码,结构程序图(使用流程图或相关图)。 (2)根据程序图生成测试用例(3)编译被测量源程序,生成可执行代码(4)生成的可执行代码在测试用例输入条件下驱动,执行程序测试(5)计算测试结果的实际复盖率否则,结束测试(6)除了代码垄断分析外,还可以对测试通过率、失败率、可靠性等其他方面进行分析。 2020年7月7日,第四章软件测试垄断分析,6,4.1代码垄断分析,2 .代码垄断的测试过程,测试用例,构建程序图,procedure purge (varl : list ) varp q :/anyt

4、ypebeginq 3 P:=next(p,L) End End,编译器,分析执行结果,执行代码,能达到垄断率吗?1,2,3,4,6,5,停止,不,2020年7月7日,第4章软件测试垄断分析,7,4.2控制流垄断,入口,s,(A1) and (B=0),a,(A=2) or (x 1),c,返回,e,b x=x 1,2020年7月7日,第四章软件测试垄断分析,8,4.2控制流垄断,1 .句子垄断,句子垄断报告是否执行了各可执行语句,即执行并测试了各行的源代码语句盖是指在执行这些测试用例时,选择足够的测试用例,以便执行被测试程序的每个可执行语句至少一次。 要对每个语句执行一次,只需执行路径L1(

5、sabcde )。 测试用的例子是a : (a1 ) and (b=0) c : (a=2) or (x1 )、2020年7月7日,第四章软件测试的垄断分析、9、4.2流的垄断、1 .句的垄断、【优点】 :直观地从源代码开始测试用例【缺点】 :该测试方法仅以程序逻辑中明确存在的单词为对象,因此无法测试隐藏的条件。 多分支的逻辑运算不能全面考虑。 语言垄断是最弱的逻辑垄断。2020年7月7日,第四章软件测试垄断分析,10,4.2控制流垄断,2 .判定垄断,判定垄断(也称为分支垄断)是指在执行这些测试用例时,被测定程序的所有可以判定的结果至少一次(即,判定的每个分支由于判定垄断执行至少一次可以判定

6、的所有结果,所以程序中的所有语句也必须执行至少一次。 因此,满足垄断判定标准的测试用例也必须满足语言垄断标准。 2020年7月7日,第四章软件测试垄断分析,控制11,4.2流垄断,2 .判定垄断,执行一次各分支,只要执行路径L3(sacde )和L4(sabce )即可。 或者,执行路径L1(sabcde )和L2(sace ),a : (a1)和c : (a=2) or (x1)、2020年7月7日,第四章软件测试垄断分析,12,4.2控制流垄断,2 同样地判断霸权也和文霸一样简单,不用每次判断都细分就可以得到测试用例。 【缺点】:很多情况下,判定句是组合了多个逻辑条件的句子,只要判断其最终

7、结果整体,无视取每个条件的值的话,必然会丢失测试路径的一部分。 判定霸盖还是弱的逻辑霸盖。 2020年7月7日,第四章软件测试垄断分析,13,4.2控制流垄断,3 .条件垄断,条件垄断报告了各布尔型子公式的结果是真还是假,并进行了测试。 条件复盖是指在执行这些测试用例时,选择充分的测试用例,以使得在被实验者程序的各判定中各条件的可能结果至少出现一次。 2020年7月7日,第四章软件测试垄断分析,14,4.2控制流垄断,3 .条件垄断,判定a中各条件的可能结果: A1,A1,B=0,B 0。 确定c中各种条件的所有可能结果: A=2,A 2,x1,x1。 a : (a1 )和(b=0) c :

8、(a=2)或(x1 )、2020年7月7日,第4章软件测试垄断分析、15、4.2控制流垄断、3 .条件垄断、条件垄断通常比判定垄断强,但各条件的可能结果都出现了以上两个测试用例满足条件垄断标准,但不会出现c被判定为“假”的结果。 2020年7月7日,第四章软件测试垄断分析,16,4.2控制流垄断,3 .条件垄断,【优点】:增加了对条件判定情况的测试,增加了测试途径。 【缺点】:条件复盖不一定包含判定复盖。 例如,我们设计的用例中没有权限判断m的y分支和q的n分支。 条件复盖只能保证对于每个条件至少一次为真,而不考虑所有判定结果。 2020年7月7日,第四章软件测试垄断分析,17,4.2控制流垄

9、断,4 .判定/条件垄断,判定/条件垄断,选择充分的测试用例,以便在执行这些测试用例时,对每个被实验者的判定至少执行一次可能的全部结果显然,满足判定/条件复盖基准的测试用例也满足判定复盖、条件复盖、语句复盖基准。 2020年7月7日,第四章软件测试包复分析,18,4.2控制流包复,4 .判定/条件包复,a : (a1 ) and (b=0) c : (a=2) or (x1 ),2020年7月7日,第四章软件测试包复【缺点】 :判定/条件垄断标准的缺点是没有考虑条件组合的情况。2020年7月7日,第四章软件测试垄断分析、20、4.2控制流垄断、5 .条件组合垄断、条件组合垄断通过选择充分的测试

10、用例,在执行这些测试用例时,至少出现一次被试程序各判定中的条件结果的可能组合2020年7月7日,第四章软件测试垄断分析,21,4.2控制流垄断,5 .条件组合垄断,a : (a1 ) and A1、B 0; A 1、B=0; A 1、B 0判定c中条件结果的所有可能的组合: A=2,x1; A=2,x 1; A 2、x1; A 2,x 1,2020年7月7日,第四章软件测试垄断分析,22,4.2控制流垄断,5 .条件组合垄断,a : (a1 ) and (b=0) c : (a=2) or (x1 ),2020年7月7日,第四章软件测试条件组合垄断是上述5种垄断标准中最强的一种,但在条件组合本

11、例中,满足条件集垄断标准的测试用例不通过sabce路径。 2020年7月7日,第四章软件测试霸盖分析,24,4.2控制流程霸盖,5 .条件组合霸盖,【优点】 :条件组合霸盖标准满足判定霸盖,条件霸盖和判定/条件霸盖标准。 【缺点】 :线性增加了测试用例的数量。 2020年7月7日,第四章软件测试垄断分析,25,4.2控制流垄断,6 .路径垄断,路径垄断是指,在执行这些测试用例时,选择足够的测试用例,使被试程序至少通过一次可执行的路径2020年7月7日,第四章软件测试垄断分析,26,4.2控制流垄断,6 .路径垄断,在本例中可执行的所有路径,L1 (sabcde,a为“t”,c为“T”) L2

12、(sace,a为“f”,c为“f”) l3(sa L4 (sabce a为“t”,c为“f”,a : (a1) and (b=0) c : (a=2) or (x1),2020年7月7日,第4章软件测试垄断分析,27,4.2控制流垄断,6 .路径垄断,路径垄断实现因此,它是比较强的复盖标准,但它不能取代条件复盖和条件组合复盖标准。 2020年7月7日,第四章软件测试垄断分析,28,4.2控制流垄断,6 .通过垄断,【优点】 :该测试方法能彻底测试程序,比前面5种垄断面更宽。 【缺点】 :需要设计大量复杂的测试用例,工作量呈指数增加,并不一定能满足所有条件。 2020年7月7日,第四章软件测试垄

13、断分析,29,4.2控制流垄断,7.6种控制流垄断比较,2020年7月7日,第四章软件测试垄断分析,30,4.2控制流垄断,7.6种控制为了确定保温材料,包含了句子保温材料,但是它可能无法测试几个条件。 条件复盖是按条件进行个别检查,一般来说其检错能力比判定复盖强,但有时不满足判定复盖的要求。 判定/条件复盖包括判定复盖和条件复盖的要求,但由于计算机系统软件实现方式的限制,实际上不一定满足条件复盖的标准。 条件组合霸盖发现错误能力强,满足其标准的测试用例一定要满足上位4种霸盖标准。 前五个垄断标准关注单个判定或判定的每个条件,并且可能不执行程序的某些路径。 路径测试取值的组合基于各判定式,沿着

14、不同的路径执行程序,调查错误的能力很强。2020年7月7日,第四章软件测试的垄断分析,31,4.3控制数据流的垄断,控制流的垄断问题:如果句子和分支的垄断被用作测试数据的主要根据,并不保证通过选择的路径检测出所有错误。 另外,当路径垄断标准被用作测试数据的主要依据时,具有循环的程序有无限多条路径。 实用的路径选择必须基于所使用的路径准则选择有限数目的路径,并且很可能发现错误。 数据流的复盖是路径复盖的变异。 这种路径复盖的变异只考虑从变量定义到后续变量的参照之间的子路径。 数据流复盖的变量“定义”表示变量赋值,而不是类型定义。 2020年7月7日,第四章软件测试垄断分析,32,4.3数据流垄断

15、,4种数据流垄断选择标准如下: Rapps和Weyuker标准:如何将变量和值结合起来, 关注这些变量被如何使用的Ntafos标准:使用必需的k组,数据流信息研究来自环境的输入对环境输出的影响,以克服单独使用控制流信息来选择路径的缺点。 Laski和Korel标准:与选定的辅助路径和变量定义/应用的各种组合一起到达节点。 2020年7月7日,第四章软件测试的垄断分析,33,4.3流的垄断,1. Rapps和Weyuker的标准,Rapps和Weyuker将变量的出现分为三种:定义(Definitional ),用于def计算(compu 谓词的使用用c-use或cuse表示,用p-use或puse表示,v0:输入最大值(int x,int y) int max; V1: max=x; V2: if(yx) V3: max=y; v 4:返回最大值; v 53360,2020年7月7日,第四章软件测试垄断分析,34,4.3数据流垄断,1. Rapps和Weyuker标准,定义du-对,v0:入口最大值(int x,int y) int max; V1: max=x 1; /错误V2: if(yx) V3: max=y; v 4:返回最大值

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论