US 12,223,438 B2
Mitigating regression test variability
Sweta Singh, Bangalore (IN); Manish Anand, Irving, TX (US); and Vaibhav Murlidhar Kulkarni, Bangalore (IN)
Assigned to International Business Machines Corporation, Armonk, NY (US)
Filed by International Business Machines Corporation, Armonk, NY (US)
Filed on Jul. 23, 2020, as Appl. No. 16/936,549.
Prior Publication US 2022/0027754 A1, Jan. 27, 2022
Int. Cl. G06N 5/04 (2023.01); G06N 20/00 (2019.01); G06N 99/00 (2019.01)
CPC G06N 5/04 (2013.01) [G06N 20/00 (2019.01); G06N 99/00 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A computer-implemented method comprising:
detecting a client pushing a first software build to a code management system;
responsive to the detected client pushing the first software build, regression testing, by one or more computer processors, the first software build;
profiling a central processing unit (CPU) associated with the regression testing of the first software build, wherein profiling monitors CPU execution time, CPU temperature, minimum utilized CPU, maximum utilized CPU, average CPU, and memory utilization;
responsive to a detected regression in the first software build, identifying one or more historical regression tests and one or more historical software builds conducted on a same release cycle utilizing a computed similarity measure between the first software build and the one or more historical software builds, wherein the identified one or more historical regression tests and historical software builds are K nearest neighbors (KNN) to the first software build, wherein the similarity measure is computed utilizing CPU profiling;
predicting an elapsed time of the regression test utilizing a KNN algorithm comprising the K nearest neighbors each weighted by a corresponding average distance from a test point and the elapsed time as a target variable;
responsive to the predicted elapsed time exceeding an actual elapsed time associated with the first software build, determining that the detected regression is an actual regression; and
responsive to determining that the detected regression is not due to variability, mitigating the first software build based on mitigation actions associated with the one or more identified historical software builds.