Continuous integration testing is an important step in the modern software engineering life cycle. Test prioritization is a method that can improve the efficiency of continuous integration testing by selecting test cases that can detect faults in the early stage of each cycle. As continuous integration testing produces voluminous test execution data, test history is a commonly used artifact in test prioritization. However, existing test prioritization techniques for continuous integration either cannot handle large test history or are optimized for using a limited number of historical test cycles. We show that such a limitation can decrease fault detection effectiveness of prioritized test suites. This work introduces DeepOrder, a deep learning-based model that works on the basis of regression machine learning. DeepOrder ranks test cases based on the historical record of test executions from any number of previous test cycles. DeepOrder learns failed test cases based on multiple factors including the duration and execution status of test cases. We experimentally show that deep neural networks, as a simple regression model, can be efficiently used for test case prioritization in continuous integration testing. DeepOrder is evaluated with respect to time-effectiveness and fault detection effectiveness in comparison with an industry practice and the state of the art approaches. The results show that DeepOrder outperforms the industry practice and state-of-the-art test prioritization approaches in terms of these two metrics.
翻译:连续整合测试是现代软件工程生命周期的一个重要步骤。测试优先排序是一种方法,它可以通过选择能够发现每个周期早期缺陷的测试案例来提高连续整合测试的效率。由于连续整合测试产生大量测试执行数据,测试历史是测试优先排序中常用的手工艺。然而,现有的连续整合测试优先排序技术既不能处理大测试历史,也不能最佳地使用数量有限的历史测试周期。我们表明,这种限制可以降低优先测试套件的错漏检测效力。这项工作引入了深奥德,这是一种深奥德深学习模式,在回归机器学习的基础上运作。深奥德根据以往任何几个测试周期的死刑历史记录对案例进行排序。深奥德根据包括测试案例持续时间和执行状况在内的多种因素,学习失败测试案例。我们实验性地表明,深度神经网络作为一种简单的回归模型,可以有效地用于测试连续整合测试案件的优先度。深奥德公司在与行业实践和艺术方法状态相比,在时间效率和错测得效果方面进行了评估。深奥德将基于以往任何几个测试周期的历史记录。深奥德标准显示,深奥德标准在两次测定等级做法中显示深奥德标准。