基于这个个思路,我们在实践中引入了编辑距离和并查集算法,以节点路径为参照,对树的每一层的每两个节点计算编辑距离,生成一个*矩阵;同时以树的高度减去节点位于的层数作为权重,修正编辑距离基于这样的计算,会产生多个编辑距离矩阵为了尝试最大化合并构造用例效果,我们把编辑距离做了矩阵转化其中,由于编辑距离为的两个节点可能存在业务逻辑耦合关系,必须放在同一个组里分别构造,转化成了,最后得到了一个的编辑距离矩阵
在矩阵情况下,我们使 科威特手机号码列表 用了图的连通性概念,如果和连通,和连通,那我们认为和连通,转化到这里的概念就是和相似,和相似,那么和相似,它们应该被放在同一个组里分开进行构造,那么在同层元素构造时,我们会从每个分组里取到一个节点,对这些规则进行变异组合构造基于以上两个策略进行精简后生成的变异数据量较精简前降低了4%,同时代码覆盖率没有明显变化,并且保持不变的健壮性问题发现能力
美团和优选都接入了这个工具,在新需求阶段可以人工触发运行,还可以结合客户端组件集成事件和回归事件做自动触发至今应用一年时间内,发现了几十个问题5总结及展望在健壮性工具建设一期里,我们实现了页面加载展示场景的健壮性问题检测,支持崩溃、卡死和部分功能异常这三类异常检测另外,基于节点相似性优化变异数据生成策略能够在保持效果不变的情况下有效控制测试时长,但是否有更优的合并算法和推荐算法,还需要更多的尝试
|