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

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

  从测试方法会不会关注程序内部的结构可以将其划分为白盒测试和黑盒测试以及灰盒测试,黑盒测试不关注程序内部的实现结构,仅仅是通过向程序进行输入来观察程序的输出对不对;白盒测试就需要关注程序内部的实现结构,对程序的代码逻辑结构实施相关的测试;下面来简单介绍一下路径覆盖法和基本路径覆盖法两种白盒测试方法。路径覆盖法
  路径覆盖法是通过测试代码中的每个可能路径来检查代码的每个部分是否按照预期工作。路径覆盖法要求测试用例覆盖每个可能的路径,包括所有可能的循环和分支情况。这种方法需要编写大量的测试用例来覆盖所有可能的路径,因此它往往比较费时和费力。
  接下来以一段代码作为测试对象: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覆盖。如果使用基本路径覆盖法后程序中仍有未覆盖到的路径,可使用逻辑覆盖法补充测试用例保证覆盖全面。
  在本案例中,基本路径法设计出的测试用例反而比路径法多一条,那是因为二者的覆盖方法不一样导致的,如果是在有组合关系或者循环逻辑的代码中,基本路径法就会简单很多。

关注研究人员开发快充新技术10分钟完成充电电池容量缩减23文:懂车帝原创彩丽美〔懂车帝原创行业〕日前,据中科院消息,发表在最新一期《自然》上的一项研究称,美国宾夕法尼亚州立大学研究人员开发出一种突破性技术,将电动汽车电池的充电时……全世界时髦的女人,结婚穿什么?头条创作挑战赛金秋月,爱情圆满的日子,收获一捧大地上的金黄色,从夏日的热烈中隐去,没入了美的境中。一直都觉得,最美的爱情往往是最简单的,……妇产要闻北京妇产医院多学科合作,助高龄孕妇数次成功闯关!对于孕期顺顺当当的普通孕妇来说,孩子出生后那一声声响亮的啼哭声,基本就可以代表着分娩过程已经平安度过了。但是38岁高龄初产的李女士(化名)却没有那么普通,剖宫产娩出孩子,……没人发现环太平洋1里的重大bug吗今天N刷环太1,话说高清4kHDR效果好的惊人!我发现一个惊人事实:黑人长官可能是内奸!黑人长官(左1)证据在剧中最精彩的战斗:流浪者1v2前,基地突然收到信号:两……浪漫与爱家庭出游,陪伴是最有温度的旅行今天是母亲节哦大家想好怎么过了嘛?是居家带娃还是陪伴父母呢母亲节爱不能迟,不如暂时放下繁重的学业和忙碌的工作,陪着父母、带上宝贝驱车大自然,在幽静清新的环境里,享受一份山野里特……盘点日照好玩且免费的景点,旅游好去处日照不算大,风景美如画!类似诸多沿海城市一样,日照的海景或许说不上秀丽与迷人,却使人感到亲切与舒服!日照好玩的且免费的景点是很多外地朋友不知道的,今天小编给大家推荐几个。……PeanutLPL帮我突破自我很幸运能加入到LGD在ROX和T1战队效力时的Peanut迎来了自己职业生涯的巅峰时期,但加入Gen后的状态则有些低迷。去往LPL赛区效力后的Peanut再次回到了LCK赛区,并且在冬季转会期中又……甘愿降薪,愿终老勇士!锁定首发席位,默默付出,你格局比追梦高不知不觉,新赛季各支球队的训练营逐渐拉开序幕,这也就意味着,休赛期已经基本结束。作为卫冕冠军,勇士率先开启了他们的球队训练营,除了此前宣布回归勇士再战一年的伊戈达拉缺席了训练营……世界上最凶险的雪山,位于云南,日照金山是摄影人梦寐以求的画面行者无疆,对于热爱旅行的人来说,雪山高原、冰川湖泊、光影变幻、草木之花,这些大自然中纯粹的风景,总是有一种特别的魔力,吸引着我们一次次不惧艰难的踏上旅途,梅里雪山作为云南第一高……8月1日逛京东入手小米手环7限量赠肖战代言的YSL女士香水这个七夕,8月1日逛京东,入手小米手环7,限量赠YSL黑色奥飘茗女士香水,为爱勇敢奔赴,为你的另一半送上七夕心意。据介绍,用户只需在8月1日12点到8月6日24点之间,购……夏季家电新品上架,新风空调受追捧,康佳新品开启预约虽然最近的天气有些变化无常,但毫无疑问的是夏天不会迟到,连续的高温天气即将来袭,风扇、空调这类夏季家电产品提前进入了热销阶段,而各家家电厂商也已经抓住初夏阶段,推出各自的风扇或……中国最大退休潮带来的机遇与挑战四开拓市场企业要生存和发展,市场永远是重中之重,特别是技术含量不高的企业,竞争程度更是压力山大。销售冠军60后的一把手、二把手和高管们,可能更注重的是人情市场、固定市场。在自……
风暴中的国足中超,谁来拯救你,足协孙雯副主席疑似婉拒上位孙雯:见世界方知自己浅薄风暴中的国足中超,谁来拯救你,足协孙雯副主席疑似婉拒上位国足中超的风暴一波接一波,一二三四波,第一波李铁及同事相继被带走调查,第二波广东省运会踢假……三消息!苏群揭露国家队谜团,哈达迪重返伊朗,摩尔特里回归第一,苏群发文揭露国家队谜团,近期篮球著名媒体人苏群在社交平台上更新了一则动态,内容是针对近期有关中国男篮的争议进行答疑解惑。主要问题分为三个,第一个,国家队为何不用年轻球员,……在四川有座千年古镇,被称为江南水乡,距离成都仅有22公里江南是很多人向往的远方,自古以来就有文人墨客为此写下赞美的诗句,随着古诗词的流传,江南成了很多人选择的旅游目的地,因此,江南也成了我国与众不同的一个地区,极具地方特色美景的代名……荣耀V40,让我们来回顾一下,荣耀的最后一款V系列产品这款手机的意义有两种,第一种就是,他是荣耀V系列的最后产品,第二种就荣耀脱离华为之后的第一款产品,也是最后一款产品,因为脱离之后的荣耀就没有V系列了,主要以Magic,数字以及……你准备出去浪了吗?头条创作挑战赛头条有新人还记得三年前最后那一次肆无忌惮出去玩的那次吗?现在放开了,准备出去浪了吗?我不去!没钱〔皱眉〕难得恢复了,还不知道市场环境会恢复……好消息!长三角旅游又多了一个东台元素2022年长三角地区体育旅游精品项目榜单近日出炉条子泥湿地成功入选长三角地区体育旅游精品线路体育条子泥条子泥湿地自然环境优美,向海而生,因鸟闻名。……不吃3种家常菜,吃了能致命,你还敢吃说到能增加身体营养的食物,蔬菜肯定是首选,各种蔬菜都有着不同的价值,但也有些是会带来致命危害的,对于这些食物我们是千万不能去碰的。一、鲜蚕豆蚕豆特别的好吃,很多人都……一加9周年引加油热议,刘作虎决定未来10年发展的重要时刻12月15日,一加手机官微正式宣布,将于12月17日14:30举行一加9周年活动,主题为向新而生,将会带来新方向,新动作,新未来。不知不觉中,一加手机已经成立9年之久,每一代的……择园的家长看过来,如何给孩子选择幼儿园,可以从这几个方面考量最近因为大家都懂的原因,女儿被幼儿园再次退货,这也不知道要居家到什么时候。前段时间因为最好的朋友转学,女儿折腾了好长一段时间,到了幼儿园没有她的好朋友陪她一起玩了,她开始……原来新西兰被称为迷你加拿大,到底哪里像?哪里值得玩?世界上最像加拿大的国家有哪些?从地理地貌上来说,很多人会说俄罗斯,或者北欧的瑞典芬兰挪威;这几个国家相似其实在情理之中,毕竟纬度差不多,都在北半球;其实在南半球也有一个国……从增量到存量,企业如何破局用户转化的关键赛点?本次直播我们邀请到13年资深电商运营张前进老师,从业领域涵盖电子商务、教育、广告服务等,具有丰富的项目规划、统筹管理、运营活动操盘经验。本文为直播内容整理,内容有删改。大……快递大面积停摆?国家邮政局回应核酸企业IPO被叫停丨邦早报【国家邮政局:快递全国网点大面积停摆不实】11月29日晚间,据国家邮政局消息,近日,一则关于快递停运的消息在电商和快递圈内广泛传播。有网友根据个别快递公司发给合作商家的停发站点……
友情链接:中准网快好知易事利快百科快传网七猫云快生活中准网快软网聚热点文好找快好找