Performance regression testing is a cost-intensive task as it delays the system development. The process, if performed in Iterations, significantly slows down the developer’s pace. Hence, it is essential to execute the performance tests only on the new commit and not the whole system, as regression is induced by a newly made change to the system. This work presents a novel contribution to the detection of performance regression inducing code changes to solve the optimization problem. In this study, we combine the static and dynamic metrics as features to train classifiers to predict the performance regression if introduced by the newly made change.
To early predict the performance regression inducing code changes, we teach multiple classifiers and compare them with previous techniques. The classification of this type of data is difficult because of the Class Imbalance Problem. In any code base, over some time, it is ensured that the number of problematic commits is lower than the number of non-problematic commits. This creates the class imbalance problem as the number of problematic changes would be severely small as compared to the non-problematic changes. We tackle the class imbalance problem by using various resampling techniques: ROS, RUS, SMOTE, and compare them with each other and the original dataset. The project used to evaluate our approach is Git.
Our approach shows impact and effectiveness to save the testing time of the performance tests and also to solve the class imbalance problem to aid further studies and state-of-the-art procedures.
Library of Congress Subject Headings
Computer software--Testing; Prediction theory; Data mining; Learning classifier systems
Software Engineering (MS)
Department, Program, or Center
Software Engineering (GCCIS)
Mohamed Wiem Mkaouer
Gupta, Hiten, "Detecting Performance Regression Inducing Code Changes Using Static and Dynamic Metrics" (2020). Thesis. Rochester Institute of Technology. Accessed from
RIT – Main Campus