A Comprehensive Review On Test Case Prioritization in Continuous Integration Platforms
A Comprehensive Review On Test Case Prioritization in Continuous Integration Platforms
ISSN No:-2456-2165
Fig.1 Overview of Association between CI, CD, and CDE Practices (Source: [3])
Before CD and CDE, CI is a vital practice to unpredictable nature of test cases, which can be included and
implement. CI platforms include automated software design removed in subsequent commits, and the discovery of
and testing, helping engineering teams scale up personnel and numerous errors as quickly as possible.
distribute results while also enabling software designers to
work independently on feature sets concurrently. They can B. Test Case Prioritization
accomplish this independently and quickly if they are willing The TCP issue is described as follows, per Rothermel et
to incorporate such traits into the final result. Buildbot [8], al. [15], for a test suite T, the collection of all promising
GoCD [9], Integrity [10], Jenkins [11], and Travis CI [12] are prioritizations (orderings) of T (PT), and a function f that
the most well-known public CI servers. gauges the effectiveness of a certain prioritization from PT to
real number:
CDE focuses on packaging an artifact (i.e., the
application's construction-ready state) for distribution for T' ∊ PT s.t. (∀T'' ∊ PT) (T''≠T ' )[f(T' )≥f(T'' )]
acceptance testing. The artifact must be ready to be provided
to end-clients (construction) in this manner at any time. A The goal of a TCP issue is to find the best T' possible
CD, on the other hand, can autonomously pack, start, and while achieving specific goals. Due to insufficient resources,
deliver the software artifact to the building site. Using CI, the a full regression test suite cannot be implemented in a
artifact used in CD and CDE was successfully transported to regression testing scenario. TCP approaches can be time-
the integration stage [13]. consuming and require each test location in some
circumstances. The fact that the coverage is maintained,
To evaluate and release new software updates quickly however, also makes this attribute advantageous.
and affordably, improve error identification and software Additionally, TCP permits failing test cases to be
performance, integration and regression testing is a critical implemented initially due to the time and cost constraints for
task in CI platforms. This is because CI allows for quick test the test activity that delay the execution of each test case.
feedback, which results in test cycles being time-constrained This ensures that the greatest possible fault coverage is
[14]. The time costs might vary from cycle to cycle, and they established while using fewer resources and lowering test
include time for selecting critical tests to run, running the costs.
tests, and reporting test results to designers.
The following are a few objectives of TCP techniques,
Therefore, using traditional TCP techniques in the CI according to Rothermel et al. [15]: (1) raising the test suite's
platform requires certain modifications. The methods must error recognition rate even before regression test execution
take into account specific aspects of CI platforms, such as begins, (2) raising the system code coverage under test, (3)
parallel test case execution and resource distribution, the raising the rate at which high-risk errors are identified, and
The exploration of AI models incorporating machine To independently forecast the initial build in a string of
learning, deep learning, reinforcement learning, and build failures as well as the residual build failures, Jin &
probabilistic theories along with search-based algorithms is a Servant [19] created a system called SmartBuildSkip. With
recent trend that is being explored. Utilizing deep learning the aid of this approach, developers were given the freedom
and reinforcement learning models for approaching TCP to decide how much they wanted to sacrifice by storing
techniques in the CI platform has the potential to be a numerous builds or waiting until a build had failed. Based on
promising fix. the automated build-result prediction, it can lower the cost of
CI.
The deep reinforcement learning-based TCP models An approach using Combinatorial VOlatiLE Multi-
used in the CI platform for software testing are covered in- Armed Bandit (COLEMAN) for TCP in the CI platform was
depth in this paper. The advantages and disadvantages of presented by Lima & Vergilio [20]. Using historical test case
various models are also examined in order to solve the issues failure data and RL, the MAB was merged with
and offer viable options for enhancing TCP in the CI combinatorial and volatile elements to adaptively discover a
platform. The remaining paragraphs are organized as follows: sufficient prioritized test suite for all CI cycles. To prioritize
The various AI models for TCP in the CI platform are test cases and improve software privacy, Shi et al. [21]
reviewed in Section II. The study's conclusion and created a new ReLU (Rectified Linear Unit)-weighted
recommendations for further research are presented in Historical Execution (RHE) data reward function. Many
Section III. historical execution outcomes received weighted rewards
based on previous execution data with varied lengths, hence
II. SURVEY ON TEST CASE PRIORITIZATION IN weighted reward functions with multiple lengths for
CONTINUOUS INTEGRATION PLATFORM USING historical outcomes were established.
ARTIFICIAL INTELLIGENCE MODELS
In order to prioritize DNN testing based on the
In order to automatically learn test case prioritization statistical view of DNN for classifying high-dimensional
and selection in the CI platform, Spieker et al. [17] presented objects, Feng et al. [22] created a method called DeepGini.
a novel approach called Retecs. This shortens the time With this approach, the problem of assessing set impurity can
between code pushes and developer feedback on failed test be reduced along with the problem of computing
cases. Based on their execution speed, previous final misclassification chance. As a result, the tests that were
executions, and failure histories, test cases in Retecs were presumably misclassified were quickly found, and the DNN's
chosen and prioritized using RL. Additionally, the Retecs resilience in various classification tasks was increased.
was taught to recognize earlier CI cycles and rank error-
prone test cases according to reward value. By implementing a batch update method akin to Monte
Carlo control for automatically ranking test cases,
An improved regression testing technique called CTFF Rosenbauer et al. [23] enhanced the learning strategy of XCS
was created by Ali et al. [18] for CI and agile software as an RL model. Additionally, they investigated if the
development. Initially, test cases that frequently change were prioritized experience reply for the test prioritization problem
grouped together and given a priority. In the event of a tie, has similar favorable impacts on XCS as it does on the neural
test cases were ranked based on the corresponding failure network. A scalable strategy for CI and regression testing in
frequencies and coverage requirements. Then, from all IoT-based systems was created by Medhat et al. [24]. This
clusters, test cases with a greater frequency of failure or model was built using IoT-related TCP and selection criteria.
coverage requirements were picked for execution. An optimized prioritized set of test cases was initially
obtained using search-based approaches. In order to