Over the lifespan of a software application, it is inevitable that changes to the source code will be made that causes unintended slowdowns in functionality. These slowdowns are referred to as performance regression. Typically projects who are particularly concerned about performance have performance testing that are run to identify if a performance regression is introduced into the code. This is difficult however due to how time consuming and resource intensive running performance tests are when trying to simulate a realistic scenario.

The study of De Oliveira et. al. (Perphecy) [4] suggests a technique to predict the likelihood that a commit will introduce performance regression. This is done through the use of static and dynamic metrics across several projects. The study of Alshoaibi et. al.

(PRICE) [2] replicates and expands the work but focuses on a single project, that being

”Git”. PRICE generated a large dataset consisting of benchmarks for each commit introduced into the code compared to the commit that was its predecessor.

This thesis seeks to further expand PRICE and use their collected data to create a machine learning model that can accurately predict performance regression within commits.

We have been able to successfully create these models and were able to outperform previous models at identifying performance regression introducing commits.

Library of Congress Subject Headings

Computer software--Testing; Machine learning

Publication Date


Document Type


Student Type


Degree Name

Software Engineering (MS)

Department, Program, or Center

Software Engineering (GCCIS)


Mohamed Wiem Mkaouer

Advisor/Committee Member

Yasmine El-Glaly

Advisor/Committee Member

Ali Ben Mrad


RIT – Main Campus

Plan Codes