1 测试计划
1.1 测试对象
对操作系统⾃带的 “计算器” 进⾏⿊盒测试。
1.2 测试方法
- 等价类划分
- 边界值分析
2 测试用例设计
2.1 输入等价类划分
- 有效等价类
输入类型 | 等价类编号 | 等价类范围 |
---|---|---|
第一个运算数 | 1 | 整数( − 9...9 -9...9 −9...9(16位)到 9...9 9...9 9...9(16位)) |
2 | 小数(整数部分和小数部分共16位) | |
运算符 | 3 | + + + |
4 | − - − | |
5 | × \times × | |
6 | ÷ \div ÷ | |
7 | 1 x \frac{1}{x} x1 | |
8 | x 2 x^2 x2 | |
9 | x \sqrt{x} x | |
10 | % \% % | |
11 | + / − +/- +/− | |
第二个运算数 | 12 | 整数( − 9...9 -9...9 −9...9(16位)到 9...9 9...9 9...9(16位)) |
13 | 小数(整数部分和小数部分共16位) |
- 无效等价类
输入类型 | 等价类编号 | 等价类范围 |
---|---|---|
运算数 | 14 | ≥ 1 0 17 \geq 10^{17} ≥1017 |
运算数 | 15 | 小数(整数部分和小数部分大于16位) |
第二个运算数 | 16 | 0 0 0(运算符为 ÷ \div ÷) |
运算符 | 17 | 1 x \frac{1}{x} x1(第一个运算数为 0 0 0) |
运算符 | 18 | x \sqrt{x} x(第一个运算数为负数) |
说明:
- 以上等价类的划分中,也使用到了边界值分析的方法:
- 例如,等价类 14 14 14,计算器输入最高位为16位,所以对于高于16位的数,划分至无效等价类进行测试。
- 再例如,等价类 18 18 18,开根运算对于负数是无法进行计算的,所以将开根计算中第一个运算数为负数的情况,划分至无效等价类进行测试。
- 对于负数的输入,无法经过先输入 − - −,再输入数字实现,必须通过先输入数字,再输入 + / − +/- +/−实现。所以,对于等价类 14 14 14, ≤ − 1 0 17 \leq -10^{17} ≤−1017的输入数字超出情况,输入和 ≥ 1 0 17 \geq 10^{17} ≥1017本质相同。
2.2 测试用例
测试用例编号 | 输入 | 预期输出 | 覆盖等价类 |
---|---|---|---|
1 | 0 0 0 + + + 8.8 8.8 8.8 | 8.8 8.8 8.8 | 1 3 13 |
2 | 99 99 99 − - − 199 199 199 | − 100 -100 −100 | 1 4 12 |
3 | 65.5 65.5 65.5 × \times × 32 32 32 | 2096 2096 2096 | 2 5 12 |
4 | 47 47 47 ÷ \div ÷ 7 7 7 | 6.714285714285714 6.714285714285714 6.714285714285714 | 1 6 12 |
5 | 5 5 5 1 x \frac{1}{x} x1 | 0.2 0.2 0.2 | 1 7 |
6 | 8 8 8 x 2 x^2 x2 | 64 64 64 | 1 8 |
7 | 441 441 441 x \sqrt{x} x | 21 21 21 | 1 9 |
8 | 54.2 54.2 54.2 % \% % | 0.542 0.542 0.542 | 2 10 |
9 | 637 637 637 + / − +/- +/− | − 637 -637 −637 | 1 11 |
10 | 1 0 17 10^{17} 1017 | 无法输入该数 | 14 |
11 | 123456789.123456789 123456789.123456789 123456789.123456789 | 无法输入该数 | 15 |
12 | 33 33 33 ÷ \div ÷ 0 0 0 | 除数不能为零 | 1 6 12 16 |
13 | 0 0 0 1 x \frac{1}{x} x1 | 除数不能为零 | 1 7 17 |
14 | 49 49 49 + / − +/- +/− x \sqrt{x} x | 无效输入 | 1 9 11 18 |
以上 14 14 14 个测试用例,实现了等价类的百分百覆盖。
测试结果
除第8个测试案例外,其余测试案例均符合预期输出。
经进一步测试,系统自带计算器 % \% %的计算规则如下:
- 先输入一个数字,例如 3 3 3,再输入 % \% %,结果显示: 0 0 0
- 先输入一个数字,例如 3 3 3,再输入 = = =,此时显示: 3 3 3,再输入 % \% %,结果显示: 0 0 0
- 先输入一个算式,例如 9 9 9 ÷ \div ÷ 3 3 3,此时显示: 3 3 3,再输入 % \% %,结果显示: 0.03 0.03 0.03