What is condition coverage testing?
Condition coverage testing is a type of white-box testing that tests all the conditional expressions in a program for all possible outcomes of the conditions. It is also called predicate coverage.
Note: Condition coverage testing tests the conditions independently of each other.
Condition coverage vs. branch coverage
In branch coverage, all conditions must be executed at least once. On the other hand, in condition coverage, all possible outcomes of all conditions must be tested at least once.
For example, consider the code snippet below:
int a = 10;if (a > 0){cout<<"a is positive";}
- Branch coverage requires that the condition
a > 0is executed at least once. - Condition coverage requires that both the outcomes
a > 0 = Trueanda > 0 = Falseof the conditiona > 0are executed at least once.
Examples
Example 1
Consider the code snippet below, which will be used to conduct condition coverage testing:
int num1 = 0;if(num1>0){cout<<"valid input";}else{cout<<"invalid input";}
Condition coverage testing
The condition coverage testing of the code above will be as follows:
Test case number | num1>0 | Final output |
1 | True | True |
2 | False | False |
Example 2
Consider the code snippet below, which will be used to conduct condition coverage testing:
int num1 = 0;int num2 = 0;if((num1>0 || num2<10)){cout<<"valid input";}else{cout<<"invalid input";}
Condition coverage testing
The condition coverage testing of the code above will be as follows:
Test case number | num1>0 | num2<10 | Final output |
1 | True | Not required | True |
2 | False | True | True |
3 | False | False | False |
Example 3
Consider the code snippet below, which will be used to conduct condition coverage testing:
int num1 = 0;int num2 = 0;if((num1>0) && (num1+num2<15)){cout<<"valid input";}else{cout<<"invalid input";}
Condition coverage testing
The condition coverage testing of the code above will be as follows:
Test case number | num1>0 | num1+num2<15 | Final output |
1 | True | True | True |
2 | True | False | False |
3 | False | Not required | False |
Example 4
Consider the code snippet below, which will be used to conduct condition coverage testing:
int num1 = 0;int num2 = 0;if((num1>0 || num2<10) && (num1+num2<15)){cout<<"valid input";}else{cout<<"invalid input";}
Condition coverage testing
The condition coverage testing of the code above will be as follows:
Test case number | num1>0 | num2<10 | num1+num2<15 | Final output |
1 | True | don't care | True | True |
2 | True | don't care | False | False |
3 | False | True | True | True |
4 | False | True | False | False |
5 | False | False | Not required | False |
Free Resources