逻辑覆盖-韦恩图

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覆盖,必须给出的用例的个数集合。因此最外层反而是条件最为严苛的路径覆盖;

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

ECharts 是一个由百度开源的基于 JavaScript 的数据可视化库,广泛应用于前端数据分析和展示领域。它支持多种表类型,如柱状、折线、饼等,并且提供了强大的配置选项来定制表样式和功能。 韦恩图(Venn Diagram),又称为维恩或者韦恩-埃勃森,是一种用来描述两个或更多集合之间交集关系的形表示法。这种通常用于展示数据分类、比较属性或识别共性和差异。韦恩图通过圆形或其他形状的区域表示各个集合,重叠部分则表示集合之间的共同元素。 将 ECharts 应用于生成韦恩图的过程相对复杂,因为它并不直接提供此类型的表生成工具。不过,你可以借助外部插件或者自定义代码来创建韦恩图效果。例如,可以利用 ECharts 的基础功能结合 SVG 或者其他形渲染技术来绘制和动态更新韦恩图。 在使用 ECharts 创建自定义韦恩图时,一般需要关注以下几个步骤: 1. **准备数据**:首先,你需要收集并整理出代表不同集合及其交集的数据,这可能涉及从数据库查询、文件读取或者其他数据源获取信息。 2. **设计布局**:考虑如何布局各个集合以及它们的交集区域。通常,韦恩图有 2、3 或更多的集合,因此需要精心安排每个集合的位置和大小以保持清晰度和视觉美感。 3. **绘**:利用 SVG 或其他形库,在 ECharts 表中嵌入自定义的 SVG 元素。对于更复杂的自定义表,可能还需要编写额外的 JavaScript 代码来处理动态变化和用户交互。 4. **动态更新**:如果数据会随着时间或用户输入而发生变化,那么你需要实现机制来实时更新表。这可能涉及到事件监听、定时器或者 AJAX 请求来获取最新数据。 5. **样式调整**:最后,对表进行美化,包括颜色、字体、动画效果等,使其既美观又易于理解。 尽管使用 ECharts 创造传统意义上的“韦恩图”较为困难,但它确实为开发者提供了一个强大的平台来定制各种复杂且个性化的数据可视化解决方案。在实际应用中,可以根据具体情况选择合适的技术栈来完成任务,同时充分利用 ECharts 的强大绘能力和丰富的组件库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值