应用办公生活信息教育商业
投稿投诉
商业财经
汽车智能
教育国际
房产环球
信息数码
热点科技
生活手机
晨报新闻
办公软件
科学动态
应用生物
体育时事

白盒测试中路径覆盖和基本路径覆盖的不同

  从测试方法会不会关注程序内部的结构可以将其划分为白盒测试和黑盒测试以及灰盒测试,黑盒测试不关注程序内部的实现结构,仅仅是通过向程序进行输入来观察程序的输出对不对;白盒测试就需要关注程序内部的实现结构,对程序的代码逻辑结构实施相关的测试;下面来简单介绍一下路径覆盖法和基本路径覆盖法两种白盒测试方法。路径覆盖法
  路径覆盖法是通过测试代码中的每个可能路径来检查代码的每个部分是否按照预期工作。路径覆盖法要求测试用例覆盖每个可能的路径,包括所有可能的循环和分支情况。这种方法需要编写大量的测试用例来覆盖所有可能的路径,因此它往往比较费时和费力。
  接下来以一段代码作为测试对象:publicstaticinttest(inta,intb,intc){1intresult0;2if(a0orb2){3resultba;}4if(a0andc0){5resultca;}6returnresult;}
  使用路径覆盖法设计测试用例
  第1步:分析待测代码,画出程序的流程图。上述代码的参考流程图如下所示,为了方便分析路径,图中红色字母A、B、C、D标识出了每个判断语句的分支:
  流程图
  第2步:分析流程图
  从上图中可以看出,这段代码共有2个判断语句,每个判断语句分别有取真值、取假值两个分支。那么,程序中共有如下四条路径:路径1:AC路径2:AD路径3:BC路径4:BD
  第3步:编写测试用例。
  根据路径覆盖的定义,我们需要设计一些测试用例,使程序中的每个路径至少被执行一次。因此,我们可以设计如下表中的四个测试用例来覆盖这四条路径。
  测试用例编号
  输入数据
  预期结果
  路径覆盖情况
  testcase01
  a2,b1,c9
  result0
  路径1:AC
  testcase02
  a5,b2,c3
  result15
  路径2:AD
  testcase03
  a0,b3,c3
  result3
  路径3:BC
  testcase04
  a1,b5,c9
  result9
  路径4:BD
  综上所述,路径覆盖可以使程序中的每一条路径都经过测试,确保程序执行路径的正确性。但是,对于判断语句多且复杂、循环次数多的程序,需覆盖的路径数量可能非常庞大,无法在短时间内测试完,例如,下图是一段代码的流程图,图中含有多个判断语句、循环语句,如果要将所有路径都测试到,将花费大量的时间,所以,在实际的项目测试中基本不可能把所有路径都覆盖到。
  复杂流程图
  基本路径覆盖法
  路径覆盖可以使程序中的路径都被测试到,但是,要对程序中的路径做到完全覆盖经常是无法实现的。为了解决这一难题,我们需要在保证测试质量的前提下把测试的路径数量压缩到一定的范围内,基础路径覆盖法正好可以解决该问题。
  基本路径覆盖法是在程序控制流图的基础上,通过分析控制结构的圈复杂度,导出基本可执行的路径集合设计测试用例,运行被测程序,使程序的基本路径都得到覆盖。基本路径覆盖法把测试时需要覆盖的路径压缩到一定的范围内,使程序中的每一个可执行语句都至少执行一次,程序中的循环体最多只执行一次。
  为了方便比较,仍以上述代码作为测试对象,使用基本路径覆盖法来设计白盒测试用例,基本步骤如下:
  第1步:分析待测试代码,画出程序的流程图(和路径覆盖法中流程图一样),如果对该方法比较熟练或对程序流程比较清晰,可省略这个步骤。
  我们知道,在控制流图中如果含有复合条件,需要改为单条件嵌套的形式。为了后续的讲述更加清晰,这里先把上述流程图中的复合条件按控制流图的要求进行拆分,具体如下:
  单条件嵌套流程图
  第2步:根据流程图画出控制流图。
  在控制流图中,圆形符号称为节点,表示一个基本的代码块;包含条件的节点称为判断节点;箭头称为边,表示控制流路径,反向边则表示可能存在循环。按照控制流图的规则,上述流程图可以画成下面的控制流图:
  程序的基本控制流图
  第3步:计算圈复杂度。
  圈复杂度V(G)有三种计算方法,下面简单介绍一下用3种方法计算本例的圈复杂度:
  方法一:V(G)A1,其中A代表控制流图中的封闭区域数量。从下图可以看出,程序的控制流图中共有4个封闭区域,所以,圈复杂度V(G)415。
  程序控制流图
  方法二:V(G)P1,其中P代表控制流图中的判定节点数。从下图可以看出,程序的控制流图中共有4个判定节点,所以,圈复杂度V(G)415。
  程序的控制流图
  方法三:V(G)en2,其中e代表控制流图中的边的数量,即控制流中的箭头数量;n代表控制流图的节点数量,即控制流图中的圆圈数量。从下图中可以看出,程序的控制流图中有11条边(11个箭头),8个节点(8个圆圈),所以,圈复杂度V(G)11825。
  程序控制流图
  第4步:确定基本路径的集合。
  基本路径又称为独立路径,是指至少包含一条其他独立路径中未包含的路径。例如,在上图中,路径12358是一条基本路径,124358则可以看成了另外一条基本路径,因为这条路径中经过4节点的路径在第一条基本路径中未包含。
  圈复杂度是指程序中的独立路径数量,是确保程序中每个可执行语句至少执行一次需要的测试用例数量的最小值。根据第3步的计算结果,本例中我们需要确定5条基本路径,具体如下:路径1:12358路径2:124358路径3:12458路径4:124568路径5:1245678
  第5步:根据基本路径编写测试用例。
  根据基本路径覆盖法的定义,我们需要设计测试用例分别覆盖第4步中的5条基本路径,即设计合理的输入数据使程序运行时经过指定的路径。因此,我们可以设计如下表中的5个测试用例来覆盖这5条基本路径。
  测试用例编号
  输入数据
  预期结果
  路径基本覆盖情况
  testcase01
  a0,b1,c9
  result1
  路径1
  testcase02
  a0,b3,c5
  result3
  路径2
  testcase03
  a2,b1,c3
  result0
  路径3
  testcase04
  a1,b0,c1
  result0
  路径4
  testcase05
  a5,b3,c2
  result10
  路径5
  综上所述,使用基本路径覆盖法设计用例进行测试时,可以使程序中的每条独立路径都至少执行一次。如果程序中的基本路径达到了100覆盖,则分支(判定)覆盖、条件覆盖也能达到100覆盖。如果使用基本路径覆盖法后程序中仍有未覆盖到的路径,可使用逻辑覆盖法补充测试用例保证覆盖全面。
  在本案例中,基本路径法设计出的测试用例反而比路径法多一条,那是因为二者的覆盖方法不一样导致的,如果是在有组合关系或者循环逻辑的代码中,基本路径法就会简单很多。

3月以后多吃它,被称为肝脏保护神!简单一炒,鲜嫩又清脆一年之计在于春,在这个春暖花开,百花争鸣的时节,此时要是做好了准备工作,将能为未来一年的身体健康打下基础。而立春时节其实当养肝,在中医里认为,五脏应四时,各有所,春天对应……中国人去朝鲜旅行,让当地人感到困惑,为何他们会这样做?旅游已经变成了很多人日常生活当中必不可少的一件事情,因为现在国民经济发展了,生活水平提高了,国家总体消费水平变好,基础设施建设得很完备。这就让人民的幸福度提高了,所以现在很多中……1岁宝宝近视600度,可能导致失明,罪魁祸首竟然是父母!近日父母高度近视1岁婴儿近视600度的话题冲上热搜引起网友们的广泛关注!河南郑州的慕女士和丈夫都是高度近视,因此对孩子视力问题就格外关注。于是在孩子一岁时带孩子去医……为了玩好三国志战略版,玩家们在现实中学会了三十六计文随心滚滚长江东逝水,浪花淘尽英雄。是非成败转头空,青山依旧在,几度夕阳红。这是笔者小时候最熟悉不过的一段歌词,那时候每晚8点都会准时等在电视机前收看央视的《三国演……谷歌将荣耀70OPPOReno7Z等14款手机加入ARCorIT之家4月9日消息,自谷歌AR(增强现实)能力对外开放以来,不少手机厂商都会接入该技术来增强机主的使用体验。如谷歌在Lens应用程序中使用AR来提供图像翻译等功能。不过……NCAA疯三甜蜜16强阿拉巴马休斯敦领衔黑马普林斯顿继续狂奔直播吧3月20日讯2023年NCAA男篮全美锦标赛(疯狂三月)次轮比赛今日全部结束,甜蜜16强名单和对阵如下(数字为分区种序116,非锦标赛种序)。南区:(1)阿拉……深圳胡志明航班复航,新航季南航国际航点上新3月26日上午11:40,南航CZ6095深圳至胡志明航班从深圳机场起飞,标志南航正恢复深圳直飞胡志明往返航线。该航线每周4班,班期为每周一、三、五、日,去程11:40从深圳起……聚焦华为问界600千瓦超充桩疑似曝光,或采用单桩单枪设计文:懂车帝原创刘艺伟〔懂车帝原创行业〕3月21日,据汽车博主爆料称,目前华为已在深圳坂田华为基地B区建设运营超充站,该站共有8根快充桩,华为问界专属的600千瓦超充桩实拍……AFM一种用于冷冻电解质中超快质子储存的新型层状WO3水质子电池赝电容器是下一代电化学储能的有希望的候选者。然而,由于缺乏促进质子快速传输和储存的合适电极材料,阻碍了它们的发展。在此,提出了一种通过从AurivilliusBi2W……你将用现在一半的价格买一辆特斯拉加拿大将基准利率维持在4。501你将用现在一半的价格买一辆特斯拉特斯拉(Tesla)承诺,通过使用规模更小的工厂和创新的制造技术,将其下一代汽车的成本降低一半。3月1日,该公司在德克萨斯州奥斯……关于南京大屠杀,新必应是这样回答的今天确实非常失望,新必应好像不知道什么是历史,这种东西对于有确定答案的科技类的知识是有不可估量的发展前景,但对于人类意识的问题,它其实要么是个弱智,要么它就是个被人控制的骗子。……贫穷限制了我的想象这些服装你能降的住吗?让人大开眼界的美丽时装秀,总有那么一些能让你瞠目结舌这是小哥哥?还是小姐姐呢?现实中穿着,那回头率岂不是让众人扭断脖子了?关键是这衣服是一次性的吗?……
人到中年,不管混得好坏,不要把兄弟姐妹当家人,这是人性的现实一个人无论走到哪儿,都脱离不了血脉亲情的维系;对大部分人来说,父母和儿女是自己在这个世界上最亲近的人,除此之外,就是兄弟姐妹;从儿时起,兄弟姐妹就是自己最好的伙伴儿……近20年最具实战观赏性10部动作片,李连杰成龙电影皆不在列世界第一部动作片,早在1903年就已经诞生了。这部电影名叫《火车大劫案》,虽然只是黑白默片,片长也仅有11分钟,但缉凶的故事却颇为精彩,尤其是铁轨上的警匪打斗戏看着也非常……Oculus将会带来崭新的QuestVR系统体验Oculus刚刚发布了面向Quest虚拟现实(VR)头戴式系统的重要更新,旨在让VR变得比以往任何时候都更加灵活、社交和易于使用。本次更新加入了新的通用菜单、沉浸式覆盖体验、以……老公最爱吃的包菜做法,真是太香了,开胃下饭又下酒,上桌就扫光国以民为本,民以食为天,各位老饕大家好!天气寒冷,包菜成了市场上的常见菜之一,家家户户都有包菜,所以用包菜做出美味,成了每家的必修课。今天,我就要带大家用包菜做个好吃的凉拌菜,……苹果发布最新广告,主推AirPodsPro主动降噪功能!3月12日消息,苹果官方YouTube频道分享了一段AirPodsPro的新广告,主要介绍了这款耳机的主动降噪功能。在这段标题为《Snap》的视频中,一位女士戴着AirP……苹果watchOS6。2第五个测试版发布!苹果今天发布了watchOS6。2第五个开发者测试版,距离第四个测试版相隔一周的时间。安装了正确的配置文件后,watchOS测试版可以通过iPhone上的AppleWatch应……watchOS7将推新表盘International显示各国日前,外媒9to5Mac披露了基于内部系统代码的iOS14的几个新功能,其中包括了对AppleWatch的一些改变。现在他们又在watchOS7中发现了至少一个新的表盘。此前,……iRobot最新Roombas9黑金版扫地机器人中国上市3月11日消息,近日,全球知名家用机器人公司iRobot推出新一代Roomba?s9扫地机器人。Roombas9扫地机器人保留了备受赞誉的CleanBase自动集尘设计;并新增……称自己是日本人,宣扬亲日,卖国遭批判的明星是不是真的?1。周杰伦在之前,关于周杰伦的传言愈演愈烈,周杰伦决定不再沉默,委托经纪公司发出公告。以下为经纪公司公告:1。自06年起,网络论坛爆出周杰伦向日本媒体表示自己……索尼PS5部分规格曝光13。3TF的定制RDNA2GPU上周二(3月3日),有匿名用户在国外社区4chan上发帖称索尼计划原定于3月3日举行发布会,推出新一代游戏主机PlayStation5。尽管本次发布会可能已经因为蔓延全球的新冠……索尼PS5引入光追架构实现惊人纹素密度和丰富细节由于外界普遍传闻全新的索尼PlayStation5将于前段时间亮相,因此关于该机的外观和配置的爆料着实火爆了一段时间,但随着索粉们愿望的落空,近期关于该机的消息也慢慢减少了许多……尼康旗舰单反D6推迟至5月上市国行定价44800元3月9日,尼康中国官方宣布,受新型冠状病毒疫情影响,原计划于2020年3月开始上市销售的尼康数码单反相机D6,将延期至5月份上市,具体日期将在确定后公布。对于由此给您带来……
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网