逻辑覆盖-韦恩图

2817c13a2c364bc3bacad1185dde008b.jpg

 在逻辑覆盖中,根据覆盖的范围,经常会看到这张图片,但经过本人思考后,在此特写下本篇文章,以区分两种不同的韦恩图。

上图是以覆盖范围的大小作为衡量标准,从内到外,从语句覆盖到路径覆盖,覆盖的力度逐渐增大,覆盖的范围也逐渐增大,覆盖比例逐渐趋向1,这是显而易见的。

但是,这并不是通常意义上的韦恩图所代表的集合之间的关系。韦恩图表达了集合之间的关系,如果以满足xx覆盖的所用测试用例的组合作为不同集合的元素,韦恩图最内层应该是约束条件最强,也即覆盖力度最大的路径覆盖。因为要满足路径覆盖的测试用例的组合情况最为特殊,条件最为苛刻,因此相应的测试用例的组合集合中元素数量较少,较为稀缺。而于此相反,最外层应该是语句覆盖,约束条件最弱,要想达到此约束的测试用例的组合数量数不胜数,非常常见,遍地都是。

而这种意义上的韦恩图,则能够说明充分必要性。比如,若某一测试用例组合满足路径覆盖,那么立即推它一定满足在路径覆盖圈外的,比如最外层的语句覆盖。也即,通过特殊能够推一般,即通过某一元素具有特殊性质,推出该元素同样具有该特殊性质对应的一般性质,这就是逻辑分析。

将该观点推到面相对象思想中,父类子类便能很好的说明这一点。假如A是父类,B是A的子类,在韦恩图中A的范围就应该比B更大,因为A更容易满足,相反B更特殊,更不容易满足;因此我们常说的子类就是父类,但父类不是子类这一观点就能得到很好地理解;体现在代码中,则是A=new B(),然而B=new A()这种写法就是错误的。B is a A, A is not a B!

上图中图例代表的含义:要想满足xx覆盖,必须给出的用例的个数集合。因此最外层反而是条件最为严苛的路径覆盖;

相反,如果用传统韦恩图,代表的含义是:将所有用例用集合进行划分,最内层的所有用例中,每一个用例都满足最严苛的要求:路径覆盖(然而一般情况下,不存在只用一个用例就能进行路径覆盖的实际情况);边界上的逐渐只满足要求较低的条件,最外层是满足语句覆盖的集合

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值