Cause-effect graphing is a process of selecting highly efficient test cases in a systematic way. These represent combinations of condition outcomes. It has positive side effect aiding to point out the incompleteness and ambiguity in the original specifications. Ad hoc selection of combinations is the alternative way but doing like this you may overlook many worthy test cases that were identified by cause-effect graphing.
Cause-effect graphing is defined as a formal language into which the translation of a natural language specification is made. A cause-effect graph can be associated with a digital logic circuit (i.e. combinatorial logical network), but instead of using a common electronic notation (form-record), partly a simpler notation is used. There is no necessity of knowing electronics so that to have clue about cause-effect graphing technique, but understating of Boolean logic is required (i.e. understanding of logical operators and, or, and also not). This technique derives test cases in several stages.
- The specification is divided in “working” areas. You need to do this because the cause effect graph becomes too cumbersome when used on big specifications. E.g., when a time-sharing system is being tested, the working area may be a specification for a separate command. When testing the compiler as a working area, one might consider each programming language operator in an individual way.
- The specification defines the causes and effects. A cause is an individual input condition or class of input conditions (equivalence class). An effect, in turn, is the output condition or the modification of the system (the residual effect that the input condition produces on the state of the system or program). For example, if a message to the program causes the main file to be updated, then the change to the main file is the transformation of a system; and then an output condition would be nothing but a confirmation message. Causes and effects are determined by successive (word by word) reading the specification and emphasizing words or phrases which describe cause and effects. A separate number is given to each cause and effect.
- The semantics of the specification is evaluated and then transformed in a Boolean graph that associates causes and effects. So, this is the cause-effect graphing.
- The graph is supplemented with notes specifying constraints and combinations of causes and (or) consequences that are not possible due to syntactic or external constraints.
Our company specializes in providing advanced year-round quality testing services to organizations of all sizes to allow them to appreciate and weigh all risks of the software design & implementation.