原文作者:Yan Zheng, Yi Liu, Xiaofei Xie, Yepang Liu, Lei Ma, Jianye Hao, and Yang Liu
原文标题:Automatic Web Testing Using Curiosity-Driven Reinforcement Learning
原文链接:https://arxiv.org/pdf/2103.06018.pdf
笔记作者:nerd@SecQuan
简介
该文为发表于ICSE 2021的Automatic Web Testing Using Curiosity-Driven Reinforcement Learning。其研究主要在于端到端对web应用程序进行自适应地测试。针对Web应用的测试一直被认为是一项困难的任务。即使在今天,web测试仍然严重依赖于人工操作,而自动化web测试远未达到人工的水平。在篇论文中,作者使用好奇心驱动的强化学习方法以生成满足时序逻辑关系的高质量测试用例,并测试过程中逐步构建了一个自动机,以提高测试效率。
方法
作者为他提出的web应用测试框架命名为WebExplor,其目的是自动化生成不同的操作序列,让测试覆盖到web应用的更多行为。为了实现这一目标,WebExplor主要采用好奇心驱动的强化学习(RL)来不断优化策略,并更够在线学习,不像传统的AI方案那样需要先训练好模型才能部署。如下图所示,WebExplor主要包括三大组件,分别是Web应用抽象化、基于强化学习的测试用例生成和有限自动机。
状态提取
好奇心驱动的强化学习
有穷自动机宏观指导
最后,对于一个较大的状态空间进行探索,强化学习可能会无法到达某一状态的问题。如下图所示,例如某办公系审核流程中,状态S
0 到状态S
m+1 之间虽然每一步跳转的概率都是0.9,但是到达S
m+1 的概率只有0.9
5 。为了应对这一问题,WebExplor利用有穷自动机在宏观层面对web应用的探索过程进行指导。当探索一定次数仍未发现新的状态时,则使用有穷自动机找到一个好奇心度最高的目标状态,然后让强化学习的智能体直接过度到这一状态继续探索。
实验
在实验阶段,作者主要通过实验结果说明一下四个问题:
WebExplor的代码覆盖率如何?
WebExplor的故障探测率如何?
有限自动机是否有效指导了针对web应用的探测过程?
WebExplor在真实环境下效果如何?
如下表所示,作者针对多个GIthub上多个流行项目(高于50 stars)进行测试,实验就过表明其代码覆盖率和故障探测率指标普遍优于其他无导航模型方法(Crawljax, Random)和基于导航模型的方法(DIG, SUBWEB),无论其导航模型时自动生成(APO)还是需要人工辅助(MPO)。
此外,如下图所示,使用有穷自动机对WebExplor的探测过程进行宏观指导时,可以更早得获得更高的指标,以提高探测效率,并且最终结果也普遍由于不使用有穷自动机的WebExplor。
Be First to Comment