IP Library Granted Patent US 7,039,902
Granted Patent B2
US 7,039,902 · App. 10/164,820 · Granted May 2, 2006

Mechanism for enabling efficient testing of a set of computer code

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 7,039,902
App. No.
10/164,820
Granted
May 2, 2006
Kind
B2
Abstract

A mechanism is disclosed for enabling efficient testing of a set of computer code. Untested code portions within a body of code are determined, and testing priorities are assigned to untested code portions according to how frequently the untested code portions are likely to be invoked during normal operation. More frequently invoked untested code portions are ranked higher than less frequently invoked untested code portions. The prioritized data may be used by a testing team to determine which additional tests should be created for effective and efficient testing of the body of code.

Claims (42)

1. A method, comprising:

determining which code portions within a body of code have not been tested;

selecting a particular untested code portion; and

assigning a testing priority to said particular untested code portion, wherein said testing priority is usable to determine whether to produce additional test code to test said particular untested code portion, and wherein assigning said testing priority comprises:

determining whether said particular untested code portion is part of a core portion of said body of code that is likely to be invoked by many other code portions;

in response to a determination that said particular untested code portion is part of a core portion of said body of code, assigning said particular untested code portion a higher priority; and

in response to a determination that said particular untested code portion is not part of a core portion of said body of code, assigning said particular untested code portion a lower priority;

wherein determining whether said particular untested code portion is part of a core portion of said body of code comprises:

associating said particular untested code portion with an object class; and

determining whether said object class is a core object class within said body of code.

2. The method of claim 1 , wherein determining which code portions within said body of code have not been tested comprises:

putting said body of code through one or more tests;

deriving one or more sets of test results; and

analyzing said test results to determine which code portions have not been tested.

3. The method of claim 1 , wherein assigning said testing priority further comprises:

associating said particular untested code portion with a method of said object class; and

determining an accessibility parameter for said method.

4. The method of claim 3 , wherein said particular untested code portion is assigned a higher priority if said accessibility parameter indicates that said method is a public method, and assigned a lower priority if said accessibility parameter indicates that said method is a private method.

5. The method of claim 1 , wherein assigning said testing priority to said particular untested code portion further comprises:

determining whether said particular untested code portion represents an entire method of said object class or a block within a method of said object class; and

wherein said particular untested code portion is assigned a higher priority if said particular untested code portion represents an entire method, and assigned a lower priority if said particular untested code portion represents a block within a method.

6. A computer-readable storage medium, comprising:

instructions for causing one or more processors to determine which code portions within a body of code have not been tested;

instructions for causing one or more processors to select a particular untested code portion; and

instructions for causing one or more processors to assign a testing priority to said particular untested code portion, wherein the instructions for causing one or more processors to assign said testing priority comprises:

instructions for causing one or more processors to determine whether said particular untested code portion is part of a core portion of said body of code that is likely to be invoked by many other code portions;

instructions for causing one or more processors to assign, in response to a determination that said particular untested code portion is part of a core portion of said body of code, said particular untested code portion a higher priority; and

instructions for causing one or more processors to assign, in response to a determination that said particular untested code portion is not part of a core portion of said body of code, said particular untested code portion a lower priority;

wherein the instructions for causing one or more processors to determine whether said particular untested code portion is part of a core portion of said body of code comprises:

instructions for causing one or more processors to associate said particular untested code portion with an object class; and

instructions for causing one or more processors to determine whether said object class is a core object class within said body of code.

7. The computer-readable storage medium of claim 6 , wherein the instructions for causing one or more processors to determine which code portions within said body of code have not been tested comprises:

instructions for causing one or more processors to put said body of code through one or more tests;

instructions for causing one or more processors to derive one or more sets of test results; and

instructions for causing one or more processors to analyze said test results to determine which code portions have not been tested.

8. The computer-readable storage medium of claim 6 , wherein the instructions for causing one or more processors to assign said testing priority further comprises:

instructions for causing one or more processors to associate said particular untested code portion with a method of said object class; and

instructions for causing one or more processors to determine an accessibility parameter for said method.

9. The computer-readable storage medium of claim 8 , wherein said particular untested code portion is assigned a higher priority if said accessibility parameter indicates that said method is a public method, and assigned a lower priority if said accessibility parameter indicates that said method is a private method.

10. The computer-readable storage medium of claim 6 , wherein the instructions for causing one or more processors to assign said testing priority to said particular untested code portion further comprises:

instructions for causing one or more processors to determine whether said particular untested code portion represents an entire method of said object class or a block within a method of said object class; and

wherein said particular untested code portion is assigned a higher priority if said particular untested code portion represents an entire method, and assigned a lower priority if said particular untested code portion represents a block within a method.

Assignments (1)
MERGER AND CHANGE OF NAME Recorded Dec 14, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037280/0221 →