【论文分享】VET:UI探索陷阱的发现与避免


论文:http://youngwei.com/pdf/Vet.pdf
code:https://github.com/VET-UI-Testing/main

一、背景

在APP遍历测试的过程中,存在许多探索陷阱,比如下图C中APP点击登出按钮后,就跳到了图D,难以再跳回图A、B、C中的任何一个页面。论文提出一种方法能够找到类似于图C的容易进入陷阱的界面。
在这里插入图片描述

二、 论文方案

变量定义

S_i —— 第i个截图
t_i —— S_i 被观察到的时间(时间戳)
S_t,l —— 从l到r的截图域
{S_t,l} —— 消除重复截图的集合,l到r之间
|S^s_l,r| —— 从l到r过程中s是否发生,发生记为1
t_min —— 从l到r的最小时间
E_p —— 优化过程中认为定义的n的上界

算法解析

探索空间分区

在这里插入图片描述

作者用上面公式计算最优的S_n, S_n代表着最容易让测试工具进入陷阱的那个页面。
第一项:最小化 [n+1, N] 中出现在s属于{S_1, n}的元素的个数。这一项的物理意义是如果 {S_1, n}中的页面越少出现在S_n之后的页面中,说明S_n越符合要求。第一项的范围是[0,1]

第一项用到以下放缩进行推导:
在这里插入图片描述

第二项:我们需要人为定义E_p作为优化上界,第二项表示优化Sn+1到S_N的页面的集合元素,让它趋近于E_p到N的元素数量。这样一来,经过2倍的sogmoid再-1后,第二项就趋近于0了。

代码讲解

笔者看作者开源的检测陷阱的代码,发现这个方案是离线的,论文作者还写了一个trace预处理程序工具,处理收集到的页面轨迹。
在这里插入图片描述

遍历轨迹中的每一个页面i,计算它的score,寻找使得score最小的页面,定义为容易陷入陷阱的页面S_n。
开源代码中作者采用时间界定优化上界EP,认为任务开始EP时间后APP陷入陷阱中。

局部过度探索

在解决局部过度探索问题中作者提出一种页面合并的算法。

在这里插入图片描述

计算页面r到l之间出现的页面集合的元素个数,尽量收敛到一个最小的集合。
MERGE算法流程:
在这里插入图片描述

判断页面是否相似的算法:
在这里插入图片描述

个人理解此过程更像是更像是一个聚类的过程,将相似的UI聚成一个簇。

代码讲解

局部探索过程中的核心就是检查页面是否相似,作者将UI的层次结构记录,每个页面对应树中的一个节点,节点序列为历史任务的属性的拼接。最终判断node1中是否是node2的子序列从而判断两个页面是否相似。

在这里插入图片描述

三、总结

本论文所述的方法是用于解决UI测试过程中页面陷阱探索以及检测局部过度探索的问题,笔者近期实习的时候学习到这篇文章想要分享一下,目前聚焦的方向是自动化质量检测以及和强化学习相关的东西,大家有好的想法可以在评论区分享~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值