US 12,130,730 B2
Determining test cases to be run upon changes in software application code
Nilesh Jain, Bangalore (IN); and Krishnananda Subbarao, Bangalore (IN)
Assigned to Oracle International Corporation, Redwood Shores, CA (US)
Filed by Oracle International Corporation, Redwood Shores, CA (US)
Filed on Jul. 14, 2022, as Appl. No. 17/812,459.
Prior Publication US 2024/0020219 A1, Jan. 18, 2024
Int. Cl. G06F 11/36 (2006.01); G06F 8/71 (2018.01)
CPC G06F 11/3688 (2013.01) [G06F 8/71 (2013.01)] 17 Claims
OG exemplary drawing
 
1. A computer-implemented method for determining test cases to be run upon changes in software application code, the method comprising:
receiving a test suite containing a plurality of test cases designed to perform the testing of a software application, said software application containing a plurality of components;
executing each test case of said plurality of test cases to determine a corresponding sequence of components of said plurality of components executed for the test case;
storing a dependency data indicating for each test case, the corresponding sequence of components executed for the test case;
determining that a first component of said plurality of components has been changed;
identifying a first set of test cases that cause execution of said first component by performing a reverse look-up in said dependency data;
checking whether said dependency data is stale, wherein said checking is based on one or both of whether said dependency data is older than a pre-defined threshold time and whether the number of changes made to said software application is larger than a pre-defined value;
if said dependency data is stale:
finding a second set of components having a static dependency with said first component, wherein a component is deemed to have said static dependency and is included in said second set of components if the software code constituting said first component includes a code line that references the component;
identifying a second set of test cases that cause execution of any component of said second set of components by performing a reverse look-up in said dependency data; and
including said first set of test cases and said second set of test cases in the test cases to be run for re-testing said software application.