testing - 澄清“完整路径覆盖”的含义
问题描述
在课堂上,我们被要求测试这个静态方法。该方法应该(但不总是)返回与输入相同的整数值。
static int identity(int x) {
if (20 <= x && x <= 30) {
x /= 2;
}
if (5 <= x && x <= 15) {
x *= 2;
}
return x;
}
这个问题要求我们创建具有“完整路径覆盖”的最小测试集。由于有两个条件语句,您希望生成 2^n 测试,在本例中为 4。但是,不可能创建第一个条件为真而第二个条件为假的测试。这是否意味着具有“完整路径覆盖”的测试的最小数量是 3?
解决方案
从测试人员的 POV 来看,我会查看您的范围的边缘以确定您的测试覆盖率。您不想只确保执行 if 语句 - 您想检查范围的边界以及范围内的一个输入。
鉴于此,我将测试以下输入并期望以下输出:
| input | output |
| 19 | 19 | (just outside first boundary minimum)
| 20 | 20 | (just inside first boundary minimum)
| 24 | 24 | (value within the range)
| 30 | 30 | (just inside first boundary maximum)
| 31 | 31 | (just outside first boundary maximum)
| 4 | 4 | (just outside second boundary minimum)
| 5 | 10 | (just inside second boundary minimum)
| 10 | 20 | (value within the range)
| 15 | 30 | (just inside second boundary maximum)
| 16 | 16 | (just outside second boundary maximum)
如果你想了解更多,谷歌边界测试。
推荐阅读
- mysql - MySQL 从多个表中的列总数中插入(复合?)行
- c - C - 程序为 SEGFAULT 提供了 for 循环,但并非没有
- c# - 如何使用 CodeDom 进行异步调用和函数定义?
- c++ - 用 C++ 编写类型类
- hibernate - 从 DB2 获取 DB2 SQL 错误:SQLCODE=-803, SQLSTATE=23505
- ios - 使用 UISearchBar 时 UITableView 变为 nil
- visual-studio-code - 当我构建项目时,vs-code 突然从 node_modules 弹出“更改”文件
- imagemagick - 如何在不丢失大量信息的情况下使用 GOmagick 将图像压缩到最大
- html - 使用弹性框如何在 div 下居中文本
- java - NYSIIS 中 BOSCH 的正确编码是什么?