A performance regression is a degradation of software performance due to a change in code. A common way to identify such regressions is to manually create tests for them . This is known as regression testing. Although widely used, regression testing can be slow and error-prone due to its historically manual nature. Moreover, such tests' utility is usually constrained by the expertise of the developer creating them. Due to these limitations, researchers have turned their attention to the automatic generation of regression tests . In this paper, we  present AutoPerf - a novel approach to automate regression testing that utilizes three core techniques: (i) zero-positive learning, (ii) autoencoders, and (iii) hardware telemetry. We demonstrate AutoPerf's generality and efficacy against 3 types of performance regressions across 10 real performance bugs in 7 benchmark and open-source programs. On average, AutoPerf exhibits 4\% profiling overhead and accurately diagnoses more performance bugs than prior state-of-the-art approaches  .
The field of machine programming (MP), the automation of the development of software, is making notable research advances . This is , in part, due to the emergence of a wide range of novel techniques in machine learning . In this paper, we apply MP to the automation of software performance regression testing. A performance regression is a software performance degradation caused by a code change. We present AutoPerf - a novel approach to automate regression testing that utilizes three core techniques: (i) zero-positive learning, (ii) autoencoders, and (iii) hardware telemetry. We demonstrate AutoPerf's generality and efficacy against 3 types of performance regressions across 10 real performance bugs in 7 benchmark and open-source programs. On average, AutoPerf exhibits 4\% profiling overhead and accurately diagnoses more performance bugs than prior state-of-the-art approaches . Thus far, AutoPerf has produced no false negatives .
R
A performance regression is a degradation of software performance due to a change in code. A common way to identify such regressions is to manually create tests for them
The field of machine programming (MP), the automation of the development of software, is making notable research advances
R
known as regression testing. Although widely used, regression testing can be slow and error-prone due to its historically manual nature. Moreover, such tests' utility is usually constrained by the expertise of the developer creating them. Due to these limitations, researchers have turned their attention to the automatic generation of regression tests
, in part, due to the emergence of a wide range of novel techniques in machine learning
A
apply MP to the automation of software performance regression testing. A performance regression is a software performance degradation caused by a code change. We
A
. Thus far, AutoPerf has produced no false negatives