# Test Technique – Cause Effect Graph

Introduction:

There are many test techniques, but few insure that the test cases will provide 100% functional coverage. The cause effect graph test technique begins with the set of requirements and determines the minimum number of test cases to completely cover the requirements.

Problem Statement:

It is always difficult to perform the tests for a new functionality covering all the possible variations and boundaries. The selection of values for various inputs plays a major role in performing the tests and achieving the best quality and coverage.

Proposed Solution:

The Cause-Effect graph maps a set of causes to a set of effects, while the causes are the inputs to the program and the effects are the output. On the graph, the nodes on the left represent the cause and the ones on the right represent the effect. You can find  some intermediate nodes as well, that combines the inputs using logical operators such as AND and OR.

The Cause-Effect graph relies mostly on the requirements document that describes the expectation from the system. The requirements describe the real time systems, events, data driven systems, state transition diagrams, object-oriented systems, a graphical user interface standards and so on. Any type of logic can be modeled using a Cause-Effect diagram. Each cause and effect in the requirements is expressed in the cause-effect graph as a condition, which is either true or false. The graph can always be rearranged so there is only one node between any input and output. A Cause-Effect graph is useful for generating a reduced decision table.

The Cause-Effect graph is converted into a decision table or truth table representing the logical relationships between the causes and effects. Each column of the decision table is a test case. Each test case corresponds to a unique possible combination of inputs that are either in a true state, a false state or a masked state.

 Test Case# 1 Test Case# 2 Test Case# 3 Causes: A T F F B F T F Effects: C T T F

In the above example, there are 2 inputs which results in 2*2 = 4 maximum combinations of inputs from which test cases can be selected. There are three test cases derived from the decision table. These 3 test cases covers 100% of the functionality. The fourth combination of inputs (both A= T and B=T) does not add any additional functional coverage and is a redundant test case. Each relation is tested with the right combinations of causes so that all the defects are covered for that relation, resulting in 100% coverage.

Sample Scenarios:

1. Loans – Payment Plan Change

The payment plan change is an order for simple adjustments to the payment agreement. This can be achieved by adjusting one of the following attributes :

• End of term
• Final Payment
• Installment amount

 Inputs/Causes TC1 TC2 TC3 TC4 TC5 TC6 TC7 TC8 TC9 TC10 TC11 TC12 Create Account 1 1 1 1 1 1 1 1 1 1 1 1 Disburse loan 1 1 1 1 1 1 1 0 0 0 0 0 Create PPC order (end of term) 1 0 0 1 1 1 0 1 0 1 1 0 Create PPC order (installment) 0 1 0 1 1 0 1 1 1 0 1 0 Create PPC order (Final Payment) 0 0 1 1 0 1 1 1 1 1 0 1 Order creation 1 1 1 0 0 0 0 0 0 0 0 0

Conclusion:

The Cause-Effect graph is a test technique that is performed once the requirements are reviewed for ambiguity. It derives the maximum number of test cases to cover the 100% of the functional requirements to improve the quality of the test coverage.The cause effect graph is one of the best test techniques that can be used to perform the tests covering maximum variations and boundaries.