US10380004B2ActiveUtilityA1
Test case reduction for code regression testing
Est. expiryMar 15, 2033(~6.7 yrs left)· nominal 20-yr term from priority
G06F 11/3672G06F 11/3688
87
PatentIndex Score
8
Cited by
20
References
24
Claims
Abstract
In at least one embodiment, a system performs regression testing of software using selected test cases. In at least one embodiment, the system selects the test case for regression testing based on whether the test case correlates with modified code. In at least one embodiment, a test case correlates with the modified code if the test case tests all or a proper subset of the modified code. In at least one embodiment, if a test case does not test any of the modified code, then the test case is not used in the regression testing of the modified code.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A method testing code after modification of multiple portions of the code, the method comprising:
performing by a computer system programmed with code stored in a memory and executable by a processor of the computer system for:
accessing the code after modification of the multiple portions of the code, which includes modification of multiple classes of the code;
determining which of the multiple portions of the code, including the modified multiple classes, were modified;
accessing data correlating one or more test cases to respective portions of the code, wherein each test case that is correlated to a portion of the code tests the correlated portion of code during a test of the code;
identifying one or more correlated test cases, wherein the correlated test cases are the one or more test cases that correlate with the multiple portions of the code, including the multiple classes, that were modified;
iterating through multiple test cases to determine which of the multiple test cases are prerequisites to the one or more identified correlated test cases;
continue iterating through the multiple test cases to determine which of the multiple tests cases are prerequisites to the one or more determined prerequisite test cases;
repeating the continue iterating element until all prerequisite test cases are determined; and
testing the code using only the one or more correlated test cases and the one or more prerequisite test cases.
2. The method of claim 1 wherein each portion of the portions of code consist of one or more members of a group consisting of: a line of code, a block of code, a method, a class, and a package.
3. The method of claim 1 wherein the data correlating the one or more test cases to respective portions of the code comprises a map that correlates each test case with the code exercised by the test case.
4. The method of claim 1 further comprising:
testing the code in accordance with one of the test cases;
exercising a portion of the code with the test case used for the testing; and
recording which portion of the code was exercised by the test case used for the testing.
5. The method of claim 4 wherein exercising the portion of the code with the test case used for the testing comprises:
calling one or more methods of the code.
6. The method of claim 4 wherein recording which portion of the code was exercised by the test case used for the testing comprises:
storing the portion of the code exercised by the test case used for testing as a data map in a non-transitory, computer readable medium, wherein the data correlating one or more test cases to respective portions of the code comprises the data map.
7. The method of claim 1 further comprising:
not testing the code using any test cases that do not correlate with the multiple portions of the code that were modified.
8. The method of claim 1 wherein a test case correlates with the multiple portions of the code that were modified if the test case tests all or a proper subset of the multiple portions of the code that were modified.
9. A data processing system comprising:
a processor; and
a memory, coupled to the processor, that includes code stored therein and executable by the processor to test the code after modification of multiple portions of the code, which modification of multiple classes of the code, and to transform the data processing system into a testing system for:
accessing the code after modification of the multiple portions of the code, which includes modification of multiple classes of the code;
determining which of the multiple portions of the code, including multiple classes, were modified;
accessing data correlating one or more test cases to respective portions of the code, wherein each test case that is correlated to a portion of the code tests the correlated portion of code during a test of the code;
identifying one or more correlated test cases, wherein the correlated test cases are the one or more test cases that correlate with the multiple portions of the code, including the multiple classes, that were modified;
iterating through multiple test cases to determine which of the multiple test cases are prerequisites to the one or more identified correlated test cases;
continue iterating through the multiple test cases to determine which of the multiple tests cases are prerequisites to the one or more determined prerequisite test cases;
repeating the continue iterating element until all prerequisite test cases are determined; and
testing the code using only the one or more correlated test cases and the one or more prerequisite test cases.
10. The data processing system of claim 9 wherein each portion of the portions of code consist of one or more members of a group consisting of: a line of code, a block of code, a method, a class, and a package.
11. The data processing system of claim 9 wherein the data correlating the one or more test cases to respective portions of the code comprises a map that correlates each test case with the code exercised by the test case.
12. The data processing system of claim 9 wherein the code is further executable by the processor for:
testing the code in accordance with one of the test cases;
exercising a portion of the code with the test case used for the testing; and
recording which portion of the code was exercised by the test case used for the testing.
13. The data processing system of claim 12 wherein exercising the portion of the code with the test case used for the testing comprises:
calling one or more methods of the code.
14. The data processing system of claim 12 wherein recording which portion of the code was exercised by the test case used for the testing comprises:
storing the portion of the code exercised by the test case used for testing as a data map in a non-transitory, computer readable medium, wherein the data correlating one or more test cases to respective portions of the code comprises the data map.
15. The data processing system of claim 9 wherein the code is further executable by the processor for:
not testing the code using any test cases that do not correlate with the multiple portions of code that were modified.
16. The data processing system of claim 9 wherein a test case correlates with the multiple portions of the code that were modified if the test case tests all or a proper subset of the multiple portions of the code that were modified.
17. A non-transitory computer readable medium comprising code stored therein and executable by a processor to test the code after modification of multiple portions of the code, which includes modification of multiple classes of the code, and to transform a data processing system into a testing system for:
accessing the code after modification of the multiple portions of the code, which includes modification of multiple classes of the code;
determining which of the multiple portions of the code, including multiple classes, were modified;
accessing data correlating one or more test cases to respective portions of the code, wherein each test case that is correlated to a portion of the code tests the correlated portion of the code during a test of the code;
identifying one or more correlated test cases, wherein the correlated test cases are the one or more test cases that correlate with the multiple portions of the code, including the multiple classes, that were modified;
iterating through multiple test cases to determine which of the multiple test cases are prerequisites to the one or more identified correlated test cases;
continue iterating through the multiple test cases to determine which of the multiple tests cases are prerequisites to the one or more determined prerequisite test cases;
repeating the continue iterating element until all prerequisite test cases are determined; and
testing the code using only the one or more correlated test cases and the one or more prerequisite test cases.
18. The non-transitory, computer readable medium of claim 17 wherein each portion of the portions of code consist of one or more members of a group consisting of: a line of code, a block of code, a method, a class, and a package.
19. The non-transitory, computer readable medium of claim 17 wherein the data correlating the one or more test cases to respective portions of the code comprises a map that correlates each test case with the code exercised by the test case.
20. The non-transitory, computer readable medium of claim 17 wherein the code is further executable by the processor for:
testing the code in accordance with one of the test cases;
exercising a portion of the code with the test case used for the testing; and
recording which portion of the code was exercised by the test case used for the testing.
21. The non-transitory, computer readable medium of claim 17 wherein exercising the portion of the code with the test case used for the testing comprises: calling one or more non-transitory, computer readable mediums of the code.
22. The non-transitory, computer readable medium of claim 21 wherein recording which portion of the code was exercised by the test case used for the testing comprises:
storing the portion of the code exercised by the test case used for testing as a data map in a non-transitory, computer readable medium, wherein the data correlating one or more test cases to respective portions of the code comprises the data map.
23. The non-transitory, computer readable medium of claim 17 wherein the code is further executable by the processor for:
not testing the code using any test cases that do not correlate with the multiple portions of code that were modified.
24. The non-transitory, computer readable medium of claim 17 wherein a test case correlates with the multiple portions of the code that were modified if the test case tests all or a proper subset of the multiple portions of the code that were modified.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.