IP Library Granted Patent US 12,711,045
Granted Patent B2
US 12,711,045 · App. 18/587,278 · Granted Aug 18, 2026

Test case reduction for code regression testing

Inventors: Joseph A Liemandt (Austin, TX); Rahul Subramaniam (Dubai, AE); Samy Aboel-Nil (Austin, TX)
Assignee: DevFactory Innovations FZ-LLC
G06F11/3672G06F11/3688
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,711,045
App. No.
18/587,278
Filed
Feb 26, 2024
Granted
Aug 18, 2026
Kind
B2
Art Unit
2197
USPC
717/124
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 (47)

1 . A system for testing computer software after modification of one or more portions of code of the computer software, the system comprising:

means for accessing the code after modification of the multiple portions of the code, which includes modification of multiple classes of the code;

means for determining which of the multiple portions of the code, including the modified multiple classes, were modified;

means for 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 computer software;

means for 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 modified multiple classes, that were modified;

means for iterating through multiple test cases to determine which of the multiple test cases are prerequisites to the one or more identified correlated test cases;

means for 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;

means for repeating the continue iterating element until all prerequisite test cases are determined; and

means for testing the code using the one or more correlated test cases and the one or more determined prerequisite test cases.

2 . The system 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 system, a class, and a package.

3 . The system 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 system of claim 1 further comprising:

means for testing the code in accordance with one of the test cases;

means for exercising a portion of the code with the test case used for the testing; and

means for recording which portion of the code was exercised by the test case used for the testing.

5 . The system of claim 4 wherein the means for exercising the portion of the code with the test case used for the testing comprises:

means for calling one or more systems of the code.

6 . The system of claim 4 wherein the means for recording which portion of the code was exercised by the test case used for the testing comprises:

means for 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 system of claim 1 further comprising:

means for not testing the code using any test cases that do not correlate with the multiple portions of the code that were modified.

8 . The system 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 system that includes testing computer software after modification of one or more portions of code of the computer software, the system comprising:

means for receiving a code testing report for the computer software, wherein the code testing report is generated by a second computer system, coupled to the first computer system, executing second code stored in a second memory of the second computer system to cause the second computer system to perform:

means for accessing the code after modification of the multiple portions of the code, which includes modification of multiple classes of the code;

means for determining which of the multiple portions of the code, including the modified multiple classes, were modified;

means for 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 computer software;

means for 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 modified multiple classes, that were modified;

means for iterating through multiple test cases to determine which of the multiple test cases are prerequisites to the one or more identified correlated test cases;

means for 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;

means for repeating the continue iterating element until all prerequisite test cases are determined;

means for testing the code using the one or more correlated test cases and the one or more determined prerequisite test cases;

means for generating the code testing report that includes test results of the testing of the code using the one or more correlated test cases and the one or more determined prerequisite test cases; and

means for providing the code testing report to the first computer system.

10 . The 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 system, a class, and a package.

11 . The 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 system of claim 9 further comprising:

means for testing the first code in accordance with one of the test cases;

means for exercising a portion of the first code with the test case used for the testing; and

means for recording which portion of the first code was exercised by the test case used for the testing.

13 . The system of claim 12 wherein the means for exercising the portion of the first code with the test case used for the testing comprises:

means for calling one or more systems of the code.

14 . The system of claim 12 wherein the means for recording which portion of the code was exercised by the test case used for the testing comprises:

means for 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 system of claim 12 further comprising:

means for executing second code stored in a second memory of the second computer system to cause the second computer system to not test the code using any test cases that do not correlate with the multiple portions of the code that were modified.

16 . The 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.

Continuity (3)
Continuation 17867337 · Jul 18, 2022
Continuation 17182028 · Feb 22, 2021
Related Publication 20240281364A1 · Aug 22, 2024
References Cited (27)
US 5673387A · Chen · 1997 [cited by examiner]
US 6536036B1 · Pavela · 2003 [cited by examiner]
US 7480900B1 · Zhou · 2009 [cited by examiner]
US 7614042B1 · Hardy · 2009 [cited by examiner]
US 8205191B1 · Kolawa · 2012 [cited by examiner]
US 8276123B1 · Deng · 2012 [cited by examiner]
US 8522083B1 · Cohen · 2013 [cited by examiner]
US 10678666B1 · Gauf · 2020 [cited by examiner]
US 20030204836A1 · Srivastava · 2003 [cited by examiner]
US 20030212924A1 · Avvari · 2003 [cited by examiner]
US 20040064253A1 · Brayton · 2004 [cited by examiner]
US 20050044533A1 · Nesbit · 2005 [cited by examiner]
US 20080148247A1 · Galler · 2008 [cited by examiner]
US 20090265693A1 · Bakowski · 2009 [cited by examiner]
US 20130159774A1 · Budnik · 2013 [cited by examiner]
US 20150026664A1 · Bartley · 2015 [cited by examiner]
US 20150220426A1 · Spektor · 2015 [cited by examiner]
US 20210042217A1 · Hwang · 2021 [cited by examiner]
Orso, et al.; “Using Component Metacontent to Support the Regression Testing of Component-Based Software”; Proceedings IEEE International Conference on Software Maintenance (ICSM 2001) (pp. 716-725); 2001 (Year: 2001). [cited by examiner]
Erlang.org; “Dependencies between Test Cases and Suites”; Common Test User's Guide, Chapter 12; Erlang.org website (full url in ref.); captured by the Wayback Machine Internet Archive (archivr.org) on Feb. 17, 2013 (Yea… [cited by examiner]
Notice of Allowance mailed Nov. 24, 2023, filed in U.S. Appl. No. 17/867,337, pp. 1-5. [cited by applicant]
Terminal Disclaimer filed Nov. 6, 2023, filed in U.S. Appl. No. 17/867,337, pp. 1-3. [cited by applicant]
Terminal Disclaimer approved Nov. 6, 2023, filed in U.S. Appl. No. 17/867,337, p. 1. [cited by applicant]
Response to Final Office Action, filed in U.S. Appl. No. 17/867,337, pp. 1-8. [cited by applicant]
Final Office Action mailed Jul. 5, 2023, filed in U.S. Appl. No. 17/867,337, pp. 1-16. [cited by applicant]
Response to Non-Final Office dated Jun. 15, 2023, filed in U.S. Appl. No. 17/867,337, pp. 1-8. [cited by applicant]
Non-Final Office Action mailed Feb. 16, 2023, filed in U.S. Appl. No. 17/867,337, pp. 1-13. [cited by applicant]