DeepOrder: Deep Learning for Test Case Prioritization in Continuous Integration Testing

10/14/2021
by   Aizaz Sharif, et al.
26

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.

READ FULL TEXT
research
04/22/2022

Comparative Study of Machine Learning Test Case Prioritization for Continuous Integration Testing

There is a growing body of research indicating the potential of machine ...
research
11/09/2018

Reinforcement Learning for Automatic Test Case Prioritization and Selection in Continuous Integration

Testing in Continuous Integration (CI) involves test case prioritization...
research
04/29/2021

Machine Learning Techniques for Software Quality Assurance: A Survey

Over the last years, machine learning techniques have been applied to mo...
research
08/25/2023

Accelerating Continuous Integration with Parallel Batch Testing

Continuous integration at scale is costly but essential to software deve...
research
08/16/2022

Machine Learning-Based Test Smell Detection

Context: Test smells are symptoms of sub-optimal design choices adopted ...
research
05/06/2019

Continuous and Resource Managed Regression Testing: An Industrial Use Case

Regression testing is an important part of quality control in both softw...
research
09/27/2021

Scalable and Accurate Test Case Prioritization in Continuous Integration Contexts

Continuous Integration (CI) requires efficient regression testing to ens...

Please sign up or login with your details

Forgot password? Click here to reset