IP Library Granted Patent US 11,526,427
Granted Patent B2
US 11,526,427 · App. 16/946,700 · Granted Dec 13, 2022

Software code testing system

Inventors: Fei Yuan (Chengdu, CN); Jie Wang (Chengdu, CN); Bowen Lei (Chengdu, CN); Fei Wang (Chengdu, CN); Qinglan Li (Chengdu, CN)
Assignee: Dell Products L.P.
G06F11/3676G06F11/3684G06F11/3688G06F11/3692
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 11,526,427
App. No.
16/946,700
Granted
Dec 13, 2022
Kind
B2
Abstract

A software code testing system includes sub-engines and a test case database storing test cases. A test case sub-engine runs each of the test cases on a plurality of software code modules, and a software code coverage determination sub-engine identifies a respective software code coverage for each software code method included in each of the software code modules. A test case/software code coverage mapping sub-engine then maps the respective software code coverage for each of the software code methods included in each of the software code modules with the respective test case that was run on that software code module to provide a test case/software code coverage mapping, which is used by a test suite optimization sub-engine to generate a test suite that includes a subset of the test cases that provide a desired level of software code coverage using a minimum number of test cases.

Claims (62)

1. A software code testing system, comprising:

a test case database storing a plurality of test cases; and

a test case sub-engine that is coupled to the test case database and that is configured to:

run each of the plurality of test cases on a plurality of software code modules;

a software code coverage determination sub-engine that is configured to:

identify, based on the running of each of the plurality of test cases on the plurality of software code modules, a respective software code coverage for each at least one software code method included in each of the plurality of software code modules;

a test case/software code coverage mapping sub-engine that is configured to:

map the respective software code coverage for each of the at least one software code method included in each of the plurality of software code modules with the respective test case that was run on that software code module to provide a test case/software code coverage mapping; and

a test suite optimization sub-engine that is configured to:

characterize, as a Set Covered Problem having a Non-deterministic Polynomial-time hardness using the test case/software code coverage mapping, generation of a test suite that includes a subset of the plurality of test cases that were run on the plurality of software code modules and that provides a maximum level of software code coverage of the software code methods included in the plurality of software code modules using a minimum number of the plurality of test cases; and

solve the Set Covered Problem having the Non-deterministic Polynomial-time hardness using a polynomial time Greedy approximate algorithm that is based on the test case/software code coverage mapping in order to generate the test suite that provides the maximum level of software code coverage of the software code methods using the minimum number of the plurality of test cases.

2. The system of claim 1 , wherein the maximum level of software code coverage of the software code methods included in the plurality of software code modules provides for the testing of a maximum percentage of the software code methods included in the plurality of software code modules.

3. The system of claim 1 , wherein software code coverage determination sub-engine is configured to:

inject at least one software code coverage hook element into each of the plurality of software code modules, wherein each of the at least one software code coverage hook element is configured to identify the respective software code coverage for each at least one software code method included in each of the plurality of software code modules.

4. The system of claim 1 , wherein the test case sub-engine is configured to:

run, subsequent to the generation of the test suite, each of the subset of the plurality of test cases included in the test suite on the plurality of software code modules.

5. The system of claim 1 , wherein the generating the test suite that includes the subset of the plurality of test cases includes:

identifying at least two of the plurality of test cases that are associated with software code coverage for a common software code method; and

including only one of the at least two of the plurality of test cases in the subset of the plurality of test cases included in the test suite.

6. The system of claim 1 , wherein the test case sub-engine is configured to:

generate a pass result or a fail result for each of the plurality of software code modules upon which a test case was run, and wherein the software code coverage determination sub-engine is configured to:

identify the respective software code coverage for each of the at least one software code method included in each of the plurality of software code modules associated with a pass result.

7. An Information Handling System (IHS), comprising:

a processing system; and

a memory system that is coupled to the processing system and that includes instructions that, when executed by the processing system, cause the processing system to provide a software code testing engine that is configured to:

run each of a plurality of test cases on a plurality of software code modules;

identify, based on the running of each of the plurality of test cases on the plurality of software code modules, a respective software code coverage for each at least one software code method included in each of the plurality of software code modules;

map the respective software code coverage for each of the at least one software code method included in each of the plurality of software code modules with the respective test case that was run on that software code module to provide a test case/software code coverage mapping; and

characterize, as a Set Covered Problem having a Non-deterministic Polynomial-time hardness using the test case/software code coverage mapping, generation of a test suite that includes a subset of the plurality of test cases that were run on the plurality of software code modules and that provides a maximum level of software code coverage of the software code methods included in the plurality of software code modules using a minimum number of the plurality of test cases; and

solve the Set Covered Problem having the Non-deterministic Polynomial-time hardness using a polynomial time Greedy approximate algorithm that is based on the test case/software code coverage mapping in order to generate the test suite that provides the maximum level of software code coverage of the software code methods using the minimum number of the plurality of test cases.

8. The IHS of claim 7 , wherein the maximum level of software code coverage of the software code methods included in the plurality of software code modules provides for the testing of a maximum percentage of the software code methods included in the plurality of software code modules.

9. The IHS of claim 7 , wherein software code testing engine is configured to:

inject at least one software code coverage hook element into each of the plurality of software code modules, wherein each of the at least one software code coverage hook element is configured to identify the respective software code coverage for each at least one software code method included in each of the plurality of software code modules.

10. The IHS of claim 7 , wherein the software code testing engine is configured to:

run, subsequent to the generation of the test suite, each of the subset of the plurality of test cases included in the test suite on the plurality of software code modules.

11. The IHS of claim 7 , wherein the generating the test suite that includes the subset of the plurality of test cases includes:

identifying at least two of the plurality of test cases that are associated with software code coverage for a common software code method; and

including only one of the at least two of the plurality of test cases in the subset of the plurality of test cases included in the test suite.

12. The IHS of claim 7 , wherein the software code testing engine is configured to:

generate a pass result or a fail result for each of the plurality of software code modules upon which a test case was run; and

identify the respective software code coverage for each of the at least one software code method included in each of the plurality of software code modules associated with a pass result.

13. The IHS of claim 7 , wherein the software code testing engine is configured to:

identifying, via a network, the plurality of software code modules.

14. A method for testing software code, comprising:

running, by a software code testing system, each of a plurality of test cases on a plurality of software code modules;

identifying, by the software code testing system based on the running of each of the plurality of test cases on the plurality of software code modules, a respective software code coverage for each at least one software code method included in each of the plurality of software code modules;

mapping, by the software code testing system, the respective software code coverage for each of the at least one software code method included in each of the plurality of software code modules with the respective test case that was run on that software code module to provide a test case/software code coverage mapping; and

characterizing, by the software code testing system as a Set Covered Problem having a Non-deterministic Polynomial-time hardness using the test case/software code coverage mapping, generation of a test suite that includes a subset of the plurality of test cases that were run on the plurality of software code modules and that provides a maximum level of software code coverage of the software code methods included in the plurality of software code modules using a minimum number of the plurality of test cases; and

solving, by the software code testing system, the Set Covered Problem having the Non-deterministic Polynomial-time hardness using a polynomial time Greedy approximate algorithm that is based on the test case/software code coverage mapping in order to generate the test suite that provides the maximum level of software code coverage of the software code methods using the minimum number of the plurality of test cases.

15. The method of claim 14 , wherein the maximum level of software code coverage of the software code methods included in the plurality of software code modules provides for the testing of a maximum percentage of the software code methods included in the plurality of software code modules.

16. The method of claim 14 , further comprising:

injecting, by the software code testing system, at least one software code coverage hook element into each of the plurality of software code modules, wherein each of the at least one software code coverage hook element is configured to identify the respective software code coverage for each at least one software code method included in each of the plurality of software code modules.

17. The method of claim 14 , further comprising:

running, by the software code testing system subsequent to the generation of the test suite, each of the subset of the plurality of test cases included in the test suite on the plurality of software code modules.

18. The method of claim 14 , wherein the generating the test suite that includes the subset of the plurality of test cases includes:

identifying at least two of the plurality of test cases that are associated with software code coverage for a common software code method; and

including only one of the at least two of the plurality of test cases in the subset of the plurality of test cases included in the test suite.

19. The method of claim 14 , further comprising:

generating, by the software code testing system, a pass result or a fail result for each of the plurality of software code modules upon which a test case was run; and

identifying, by the software code testing system, the respective software code coverage for each of the at least one software code method included in each of the plurality of software code modules associated with a pass result.

20. The method of claim 14 , further comprising:

identifying, by the software code testing system via a network, the plurality of software code modules.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0106 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060332/0864 →
RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0371 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2021
From: YUAN, FEI; WANG, JIE; LEI, BOWEN; WANG, FEI; LI, QINGLAN
To: DELL PRODUCTS L.P.
Reel/Frame 055271/0061 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053578/0183 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053574/0221 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053573/0535 →
SECURITY AGREEMENT Recorded Aug 18, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053531/0108 →