Patent US5297150A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5297150A Expired / Lapsed US ⏱️ 0.0 years remaining

Rule-based method for testing of programming segments

Assignee: International Business Machines Corp
•
Filing: 1992-06-17
•
Granted: 1994-03-22
•
Expires: 2012-06-17
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method for determining a set of f low paths in a code listing that are most likely to fail comprises the steps of: converting the code listing to a directed acyclic graph representation, the representation including nodes and directed edges, each node representing a basic block of unconditional code statements. The method loads, as facts into a knowledge base, representations of the nodes and edges, and unconditional statements from the basic blocks. The method also loads, as rules into the knowledge base, conditional statements and complexity indicator values for conditional and unconditional statements. Weights are assigned to each node based upon complexity indicator values for statements associated with the node. A determination is then made of a set of flow paths through the code listing, each path ranked in order of assigned weights, those flow paths with larger assigned weights being assumed as those paths most likely to fail.

Inventors

  • 👤 Andrew L. Clark

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-27 19:21
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/3604; G06F11/3608; G06F11/3698; Y; Y10; Y10S; Y10S706/00; Y10S706/902; Y10S706/919; Y10S706/922

Claims Analysis

Total Claims: 21
Claim 1
Independent Claim 232 words
A method for determining a set of flow paths in a code listing as being the most likely ones to fail, the method comprising the steps of: (a) converting said code listing to a directed acyclic graph (DAG) representation, said DAG including nodes and directed edges, each node representing a basic block of unconditional code statements, a basic block being a code listing that terminates at an exit point once commencing at a starting point, a said exit point being an exit code statement or a conditional code statement, each edge representing an action taken upon the occurrence of a condition in a said conditional code statement; (b) loading as facts into a knowledge base, said nodes and directed edges from said DAG and unconditional code statements from each said basic block's code listing; (c) loading as rules into said knowledge base, conditional statements from said code listing and determined complexity indicator values for conditional and unconditional code statements; (d) assigning a weight in each node based upon a combination of complexity indicator values for conditional and unconditional code statements associated with a said node; and (e) determining a set of ranked flow paths through said code listing by employing said facts and rules, said flow paths ranked in order by analysis of each flow path's nodal weights, those flow paths with weights indicating greater complexity being those most likely to fail.
Claim 2
Independent Claim 232 words
A method for determining a set of flow paths in a code listing as being the most likely ones to fail, the method comprising the steps of: (a) converting said code listing to a directed acyclic graph (DAG) representation, said DAG including nodes and directed edges, each node representing a basic block of unconditional code statements, a basic block being a code listing that terminates at an exit point once commencing at a starting point, a said exit point being an exit code statement or a conditional code statement, each edge representing an action taken upon the occurrence of a condition in a said conditional code statement; (b) loading as facts into a knowledge base, said nodes and directed edges from said DAG and unconditional code statements from each said basic block's code listing; (c) loading as rules into said knowledge base, conditional statements from said code listing and determined complexity indicator values for conditional and unconditional code statements; (d) assigning a weight in each node based upon a combination of complexity indicator values for conditional and unconditional code statements associated with a said node; and (e) determining a set of ranked flow paths through said code listing by employing said facts and rules, said flow paths ranked in order by analysis of each flow path's nodal weights, those flow paths with weights indicating greater complexity being those most likely to fail.
Claim 3
Dependent Claim 24 words
The method as recited in claim 1 wherein said determining step (e) is based upon an accumulation of nodal weights in each flow path.
Claim 4
Dependent Claim 33 words
The method as recited in claim 1 wherein said complexity indicator values recited in step (c) for each statement comprise indications of the kind and number of logical operators in each said statement.
Claim 5
Dependent Claim 34 words
The method as recited in claim 1 wherein said complexity indicator values for conditional statements, are recited in step (c), comprises the number of conditions required to lead to a branch action or actions.
Claim 6
Dependent Claim 32 words
The method as recited in claim 1 wherein said complexity indicator values for conditional statements recited in step (c) comprise the number of branches that are indicated by each said conditional statement.
Claim 7
Dependent Claim 34 words
The method as recited in claim 1 wherein said assigned weight to a said node is based upon a sum of complexity indicator values of conditional and unconditional statements associated with a said node.
Claim 8
Dependent Claim 37 words
The method as recited in claim 1 wherein step (c) further comprises loading as rules, heuristics that determine complexity indicator values based upon a plurality of determined statement characteristics, said characteristics giving rise to complexity of function.
Claim 9
Dependent Claim 42 words
The method as recited in claim 7 wherein step (e) further comprises: searching flow paths in said code listing and summing nodal weights for each found flow path to arrive at a total nodal weight sum for each said found flow path.
Claim 10
Dependent Claim 69 words
The method as recited in claim 8 wherein step (e) further comprises: iterating through a plurality of heuristics in the performance of the search of the flow paths; modifying assigned nodal weights in accordance with findings that result from individual heuristics; and summing said nodal weights in each path for each said heuristic, whereby a set of nodal weight sums for each path are produced for each said heuristic.
Claim 11
Dependent Claim 40 words
The method as recited in claim 1 further comprising the step of: (f) displaying a graphical representation of flow paths in said code listing, and providing an indication in said graphical representation indicating those flow paths most likely to fail.
Claim 12
Dependent Claim 228 words
A data processing system that identifies a set of flow paths in a code listing as being the most likely ones to fail, said system comprising: means for converting said code listing to a directed acyclic graph (DAG) representation, said DAG including nodes and directed edges, each node representing a basic block of unconditional code statements that ends with an exit code statement or a conditional code statement and each edge representing an action taken upon the occurrence of a condition in a conditional statement that terminates a basic block; memory means, coupled to said means for converting, for including a knowledge base having facts and rules, said facts including said nodes and directed edges from said DAG and unconditional statements from each said basic block's code listing, said rules including conditional statements from said code listing and determined complexity indicator values for said conditional and unconditional statements; and means coupled to said memory means for assigning a weight to each node based upon a combination of complexity indicator values for conditional and unconditional statements associated with said node, said data processing system determining a set of ranked flow paths through said code listing by employing said facts and rules, said flow paths ranked in order by analysis of each flow path's nodal weights, those flow paths with weights indicating greater complexity being those most likely to fail.
Claim 13
Dependent Claim 228 words
A data processing system that identifies a set of flow paths in a code listing as being the most likely ones to fail, said system comprising: means for converting said code listing to a directed acyclic graph (DAG) representation, said DAG including nodes and directed edges, each node representing a basic block of unconditional code statements that ends with an exit code statement or a conditional code statement and each edge representing an action taken upon the occurrence of a condition in a conditional statement that terminates a basic block; memory means, coupled to said means for converting, for including a knowledge base having facts and rules, said facts including said nodes and directed edges from said DAG and unconditional statements from each said basic block's code listing, said rules including conditional statements from said code listing and determined complexity indicator values for said conditional and unconditional statements; and means coupled to said memory means for assigning a weight to each node based upon a combination of complexity indicator values for conditional and unconditional statements associated with said node, said data processing system determining a set of ranked flow paths through said code listing by employing said facts and rules, said flow paths ranked in order by analysis of each flow path's nodal weights, those flow paths with weights indicating greater complexity being those most likely to fail.
Claim 14
Dependent Claim 30 words
The system as recited in claim 11 wherein said data processing system determines said set of ranked flow paths based upon an accumulation of nodal weights in each flow path.
Claim 15
Dependent Claim 30 words
The system as recited in claim 11 wherein said complexity indicator value for each statement comprises an indication of the kind and number of logical operators in each said statement.
Claim 16
Dependent Claim 29 words
The system as recited in claim 11 wherein said complexity indicator values for conditional statements comprises the number of conditions required to lead to a branch action or actions.
Claim 17
Dependent Claim 28 words
The system as recited in claim 11 wherein said complexity indicator values for conditional statements comprise the number of branches that are indicated by each said conditional statement.
Claim 18
Dependent Claim 32 words
The system as recited in claim 11 wherein said assigned weight to a node is based upon a sum of complexity indicator values of conditional and unconditional statements associated with said node.
Claim 19
Dependent Claim 42 words
The system as recited in claim 11 wherein said data processing system searches flow paths in said code listing and sums nodal weights for each found flow path to arrive at a total nodal weight sum for each said found flow path.
Claim 20
Dependent Claim 67 words
The system as recited in claim 17 wherein said processor means iterates through a plurality of heuristics in the performance of the search of flow paths, modifies assigned nodal weights in accordance with findings that result from individual heuristics, and sums said nodal weights in each path for each said heuristic, whereby a set of nodal weight sums for each path are produced for each said heuristic.
Claim 21
Dependent Claim 38 words
The system as recited in claim 11 further comprising means for displaying a graphical representation of flow paths in said code listing, and providing an indication in said graphical representation indicating those flow paths most likely to fail.

References Cited (Backward Citations)

US4694420A Cited
US4730315A Cited
US4885717A Cited
US4833641A Cited
US4964125A Cited
US5168563A Cited
US5058033A Cited
US5020011A Cited
US5107499A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1997-03-21 1997-09-20 1998-03-22 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2001-03-21 2001-09-20 2002-03-22 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2005-03-21 2005-09-20 2006-03-22 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag