中文

面向软件测试任务的强化学习框架比较

软件工程 2023-06-30 v3 机器学习

摘要

软件测试活动审查软件产品的制品与行为,以发现可能的缺陷并确保产品满足预期需求。近来,深度强化学习(DRL)已成功应用于游戏测试、回归测试和测试用例优先级排序等复杂测试任务,以实现流程自动化并提供持续适应。实践者可通过从零实现DRL算法或使用DRL框架来采用DRL。DRL框架提供维护良好的已实现前沿DRL算法,以促成并加速DRL应用的开发。开发者已广泛使用这些框架解决包括软件测试在内的各领域问题。然而,据我们所知,尚无研究对DRL框架中所实现算法的有效性与性能进行实证评估。此外,文献中缺乏一些可帮助实践者在众多DRL框架中作出选择的指导方针。本文中,我们实证研究了精心挑选的DRL算法在两项重要软件测试任务上的应用:持续集成(CI)背景下的测试用例优先级排序与游戏测试。对于游戏测试任务,我们在一个简单游戏上进行实验,并使用DRL算法探索游戏以检测缺陷。结果表明,部分所选DRL框架(如Tensorforce)优于文献中近期方法。为优先排序测试用例,我们在CI环境中运行实验,使用来自不同框架的DRL算法对测试用例排序。我们的结果表明,某些情况下所实现算法间的性能差异相当可观,值得进一步研究。

关键词

引用

@article{arxiv.2208.12136,
  title  = {A Comparison of Reinforcement Learning Frameworks for Software Testing Tasks},
  author = {Paulina Stevia Nouwou Mindom and Amin Nikanjam and Foutse Khomh},
  journal= {arXiv preprint arXiv:2208.12136},
  year   = {2023}
}

备注

Accepted for publication at EMSE (Empirical Software Engineering journal) 2023