Prerequisite – Black Box Testing
Cause Effect Graphing based technique is a technique in which a graph is used to represent the situations of combinations of input conditions. The graph is then converted to a decision table to obtain the test cases. Cause-effect graphing technique is used because boundary value analysis and equivalence class partitioning methods do not consider the combinations of input conditions. But since there may be some critical behaviour to be tested when some combinations of input conditions are considered, that is why cause-effect graphing technique is used.
Steps used in deriving test cases using this technique are:
- Division of specification:
Since it is difficult to work with cause-effect graphs of large specifications as they are complex, the specifications are divided into small workable pieces and then converted into cause-effect graphs separately.
- Identification of cause and effects:
This involves identifying the causes(distinct input conditions) and effects(output conditions) in the specification.
- Transforming the specifications into a cause-effect graph:
The causes and effects are linked together using Boolean expressions to obtain a cause-effect graph. Constraints are also added between causes and effects if possible.
- Conversion into decision table:
The cause-effect graph is then converted into a limited entry decision table. If you’re not aware of the concept of decision tables, check out this link.
- Deriving test cases:
Each column of the decision-table is converted into a test case.
Basic Notations used in Cause-effect graph:
Here c represents cause and e represents effect.
The following notations are always used between a cause and an effect:
- Identity Function: if c is 1, then e is 1. Else e is 0.
- NOT Function: if c is 1, then e is 0. Else e is 1.
- OR Function: if c1 or c2 or c3 is 1, then e is 1. Else e is 0.
- AND Function: if both c1 and c2 and c3 is 1, then e is 1. Else e is 0.
To represent some impossible combinations of causes or impossible combinations of effects, constraints are used. The following constraints are used in cause-effect graphs:
- Exclusive constraint or E-constraint: This constraint exists between causes. It states that either c1 or c2 can be 1, i.e., c1 and c2 cannot be 1 simultaneously.
- Inclusive constraint or I-constraint: This constraint exists between causes. It states that atleast one of c1, c2 and c3 must always be 1, i.e., c1, c2 and c3 cannot be 0 simultaneously.
- One and Only One constraint or O-constraint: This constraint exists between causes. It states that one and only one of c1 and c2 must be 1.
- Requires constraint or R-constraint: This constraint exists between causes. It states that for c1 to be 1, c2 must be 1. It is impossible for c1 to be 1 and c2 to be 0.
- Mask constraint or M-constraint: This constraint exists between effects. It states that if effect e1 is 1, the effect e2 is forced to be 0.
Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.
- Cause Effect Graphing Example in Software Engineering
- Difference between Software Engineering process and Conventional Engineering Processs
- Software Engineering | Requirements Engineering Process
- Software Engineering | Reverse Engineering
- Software Engineering | Introduction to Software Engineering
- Software Engineering | Re-engineering
- Software Engineering | Software Project Management Plan (SPMP)
- Software Engineering | Jelinski Moranda software reliability model
- Software Engineering | Role and Responsibilities of a software Project Manager
- Software Engineering | Schick-Wolverton software reliability model
- Software Engineering | Software Project Management Complexities
- Software Engineering | Identifying Software Development Metrics
- Software Engineering | Responsibilities of Software Project Manager
- Software Engineering | Classification of Software Requirements
- Software Engineering | Software Quality Assurance
- Software Engineering | Software Project Management (SPM)
- Software Engineering | Software Quality Framework
- Software Engineering | Software Process Framework
- Software Engineering | Software Design Process
- Software Engineering | Agile Software Development
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.