Cause-effect graph
From Wikipedia, the free encyclopedia
In software testing, a cause-effect graph is a directed graph that maps a set of causes to a set of effects. The causes may be thought of as the input to the program, and the effects may be thought of as the output. Usually the graph shows the nodes representing the causes on the left side and the nodes representing the effects on the right side. There may be intermediate nodes inbetween that combine inputs using logical operators such as AND and OR.
Constraints may be added to the causes and effects. These are represented as edges labelled with the constraint symbol using a dashed line. For causes, valid constraint symbols are E (exclusive?), O (one and only one?), and I (at least one?). For effects, valid constraint symbols are R (Require?) and M (Mask?). (This information needs to be verified.)
The graph's direction is as follows: (XXX: a figure would represent this better)
Causes --> intermediate nodes --> Effects
The graph can always be rearranged so there is only one node between any input and any output. See conjunctive normal form and disjunctive normal form.
A cause-effect graph is useful for generating a reduced decision table.