TERMINATOR:更优的自动化 UI 测试用例优先级排序
软件工程
2019-06-20 v2 机器学习
摘要
自动化 UI 测试是软件开发持续集成过程的重要组成部分。现代基于 Web 的 UI 是多个团队编写的几十个微服务的报告集合。如果某个页面的任一微服务发生故障,打开该页面的查询就会失败。因此,由于 UI 元素无法隔离测试,自动化 UI 测试的总体成本很高。例如,LexisNexis 的整套自动化 UI 测试执行约需 30 小时(云端 3-5 小时),这拖慢了持续集成过程。为缓解该问题并让开发人员更快获得代码反馈,测试用例优先级排序(TCP)技术被用于重排自动化 UI 测试用例,以便更早检测到更多故障。鉴于大量自动化 UI 测试本质上是“黑盒”的,可用于优先级排序的信息极少(仅有测试用例描述和测试结果)。因此,本文评估了 17 种不依赖源代码信息的“黑盒”测试用例优先级排序方法。其中,我们提出了一种新颖的 TCP 方法,在检测到新故障时通过应用并改编全召回(total recall)问题中的前沿框架,对测试用例进行动态重排序。基于 LexisNexis 自动化 UI 测试数据的实验结果表明,我们的新方法(称为 TERMINATOR)在故障检测率上优于先前的前沿方法,且 CPU 开销可忽略不计。
引用
@article{arxiv.1905.07019,
title = {TERMINATOR: Better Automated UI Test Case Prioritization},
author = {Zhe Yu and Fahmid M. Fahid and Tim Menzies and Gregg Rothermel and Kyle Patrick and Snehit Cherian},
journal= {arXiv preprint arXiv:1905.07019},
year = {2019}
}
备注
10+2 pages, 4 figures, 3 tables, ESEC/FSE 2019 industry track