IP Library Granted Patent US 9,311,217
Granted Patent B2
US 9,311,217 · App. 14/754,013 · Granted Apr 12, 2016

Analyzing computer programs to identify errors

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 9,311,217
App. No.
14/754,013
Granted
Apr 12, 2016
Kind
B2
Abstract

A method of analyzing a computer program under test (CPUT) using a system comprising a processor and a memory can include performing, by the processor, static analysis upon the CPUT and runtime analysis upon at least a portion of the CPUT. A static analysis result and a runtime analysis result can be stored within the memory. Portions of the CPUT analyzed by static analysis and not by runtime analysis can be determined as candidate portions of the CPUT. The candidate portions of the CPUT can be output.

Claims (63)

1. A method of analyzing a computer program under test (CPUT) using a system including a processor and a memory, the method comprising:

performing, by the processor, static analysis upon the CPUT and runtime analysis upon at least a portion of the CPUT;

storing a static analysis result and a runtime analysis result in the memory;

determining portions of the CPUT analyzed by static analysis and not by runtime analysis as candidate portions of the CPUT,

wherein the determining includes limiting the candidate portions to only portions of the CPUT that include at least one error condition as determined by static analysis; and

outputting the candidate portions of the CPUT.

2. The method of claim 1 , further comprising:

selecting the at least one error condition to be including a minimum number of errors.

3. The method of claim 1 , further comprising:

selecting the at least one error condition to be including at least one error of a selected type.

4. The method of claim 1 , further comprising:

adding at least one section to a module of the CPUT; and

storing the static analysis result within the added section.

5. The method of claim 1 , further comprising:

adding at least one section to a module of the CPUT; and

storing the dynamic analysis result within the added section of the CPUT.

6. The method of claim 1 , further comprising:

performing runtime analysis upon at least one of portion of the CPUT identified as a candidate portion.

7. The method of claim 1 , further comprising:

determining that an error detected within a portion of the CPUT by static analysis that is not detected within the same portion of the CPUT during runtime analysis is a false positive.

8. A system comprising:

a memory storing program code;

a processor coupled to the memory and executing the program code, wherein the processor, by executing the program code, is configured to perform a method of analyzing a computer program under test (CPUT) including:

performing static analysis upon the CPUT and runtime analysis upon at least a portion of the CPUT;

storing a static analysis result and a runtime analysis result in the memory;

determining portions of the CPUT analyzed by static analysis and not by runtime analysis as candidate portions of the CPUT,

wherein the determining includes limiting the candidate portions to only portions of the CPUT that comprise at least one error condition as determined by static analysis; and

outputting the candidate portions of the CPUT.

9. The system of claim 8 , wherein the processor further is configured to perform a step comprising:

selecting the at least one error condition to be including a minimum number of errors.

10. The system of claim 8 , wherein the processor further is configured to perform a step comprising:

selecting the at least one error condition to be including at least one error of a selected type.

11. The system of claim 8 , wherein the processor further is configured to perform steps comprising:

adding at least one section to a module of the CPUT; and

storing the static analysis result within the added section of the CPUT.

12. The system of claim 8 , wherein the processor is further is configured to perform steps comprising:

adding at least one section to a module of the CPUT; and

storing the dynamic analysis result within the added section of the CPUT.

13. The system of claim 8 , wherein the processor is further configured to perform a step comprising:

determining that an error detected within a portion of the CPUT by static analysis that is not detected within the same portion of the CPUT during runtime analysis is a false positive.

14. A computer program product for testing a computer program under test (CPUT) comprising:

computer readable storage medium having computer readable program code stored thereon that, when executed by a system including a processor and a memory, causes the system to perform executable operations, the computer readable storage medium including:

computer readable program code configured to perform static analysis upon the CPUT and runtime analysis upon at least a portion of the CPUT;

computer readable program code configured to store a static analysis result and a runtime analysis result in the memory;

computer readable program code configured to determine portions of the CPUT analyzed by static analysis and not by runtime analysis as candidate portions of the CPUT,

wherein the computer readable program code configured to determine portions of the CPUT analyzed by static analysis and not by runtime analysis as candidate portions of the CPUT includes computer readable program code configured to limit the candidate portions to only portions of the CPUT that include at least one error condition as determined by the static analysis; and

computer readable program code configured to output the candidate portions of the CPUT.

15. The computer program product of claim 14 , wherein the computer readable storage medium further comprises:

computer readable program code configured to add at least one section to a module of the CPUT; and

computer readable program code configured to store the static analysis result within the added section of the CPUT.

16. The computer program product of claim 14 , wherein the computer readable storage medium further comprises:

computer readable program code configured to add at least one section to a module of the CPUT; and

computer readable program code configured to store the dynamic analysis result within the added section of the CPUT.

17. The computer program product of claim 14 , wherein the computer readable storage medium further comprises:

computer readable program code configured to determine that an error detected within a portion of the CPUT by static analysis that is not detected within the same portion of the CPUT during runtime analysis is a false positive.

18. A method of analyzing a computer program under test (CPUT) using a system including a processor and a memory, the method comprising:

performing, by the processor, instrumentation of the CPUT and concurrently performing static analysis upon the CPUT generating an instrumented CPUT;

adding at least one data section to a module of the instrumented CPUT;

storing a static analysis result within the added section of the instrumented CPUT within the memory;

executing the instrumented CPUT performing runtime analysis upon at least a portion of the instrumented CPUT;

determining portions of the CPUT analyzed by static analysis and not by runtime analysis as candidate portions of the CPUT,

wherein the determining includes limiting the candidate portions to only portions of the CPUT that include at least one error condition as determined by static analysis; and

outputting the candidate portions of the CPUT.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded May 12, 2021
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES U.S. INC.
Reel/Frame 056987/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 20, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES INC.
Reel/Frame 054636/0001 →
SECURITY AGREEMENT Recorded Nov 29, 2018
From: GLOBALFOUNDRIES INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 049490/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2016
From: GLOBALFOUNDRIES U.S. 2 LLC; GLOBALFOUNDRIES U.S. INC.
To: GLOBALFOUNDRIES INC.
Reel/Frame 037542/0087 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2016
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: GLOBALFOUNDRIES U.S. 2 LLC
Reel/Frame 037409/0869 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 29, 2015
From: KRAUSS, KIRK J.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 035929/0262 →