请给我一段样例程序,并分别用不同的覆盖测试指标给出测试用例
时间: 2023-12-10 17:41:09 浏览: 71
以下是一个简单的计算器程序,可以进行加、减、乘、除四种运算:
```python
def calculator(num1, num2, operator):
if operator == '+':
return num1 + num2
elif operator == '-':
return num1 - num2
elif operator == '*':
return num1 * num2
elif operator == '/':
if num2 == 0:
return None
else:
return num1 / num2
else:
return None
```
以下是三种不同的覆盖测试指标及对应的测试用例:
1. 语句覆盖(Statement coverage)
测试用例1:calculator(2, 3, '+')
测试用例2:calculator(5, 2, '-')
测试用例3:calculator(4, 6, '*')
测试用例4:calculator(8, 4, '/')
测试用例5:calculator(3, 4, '%')
该指标要求每个语句都至少执行一次,因此需要覆盖每个分支语句和默认语句。测试用例5为了覆盖默认语句而设置,因为没有其他操作符会执行该语句。
2. 判定覆盖(Decision coverage)
测试用例1:calculator(2, 3, '+')
测试用例2:calculator(5, 2, '-')
测试用例3:calculator(4, 6, '*')
测试用例4:calculator(8, 0, '/')
测试用例5:calculator(3, 4, '%')
该指标要求每个分支或循环结构中的所有判定条件都至少执行一次,因此需要覆盖每个操作符的判定条件。测试用例4为了覆盖除零的判定条件而设置,因为其他测试用例中没有除数为零的情况。
3. 条件覆盖(Condition coverage)
测试用例1:calculator(2, 3, '+')
测试用例2:calculator(5, 2, '-')
测试用例3:calculator(4, 6, '*')
测试用例4:calculator(8, 0, '/')
测试用例5:calculator(3, 4, '%')
该指标要求每个判定条件中的每个子条件都至少执行一次,因此需要覆盖每个操作符的判定条件的每个子条件。测试用例4为了覆盖除零的子条件而设置,因为其他测试用例中没有除数为零的情况。
阅读全文