本周粗略阅读了论文《DeepOrder: Deep Learning for Test Case Prioritization in Continuous Integration Testing》,该论文是在传统软件测试中使用AI帮助测试用例选择的代表。
主要工作:
提出DeepOrder:在CI中,使用任意数量测试执行历史记录(持续时间、执行状态),基于多个因素学习失败的测试用例,对测试用例进行排序。
贡献:
-
使用有监督学习,用历史测试数据训练基于回归的回归测试优先级深度学习模型;
-
使用最后4个周期之前的测试历史可以提高优先测试套件的故障检测效率;
-
在4个工业数据集上对该模型进行了实验。
方法:
DeepOrder学习一个近似函数来确定测试用例优先级。
-
在现有的CI周期中收集历史数据集;
-
应用特征提取构建相似数据集;
-
数据集数据增强;
-
训练模型对测试用例优先级排序,直到均方差(MSE)<0.0001;
-
将深度学习模型部署于CI测试中。
模型结构:
其中,输入层中的特征表示测试用例及其属性(测试执行时间、给定CI周期数的执行状态、最后一次执行时间);输出层生成一个实数值,即优先级。
该模型为回归模型,基于每次迭代计算损失,更新模型内权重。