接口测试平台番外:正交工具过滤功能-1

简介: 不知道榜一大哥在哪看到有人分享一个正交工具,有过滤功能。就是在正交生成的一系列用例之后,人为手动再过滤掉一些不要的,不可能出现的用例。就这么一个过滤功能,被榜一大哥看到了,找我要给接口测试平台番外-正交小工具也加上这个功能(不惜重金)。

其实我一开始是不想加的,过滤功能,我也不是没想过。但是有违测试基本理论,而且会有极大的风险,所以很多年前我就判断不能加这个过滤功能。不过既然榜一大哥作为金主,要求了,那咱就加!反正管加不管埋!有风险就有风险!


   下一节会给大家具体实现这个功能,这一章,就来说说,为什么正交工具不能加最后的过滤功能。


   这个过滤功能,冷不丁的一看,哇塞,太人性化了,真的是个很好的设计。但是如果你精通测试理论就会知道,其实这么做不对,但是也仅仅是理论上的风险,实际使用中,这样过滤的益处会大于弊端,综合考虑还是可以做的,但是我们要明白,要懂里面的原理才能放心。


   首先,我们先要明白正交法,是什么,能用在哪里 这些基础理论!


在处理,多个输入条件的功能时,为了整理出各种各样的用例,诞生了俩种对立的方法:正交表  和 判定表


多个输入条件之间,如果有逻辑关联,那么必须只能用判定表,判定表相当于穷举然后过滤,虽然麻烦,但是可以保证一个不漏。


多个输入条件之间,如果没有逻辑关联,那么可以用正交,当然穷举所有可能的组合是最安全的,但是数量太庞大的时候,可以用正交来进行一定程度的删减,正交删减后的结果,只保证了 任意俩个条件的任意子状态都出现在同一条用例里,来测试 会不会有这种冲突出现。从程度和经验分析,这种其实并不100%安全,但却是性价比最高的手段。


举例子:word文档打印功能


输入有以下几个条件 和 对应的子状态:


纸张大小:A3,A4,A5

颜色:黑白,彩色

面数:单面,双面


在这三个条件中,如果我们穷举所有用例,那么一共是如下:

3*2*2 = 12种情况。


正交的话,只有:

A3- 黑白-单面

A4-彩色-双面

A5-彩色-单面

A5-黑白-双面

A4-黑白-单面

A3-彩色-双面


微信图片_20220706205555.png

(表由工具和专业算法生成,结果放心。)


只有6种,而这6种却包含了任意俩个条件的子状态 都一起出现这个情况。在日常实际中,这个可以覆盖绝大多的bug了,算是比较成功的技术。



不过过滤功能是怎么回事呢。比如榜一大哥的需求中说,A3纸,不能和黑白颜色去匹配,没有这个情况。

然后过滤功能就自动去掉这个情况的用例了,或者压根不去这么匹配。这个风险在哪呢?


这个风险就在于,为什么榜一大哥会有这样奇怪的规定! 因为只要有这种规定,就意味着这些输入条件之间,是有逻辑关系的!而根据正交的定义,这种情况,是不能用正交的!

   为什么呢?因为一旦出现逻辑关系,那么他们的bug发生概率会非常非常高,远高于无关联的。而正交工具本身的存在就是删减了大部分用例,这些被删除的用例中也一定带着逻辑关联的输入组合,这里面大概率会有很多bug,而却全被正交给自动删除掉了,此时的风险是很大的。

   所以这种情况正交不能用也不敢用,只能用判定表也就是穷举。这也是为什么判定表会存在。如果正交那么可靠,能处理有逻辑关联的输入,那么谁还会写判定表穷举呢?


   而且,上面原因只是其一。


   其二是 ,一但过滤掉 比如A3-黑白这个选项,那么第一条用例就没了,也就是说 后面那个“单面” 也没无情删掉了,整个结果中,A3 - 单面  这组合也相当于都没有了,万一 A3和单面配合也会出现bug呢?


   结论:有逻辑关联的输入,用正交风险高。而在正交结果中再次删减过滤,则风险更高。

   真正可以放心的过滤功能应该在判定表上,也就自动穷举后再过滤。


   不过上述的风险,只是存在于理论中,100个bug 也许因为你的正交过滤漏掉了一个。但是你获得的收益却很高,可以让测试用例减少很多个,减轻很多工作量,提高效率。

相关文章
|
1天前
|
消息中间件 测试技术 Linux
linux实时操作系统xenomai x86平台基准测试(benchmark)
本文是关于Xenomai实时操作系统的基准测试,旨在评估其在低端x86平台上的性能。测试模仿了VxWorks的方法,关注CPU结构、指令集等因素对系统服务耗时的影响。测试项目包括信号量、互斥量、消息队列、任务切换等,通过比较操作前后的时戳来测量耗时,并排除中断和上下文切换的干扰。测试结果显示了各项操作的最小、平均和最大耗时,为程序优化提供参考。注意,所有数据基于特定硬件环境,测试用例使用Alchemy API编写。
8 0
linux实时操作系统xenomai x86平台基准测试(benchmark)
|
1天前
|
传感器 Linux 测试技术
xenomai 在X86平台下中断响应时间测试
该文讨论了实时操作系统中断响应时间的重要性,并介绍了x86中断机制和Xenomai的中断管理,包括硬件中断和虚拟中断的处理。Xenomai通过I-Pipe确保实时性,中断优先级高的Xenomai先处理中断。文中还提到了中断响应时间的测试设计,分别针对I-Pipe内核间虚拟中断和硬件中断进行了测试,并给出了在不同负载下的测试结果。
7 0
xenomai 在X86平台下中断响应时间测试
|
2天前
|
SQL 测试技术 网络安全
Python之SQLMap:自动SQL注入和渗透测试工具示例详解
Python之SQLMap:自动SQL注入和渗透测试工具示例详解
11 0
|
4天前
|
测试技术 API
探索软件测试中的自动化工具与挑战
本文探讨了软件测试领域中自动化工具的应用与挑战。通过分析目前主流的自动化测试工具,探讨了其在提高测试效率、减少人工成本、增强测试覆盖率等方面的优势。然而,自动化测试也面临着诸如脆弱性、维护成本高等挑战。最后,提出了一些应对挑战的建议,以期为软件测试领域的自动化工作提供一些启示。
12 1
|
9天前
|
机器学习/深度学习 人工智能 测试技术
提升软件测试效率与准确性的策略与工具
【5月更文挑战第2天】 在软件开发生命周期中,测试阶段是确保产品质量的关键。然而,传统的测试方法往往耗时且容易出错。本文将探讨一系列现代软件测试策略和工具,旨在提高测试效率和准确性。我们将分析自动化测试框架、持续集成(CI)、测试驱动开发(TDD)以及人工智能(AI)在测试中的应用,并讨论如何结合这些技术和方法来优化测试流程。
|
9天前
|
Linux 测试技术 数据安全/隐私保护
CentOS安装MeterSphere并实现无公网IP远程访问本地测试平台
CentOS安装MeterSphere并实现无公网IP远程访问本地测试平台
|
20天前
|
网络协议 安全 测试技术
性能工具之emqtt-bench BenchMark 测试示例
【4月更文挑战第19天】在前面两篇文章中介绍了emqtt-bench工具和MQTT的入门压测,本文示例 emqtt_bench 对 MQTT Broker 做 Beachmark 测试,让大家对 MQTT消息中间 BenchMark 测试有个整体了解,方便平常在压测工作查阅。
113 7
性能工具之emqtt-bench BenchMark 测试示例
|
1月前
|
测试技术 C语言
网站压力测试工具Siege图文详解
网站压力测试工具Siege图文详解
29 0
|
13天前
|
机器学习/深度学习 数据采集 人工智能
【专栏】AI在软件测试中的应用,如自动执行测试用例、识别缺陷和优化测试设计
【4月更文挑战第27天】本文探讨了AI在软件测试中的应用,如自动执行测试用例、识别缺陷和优化测试设计。AI辅助工具利用机器学习、自然语言处理和图像识别提高效率,但面临数据质量、模型解释性、维护更新及安全性挑战。未来,AI将更注重用户体验,提升透明度,并在保护隐私的同时,通过联邦学习等技术共享知识。AI在软件测试领域的前景广阔,但需解决现有挑战。
|
10天前
|
敏捷开发 监控 测试技术
探索自动化测试工具Selenium Grid的高效集成策略
【4月更文挑战第30天】在现代Web应用的快速迭代和持续部署中,测试自动化已成为确保产品质量的关键。Selenium Grid作为一款支持多种浏览器和操作系统的测试工具,提供了并行执行测试用例的能力,极大地提升了测试效率。本文将深入探讨如何高效地将Selenium Grid集成到现有的测试框架中,以及实施过程中的最佳实践,帮助团队最大化测试覆盖率,同时降低资源消耗。

热门文章

最新文章