第3关:条件/判定覆盖
实验描述
被测程序的描述:给定三个[-100,100]之间整数a b c
,若a
和b
中至少有一个正数,则a += b
,然后若a
和c
中至少有一个负数,则a *= c
,最后返回计算完成后a
的结果。
测试方法:白盒—条件/判定覆盖测试法。
请仔细阅读被测软件的需求规格说明,设计并执行测试用例。
实验目标
- 初步了解软件测试的步骤,并进行软件测试;
- 分析测试需求,编写简单的测试用例,了解软件测试用例设计方法;
- 执行测试,记录测试结果;
实验操作步骤
- 分析软件测试需求 阅读《特殊计算器》的需求描述和软件代码,熟悉被测软件。
- 补充完整测试用例文件 针对特殊计算器的代码,设计尽可能少的测试用例,尽可能实现条件/判定覆盖。
测试项:特殊计算器
- 测试内容:设计最小数量的测试用例,覆盖被测程序的所有可能条件/判定。
- 测试充分性要求:覆盖所有条件/判定的前提下测试用例数量最小化。
- 参数说明:每个输入数都在-100到100之间,包括-100和100。
- 被测试代码:
int calc(int a, int b, int c) {
if (a > 0 || b > 0) {
a += b;
}
if (a < 0 || c < 0) {
a *= c;
}
return a;
}
设计测试用例
你需要设计测试用例,尽可能的满足条件/判定覆盖。
你需要提交你设计的测试用例,提交格式如下: 参数1 参数2 参数3
参数1 参数2 参数3
每行包括用空格隔开的三个数字,分别表示赋值给参数a、b和c的实参。
例如:如一共有两个测试用例,第一组测试用例为a = 10, b = 20, c = 30
;第二组测试用例为a = 15, b = 20, c = 39
,则你应该在作业中输入下述文字:
10 20 30
15 20 39
此时点击评测,系统会提示
wrong answer 您提供的测试用例没有覆盖所有的条件/判定。
You don't pass this problem.
代码如下
1 1 1
-1 0 -1