Systems and methods for test prediction in continuous integration environments
AssigneeOracle International Corporation
InventorsAbhijit Bhattacharjee, Manoj Dash
Life of this patent
Estimating the term…
Abstract
The present disclosure generally relates to predicting automated software tests for testing units of work delivery in a continuous integration development environment. More particularly, the present disclosure relates to systems and methods for improving the efficiency of code integration by predicting a subset of automated software tests from amongst a set of all available automated software tests, thereby improving testing time and reducing processing loads.
Claims20
A computer-implemented method, comprising:
- accessing source code associated with one or more applications, the source code including one or more executable functions, each executable function of the one or more executable functions corresponding to a stub, the stub including executable code that identifies one or more tests to be performed on the executable function, and each of the one or more tests including instructions for detecting errors in the executable function;
- transforming the source code into baseline machine-readable code, the transformation of the source code including compiling the one or more executable functions included in the source code;
- detecting modified source code, the modified source code including a modification to an executable function of the one or more executable functions included in the source code;
- transforming the modified source code into modified machine-readable code;
- accessing a mapping table identifying a plurality of tests, one or more tests of the plurality of tests corresponding to an executable function of the one or more executable functions included in the source code, wherein each test of the plurality of tests is detected by a compiler upon executing the test at a previous time, and wherein upon detection by the compiler at the previous time, the detected test is stored in the mapping table;
- comparing the baseline machine-readable code with the modified machine-readable code, the comparison resulting in identifying the modified executable function;
- determining a group of tests from amongst the plurality of tests, the group of tests being determined based on the comparison, the determination of each test in the group of tests being performed using the mapping table and the modified executable function;
- and
- performing each test of the group of tests to identify whether the modified machine-readable code includes one or more errors.
A system, comprising:
- one or more data processors;
- and
- a non-transitory computer-readable storage medium containing instructions which, when executed on the one or more data processors, cause the one or more data processors to perform operations including:
- accessing source code associated with one or more applications, the source code including one or more executable functions, each executable function of the one or more executable functions corresponding to a stub, the stub including executable code that identifies one or more tests to be performed on the executable function, and each of the one or more tests including instructions for detecting errors in the executable function;
- transforming the source code into baseline machine-readable code, the transformation of the source code including compiling the one or more executable functions included in the source code;
- detecting modified source code, the modified source code including a modification to an executable function of the one or more executable functions included in the source code;
- transforming the modified source code into modified machine-readable code;
- accessing a mapping table identifying a plurality of tests, one or more tests of the plurality of tests corresponding to an executable function of the one or more executable functions included in the source code, wherein each test of the plurality of tests is detected by a compiler upon executing the test at a previous time, and wherein upon detection by the compiler at the previous time, the detected test is stored in the mapping table;
- comparing the baseline machine-readable code with the modified machine-readable code, the comparison resulting in identifying the modified executable function;
- determining a group of tests from amongst the plurality of tests, the group of tests being determined based on the comparison, the determination of each test in the group of tests being performed using the mapping table and the modified executable function;
- and
- performing each test of the group of tests to identify whether the modified machine-readable code includes one or more errors.
A computer-program product tangibly embodied in a non-transitory machine-readable storage medium, including instructions configured to cause a data processing apparatus to perform operations including:
- accessing source code associated with one or more applications, the source code including one or more executable functions, each executable function of the one or more executable functions corresponding to a stub, the stub including executable code that identifies one or more tests to be performed on the executable function, and each of the one or more tests including instructions for detecting errors in the executable function;
- transforming the source code into baseline machine-readable code, the transformation of the source code including compiling the one or more executable functions included in the source code;
- detecting modified source code, the modified source code including a modification to an executable function of the one or more executable functions included in the source code;
- transforming the modified source code into modified machine-readable code;
- accessing a mapping table identifying a plurality of tests, one or more tests of the plurality of tests corresponding to an executable function of the one or more executable functions included in the source code, wherein each test of the plurality of tests is detected by a compiler upon executing the test at a previous time, and wherein upon detection by the compiler at the previous time, the detected test is stored in the mapping table;
- comparing the baseline machine-readable code with the modified machine-readable code, the comparison resulting in identifying the modified executable function;
- determining a group of tests from amongst the plurality of tests, the group of tests being determined based on the comparison, the determination of each test in the group of tests being performed using the mapping table and the modified executable function;
- and
- performing each test of the group of tests to identify whether the modified machine-readable code includes one or more errors.
Dependencies are inferred from the claim text.