白盒测试方法实验报告_第1页
白盒测试方法实验报告_第2页
白盒测试方法实验报告_第3页
白盒测试方法实验报告_第4页
白盒测试方法实验报告_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

实验报告课程名称 软件测试题目 白盒方法测试院系 信息工程学院 班级 计算机学号 -学生姓名 指导老师 日期 2019年一、实验题目白盒方法测试二、实验目的使学生能够更进一步理解白盒测试方法。能够区分语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖及路径覆盖所达到的覆盖层次,并能用各层次覆盖的设计思想设计相应的测试用例。区分语句覆盖、判定覆盖、条件覆盖的异同,掌握其测试用例设计方法和程序特征;三、实验环境Windows系统平台和Dev-C++开发环境。四、实验内容某程序的逻辑设计如下图所示,自行分析程序结构,请为该程序设计测试用例使其分别满足:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖及路径覆盖,并按照测试用例测试程序,完善测试用例各项内容的填写。#include<iostream>usingnamespacestd;intmain(){intF=0;intT=0;intx,y;cin>>x>>y;if(x>=50&&y>=50){F=1;}if(x+y>80){T=2;}else{T=3;}cout<<F<<endl<<T<<endl;开始abYcNx+y>80NdYef结束(x>=50)and.(y>=50_语句块1语句块2语句块3开始abYcNx+y>80NdYef结束(x>=50)and.(y>=50_语句块1语句块2语句块3F=0,T=0F=1T=2T=3语句块4五、实验步骤依据程序逻辑结构图分析程序结构,找出程序的各种组合。依据实验要求设计测试用例使测试达到特定覆盖。选择自己熟悉的语言编写程序。用各种测试用例测试程序。5.1语句覆盖特点:语句覆盖要求设计足够多的测试用例,运行被测程序,使得程序中每条语句至少被执行一次。在本例中,可执行语句是指语句块1到语句块4中的语句。用例设计:数据语句{x=60,y=60}1、2、3{x=30,y=30}1、4通过这两个测试用例即达到语句覆盖的标准(测试用例组不是唯一的)。优点:可以很直观地从流程图得到测试用例,可以测试所有的执行语句。缺点:语句覆盖不能准确的判断运算中的逻辑关系错误。假设第一个判断语句if(x>=50&&y>=50)中的“&&”被错误地写成了“||”,即if(x>=50||y>=50),使用上面设计出来的一组测试用例来进行测试,仍然可以达到100%的语句覆盖。在六种逻辑覆盖标准中,语句覆盖标准最弱的。5.2判定覆盖特点:判定覆盖(分支覆盖)要求设计足够多的测试用例,运行被测程序,使得程序中的每个判断的“真”和“假”都至少被执行一次。即:程序中的每个分支至少执行一次。在本例中共有两个判断if(x>=50&&y>=50(记为Pl)和if(x+y>80)(记为P2)。用例设计:数据P1P2{x=30,y=30}FF{x=100,y=100}TT两个判断的取真、假分支都已经被执行过,所以满足了判断覆盖的标准。优点:由于可执行语句要不就在判定的真分支,要不就在假分支上,判定覆盖比语句覆盖要多几乎一倍的测试路径,所以,只要满足了判定覆盖标准就一定满足语句覆盖标准。因此,判定覆盖比语句覆盖强。缺点:判定覆盖会忽略条件中取或(or)的情况。假设第一个判断语句if(x>=50&&y>=50)中的“&&”被程序员错误地写成了“||”,使用上面设计出来的一组测试用例,仍然可以达到100%的判定覆盖,所以判定覆盖也无法发现上述的逻辑错误。5.3条件覆盖特点:条件覆盖要求设计足够多的测试用例,运行被测程序,使得判定中的每个条件获得各种可能的结果,即每个条件至少有一次为真值,有一次为假值。在本例中有两个判断if(x>=50&&y>=50)(记为Pl)和if(x+y>80)(记为P2),共计三个条件x>=50(记为Cl)、y>=50(记为C2)和x+y>80(记为C3)。用例设计:数据C1C2C3P1P2{x=30,y=30}FFFFF{x=100,y=100}TTTTT三个条件的各种可能取值都满足了一次,达到了100%条件覆盖的标准,同时也到达了100%判定覆盖的标准。但并不能保证达到100%条件覆盖标准的测试用例(组)都能到达100%的判定覆盖标准,看下面的例子:数据C1C2C3P1P2{x=30,y=60}FTTFT{x=100,y=-30}TFFFF既然条件覆盖标准不能100%达到判定覆盖的标准,也就不一定能够达到100%的语句覆盖标准了。优点:显然条件覆盖比判定覆盖,增加了对符合判定情况的测试。缺点:要达到条件覆盖,需要足够多的测试用例,但条件覆盖并不能保证判定覆盖。5.4判定-条件覆盖特点:设计足够多的测试用例,运行被测程序,使得被测试程序中的每个判断本身的判定结果(真假)至少满足一次,同时,每个逻辑条件的可能值也至少被满足一次。即同时满足100%判定覆盖和100%条件覆盖的标准。用例设计:数据C1C2C3P1P2{x=30,y=30}FFFFF{x=100,y=100}TTTTT所有条件的可能取值都满足了一次,而且所有的判断本身的判定结果也都满足了一次。优点:达到100%判定-条件覆盖标准一定能够达到100%条件覆盖、100%判定覆盖和100%语句覆盖。判定-条件覆盖满足判定覆盖准则和条件覆盖准则,弥补了二者的不足。缺点:未考虑条件的组合情况。5.5条件组合覆盖特点:要求设计足够多的测试用例,运行被测程序,使得被测试程序中每个判定中条件结果的所有可能组合至少执行一次。注意:1) 条件组合只针对同一个判断语句内存在多个条件的情况,让这些条件的取值进行笛卡尔乘积组合。2) 不同的判断语句内的条件取值之间无需组合。3) 对于单条件的判断语句,只需要满足自己的所有取值即可。用例设计:数据C1C2C3P1P2{x=30,y=30}FFFFF{x=60,y=60}TTTTT{x=30,y=60}FTTFT{x=100,y=-30}TFFFFC1和C2处于同一判断语句中,它们的所有取值的组合都被满足了一次。优点:多重条件覆盖准则满足判定覆盖、条件覆盖、判定-条件覆盖准则。缺点:线性地增加了测试用例的数量。但上面的例子中,只走了三条路径a-c-e-f、a-c-d-f和a-b-d-f,而本例的程序存在四条路径。所以条件组合覆盖不能保证所有的路径被执行。5.6路径覆盖特点:设计足够的测试用例,运行被测程序,覆盖程序中所有可能的路径用例设计:数据C1C2C3P1P2路径{x=100,y=-30}TFFFFa-c-e-f{x=60,y=60}TTTTTa-b-d-f{x=30,y=100}FTTFTa-c-d-f不能实现TTFTFa-b-e-f所有可能的路径都满足过一次。优点:这种测试方法可以对程序进行彻底的测试,比前面五种覆盖面都广。100%满足路径覆盖,一定能100%满足判定覆盖标准(因为路径就是从判断的某条分支走的)。缺点:100%满足路径覆盖,但并不一定能100%满足条件覆盖(C2只取到了真),也就不能满足100%条件组合覆盖。经过分析,它们之间的关系可以用下图表示(路径覆盖在该图无法表示):从上例可知,单独采用任何一种逻辑覆盖方法都不能完全覆盖所有的测试用例,任何一个高效的测试用例,都是针对具体测试场景的。逻辑测试不是片面的测试正确的结果或是测试错误的结果,而是尽可能全面地覆盖每一个逻辑路径。所以在实际测试用例设计中,就要先从代码分析入手,根据不同的代码逻辑规则、语句执行情况,选用适合的覆盖方法。要根据不同需要和不同测试用例设计特征,将不同的设计方法组合起来,交叉使用,以实现最佳的测试用例输出。六、实验总结本次实验通过用语句覆盖、判定覆盖、条件覆盖、

温馨提示

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

评论

0/150

提交评论