基于机器学习和演化计算的 GUI 回归测试
软件工程
2018-02-13 v1
摘要
ReTest 是一种用于带有图形用户界面(GUI)的 Java 应用程序的新型测试工具,它结合了猴子测试与差异测试。由于这种组合规避了测试预言问题,因此能够生成基于 GUI 的回归测试。ReTest 利用演化计算(EC),特别是遗传算法(GA),来优化这些测试以提升代码覆盖率。尽管这在软件测试方面确实是一个理想目标,并有可能发现许多缺陷,但它缺乏一个关键要素:人类行为。因此,人类测试人员常常觉得结果不够合理且难以解释。本论文提出了一种新方法,借助机器学习(ML)改进 GA 的初始种群,从而形成一种 ML 技术增强型 EC(MLEC)算法。为此,利用已有测试来提取关于人类测试人员如何使用给定 GUI 的信息。随后将所获得的数据用于训练人工神经网络(ANN),该网络在运行时对可用的 GUI 操作及其底层 GUI 组件进行排序——从而缩小手动创建与自动生成的回归测试之间的差距。尽管该方法在 ReTest 之上实现,但它可轻松用于引导任何形式的猴子测试。结果表明,仅需少量训练数据,ANN 便能达到 82% 的准确率,且所得测试在不显著降低整体代码覆盖率与性能的情况下实现了改进。
引用
@article{arxiv.1802.03768,
title = {Machine Learning and Evolutionary Computing for GUI-based Regression Testing},
author = {Daniel Kraus},
journal= {arXiv preprint arXiv:1802.03768},
year = {2018}
}
备注
125 pages, 22 figures, master thesis