通用技术 求参数遍历叠加与结果之间强关系的探索测试思路

stride83 · 2020年10月16日 · 最后由 stride83 回复于 2020年10月19日 · 3023 次阅读

我们有个产品,参数设置众多
这个产品被其他组件进行调用,不同的参数可能会带来组件的不同响应,甚至会出现异常

但是参数设置众多,并且之间还可能有强依赖关系
想找一个思路,进行查找哪些参数组合会导致组件的异常

有什么好的开源架构或者思路吗?

求讨论,谢谢

共收到 11 条回复 时间 点赞

用自动化把所有条件组合都运行下

几十万的参数,并且参数有一些范围及强依赖。。。

cool 回复

几十万的参数,并且参数有一些范围及强依赖。。。

stride83 回复

几十万参数?请原谅我见识浅薄了。要我来做的话还是会先生成所有的组合,在生成的时候可以把大致范围限定下,然后再用参数依赖关系去过滤

先生成所有组合,再进一步写规则去筛掉不符合规则的错误组合

parewise 算法 了解一下

把思路反过来,从不同的响应结果倒推需要的参数。这样做可以规避参数间的强依赖关系。
再视具体情况决定是否需要考虑所有的响应结果。
使用常见的用例设计方法去设计用例即可,比如等价类划分,边界值等。

顺便说句,N 年前《Effective C++》里就倡导参数个数不能太多,最好不超过 7 个。这个理念对别的语言也适用。
你若提出这方面的问题,开发团队的架构师或主程应该会对测试团队,嗯好吧是你,刮目相看了吧,呵呵~

先把参数节点标出来,然后用有向图连起来
然后 DFS 和 BFS 算法撸起来……然后再裁剪冗余结果
或者如果对自己的业务理解能力足够有自信,用 6 楼的法子,pairwise 也很优秀,但是涉费业务慎用,pairwise 不能保证全部覆盖到所有分支

Thirty-Thirty 回复

就是不知道不同参数是有什么样的影响,才进行遍历组合的,反过来可能性不大

几十万的参数,难以想象。。。就算是人为设计的场景我觉得也会存在大量的没有考虑全面的情况,因为涉及到组合场景,笛卡尔积数据量已经到不可能穷尽的情况,pairwise 的目的就是用两两组合来覆盖超过 75% 的情况,说实话人工组合能做到 75% 的覆盖率已经非常惊人了。

simple 回复

是的,需要提前筛选一批强相关的,但是由于相关参数是很多继承文档承载的,时间久远,很难捋出来,只能先字面意思的强相关,大约也应该在 4,5 千的样子,也是一个挺大的数字,还有组合等

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册