# Multiple Condition coverage

All the possible combinations of outcomes of conditions in a decision (therefore the complete decision table) are tested at least once. Since there are only two possible outcomes of a condition (TRUE or FALSE), 2 is the basis for the number of test situations that can be created. The maximum number of test situations (the complete decision table) depends on the amount of conditions: **2n** , where **N** is the amount conditions.

Filling in a table with ones and zeros can be done in many ways. Let's take an easy example with three conditions. This would lead to 23=8 test situations.

We could start by filling the last column with a sequence of 0 1.

For the second column we double the 0's and 1's.

For the first column we again double the 0's and 1's.

A | B | C |

0 | 0 | 0 |

0 | 0 | 1 |

0 | 1 | 0 |

0 | 1 | 1 |

1 | 0 | 0 |

1 | 0 | 1 |

1 | 1 | 0 |

1 | 1 | 1 |

Another handy way of filling in the decision table is with the use of the so called “Gray-code”. This causes only one condition to change in value per column.

We now start with the first column. Knowing that we will get 8 test situations. We devide the first column into four 0's and four 1's.

For the second column we spilt the amount of 0's and 1's. But there where it is possible to "miror" the sequence, we will do so. So in this case after 0011 we will continue with 1100.

For the last column we again split the 0's and 1's. And also here we will mirror the sequence where possible. So after 01 we will continue with 10, and after that we will mirror again an cntinue with 01 etc.

A |
B |
C |

0 | 0 | 0 |

0 | 0 | 1 |

0 | 1 | 1 |

0 | 1 | 0 |

1 | 1 | 0 |

1 | 1 | 1 |

1 | 0 | 1 |

1 | 0 | 0 |

You can see now that in the second row only value C has changed in comparision with the first row. In the third row only value B has changed in comparision with the second row. Etc. This is helpful for the creation of the physical test cases: copy and paste and change one value.

The Multiple Condition Coverage (MCC) can be applied in two ways:

- All combinations of 0's and 1's of conditions per decision point.
- All combinations of 0's and 1's of all conditions from all decision points.

1. Per decision point.

Select all conditions form a decision point and apply MCC.

>

2. Over all decision points (This used to be called the Decision Table Test in TMap NEXT).

The test basis consists of decision tables, pseudo-code, a process description or other (functional) descriptions, in which conditions occur. The conditions and the results are put into a decision table.

- Find conditions in the test basis
- Create a conditions list
- Find results in the test basis and add these to the conditions list
- Fill in the decision table.