IP Library Granted Patent US 8,739,145
Granted Patent B2
US 8,739,145 · App. 12/056,026 · Granted May 27, 2014

Super nested block method to minimize coverage testing overhead

Inventors: Juan Jenny Li (Basking Ridge, NJ); David Mandel Weiss (Long Valley, NJ)
Assignee: Avaya Inc.
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 8,739,145
App. No.
12/056,026
Granted
May 27, 2014
Kind
B2
Abstract

A method for determining the number and location of instrumentation probes to be inserted into a program is disclosed. The method advantageously inserts the minimum number of probes that are required to obtain execution coverage for every node in the program's control-flow graph. In addition, the method requires only one bit to store each probe and does not require the assignment of weights to arcs or nodes of the control-flow graph. In the illustrative embodiment, the nodes of a control-flow graph are partitioned into non-empty sets, where each non-empty set corresponds to a super nested block of the program.

Claims (44)

1. A method comprising:

while a control-flow graph for a program is generated via a processor:

determining a subset of nodes of the control-flow graph by solving a minimum-cut maximum-flow problem;

partitioning the control-flow graph into subgraphs that correspond to child nodes of the subset of nodes; and

determining a respective partition of each of the subgraphs;

partitioning the program into a plurality of blocks of code based on the respective partition, wherein:

(1) for any two consecutive lines of code within any block belonging to the plurality of blocks, when a first line of the two consecutive lines executes at a first time, the second line of the two consecutive lines executes at a second time later than the first time; and

(2) the any block is not a basic block and

inserting, via the processor, a probe into each of the plurality of blocks of code.

2. The method of claim 1 , wherein inserting the probe is performed while the control-flow graph is generated.

3. The method of claim 1 , wherein determining the respective partition is performed recursively.

4. The method of claim 1 , wherein the control-flow graph is unweighted.

5. The method of claim 1 , further comprising:

while the control-flow graph is generated, marking a node of the control-flow graph with a first type of mark and another node of the control-flow graph with a second type of mark, wherein inserting the probe is based on one of the first type of mark and the second type of mark.

6. A system comprising:

a processor; and

a computer-readable storage memory device storing instructions which, when executed by the processor, cause the processor to perform operations comprising:

while a control-flow graph for a program is generated:

determining a subset of nodes of the control-flow graph by solving a minimum-cut maximum-flow problem;

partitioning the control-flow graph into subgraphs that correspond to child nodes of the subset of nodes; and

determining a respective partition of each of the subgraphs;

partitioning the program into a plurality of blocks of code based on the respective partition, wherein:

(1) for any two consecutive lines of code within any block belonging to the plurality of blocks, when a first line of the two consecutive lines executes at a first time, the second line of the two consecutive lines executes at a second time later than the first time; and

(2) the any block is not a basic block; and

inserting a probe into each of the plurality of blocks of code.

7. The system of claim 6 , wherein inserting the probe is performed while the control-flow graph is generated.

8. The system of claim 6 , wherein determining the respective partition is performed recursively.

9. The system of claim 6 , wherein the control-flow graph is unweighted.

10. The system of claim 6 , wherein the computer-readable storage memory device stores additional instructions which, when executed by the processor, cause the processor to perform the operations further comprising:

while the control-flow graph is generated, marking a node of the control-flow graph with a first type of mark and another node of the control-flow graph with a second type of mark, wherein inserting the probe is based on one of the first type of mark and the second type of mark.

11. A computer-readable storage memory device storing instructions which, when executed by a processor, cause the processor to perform operations comprising:

while a control-flow graph for a program is generated:

determining a subset of nodes of the control-flow graph by solving a minimum-cut maximum-flow problem;

partitioning the control-flow graph into subgraphs that correspond to child nodes of the subset of nodes; and

determining a respective partition of each of the subgraphs;

partitioning the program into a plurality of blocks of code based on the respective partition, wherein:

(1) for any two consecutive lines of code within any block belonging to the plurality of blocks, when a first line of the two consecutive lines executes at a first time, the second line of the two consecutive lines executes at a second time later than the first time; and

(2) the any block is not a basic block; and

inserting a probe into each of the plurality of blocks of code.

12. The computer-readable storage memory device of claim 11 , wherein inserting the probe is performed while the control-flow graph is generated.

13. The computer-readable storage memory device of claim 11 , wherein determining the respective partition is performed recursively.

14. The computer-readable storage memory device of claim 11 , wherein the control-flow graph is unweighted.

15. The computer-readable storage memory device of claim 11 , storing additional instructions which, when executed by the processor, cause the processor to perform the operations further comprising:

while the control-flow graph is generated, marking a node of the control-flow graph with a first type of mark and another node of the control-flow graph with a second type of mark, wherein inserting the probe is based on one of the first type of mark and the second type of mark.

Assignments (21)
(SECURITY INTEREST) GRANTOR'S NAME CHANGE Recorded Sep 21, 2023
From: AVAYA INC.
To: AVAYA LLC
Reel/Frame 065019/0231 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 53955/0436) Recorded May 18, 2023
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063705/0023 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 61087/0386) Recorded May 18, 2023
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063690/0359 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 045034/0001) Recorded May 18, 2023
From: GOLDMAN SACHS BANK USA., AS COLLATERAL AGENT
To: AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; ZANG, INC. (FORMER NAME OF AVAYA CLOUD INC.); HYPERQUALITY, INC.; HYPERQUALITY II, LLC; CAAS TECHNOLOGIES, LLC; AVAYA MANAGEMENT L.P.
Reel/Frame 063779/0622 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded May 4, 2023
From: AVAYA INC.; AVAYA MANAGEMENT L.P.; INTELLISIST, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 063542/0662 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded May 3, 2023
From: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; KNOAHSOFT INC.
To: WILMINGTON SAVINGS FUND SOCIETY, FSB [COLLATERAL AGENT]
Reel/Frame 063742/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS AT REEL 45124/FRAME 0026 Recorded Apr 26, 2023
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: AVAYA HOLDINGS CORP.; AVAYA INC.; AVAYA MANAGEMENT L.P.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063457/0001 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Aug 5, 2022
From: AVAYA INC.; INTELLISIST, INC.; AVAYA MANAGEMENT L.P.; AVAYA CABINET SOLUTIONS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 061087/0386 →
SECURITY INTEREST Recorded Sep 25, 2020
From: AVAYA INC.; AVAYA MANAGEMENT L.P.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 053955/0436 →
SECURITY INTEREST Recorded Jan 23, 2018
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; ZANG, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 045124/0026 →
SECURITY INTEREST Recorded Jan 10, 2018
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; ZANG, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 045034/0001 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 030083/0639 Recorded Dec 15, 2017
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVAYA INC.
Reel/Frame 045012/0666 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 025863/0535 Recorded Dec 15, 2017
From: THE BANK OF NEW YORK MELLON TRUST, NA
To: AVAYA INC.
Reel/Frame 044892/0001 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 041576/0001 Recorded Dec 15, 2017
From: CITIBANK, N.A.
To: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS INC.; OCTEL COMMUNICATIONS LLC (FORMERLY KNOWN AS OCTEL COMMUNICATIONS CORPORATION); VPNET TECHNOLOGIES, INC.
Reel/Frame 044893/0531 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 029608/0256 Recorded Dec 15, 2017
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVAYA INC.
Reel/Frame 044891/0801 →
SECURITY INTEREST Recorded Jan 27, 2017
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS INC.; OCTEL COMMUNICATIONS CORPORATION; VPNET TECHNOLOGIES, INC.
To: CITIBANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 041576/0001 →
SECURITY AGREEMENT Recorded Mar 13, 2013
From: AVAYA, INC.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., THE
Reel/Frame 030083/0639 →
SECURITY AGREEMENT Recorded Jan 10, 2013
From: AVAYA, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 029608/0256 →
SECURITY AGREEMENT Recorded Feb 22, 2011
From: AVAYA INC., A DELAWARE CORPORATION
To: BANK OF NEW YORK MELLON TRUST, NA, AS NOTES COLLATERAL AGENT, THE
Reel/Frame 025863/0535 →
REASSIGNMENT Recorded Jun 26, 2008
From: AVAYA TECHNOLOGY LLC
To: AVAYA INC
Reel/Frame 021156/0734 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 8, 2008
From: LI, JUAN JENNY; WEISS, DAVID MANDEL
To: AVAYA TECHNOLOGY LLC
Reel/Frame 020770/0924 →
Continuity (1)
Related Publication 20090249305A1 · Oct 1, 2009