---
title: 软件测试和验证2025-2026学年第一学期第一次月考试卷（A）
---

## 一、判断下列命题的正确性（25 分，每题 5 分,共 5 题）

1. 达到期望的覆盖度要求是软件测试的最终目标。 （Х）
2. 系统在运行过程中报内存溢出是软件~~缺陷~~ **失效**。 （Х）
3. ~~开发人员编写的代码~~ **代码的规约说明** 是设计单元测试用例的首要参考标准。 （Х）
4. 在基于需求说明的测试中，
   当需求对输出结果描述不清时，
   ~~可以通过运行代码的方式获取功能执行结果作为测试用例的预期结果~~，
   **应为需求提交相关缺陷问题报告单，与需求分析人员明确输出结果** （Х）
5. 对于枚举类型的变量而言，在测试时最好能够遍历其所有枚举值。 （√）

## 二、单项选题（每题有且仅有一个答案，10 分，每题 5 分,共 2 题）

1. 下列待测因素中不建议使用边界值测试方法的是 ( B )

   A、累计的选课数量；B、是否存在重复的学号；C、年龄；D、累计获得的学分数；

2. 对于“用户名的长度∈\[8, 32\]，
   只允许字母、数字或者下划线且必须以字母开头”的业务逻辑描述而言，
   下列有关测试分析说法不正确的是（ C ）；

   A. “用户名长度”至少需要考虑 3 个等价区间;  
   B. 长度为 33 的用户名是“用户名长度”需要测试的一个边界点;  
   C. 对“用户名”的待测因素只需要考虑“用户名长度”和“构成用户名的字符集”2个测试因素；  
   D. `seist_student1` 是一个符合基本值标准的测试输入；

## 三、多选题（15 分，有 2 个或 2 个以上的正确答案，多选或者错选均不得分，每漏选一个扣每个正确答案的分数）

1. 代码如图所示，对于第 7 行代码中的缺陷`int i=1`,其正确代码应该为`int i=0`，下列说法正确的是（ CD ）

   ```java {7}
       /**
        *  if arr is null throw NullPointException
        *  else return the number of occurrences of 0 in arr
        */
       public int numZero(int[] arr) {
           int count = 0;
           for (int i = 1; i < arr.length; i++)
               if (arr[i] == 0)
                   count++;
           return count;
       }
   ```

   A. 测试用例(`arr=null`，`expected=NullPointException`)只满足可达性；  
   B. 测试用例(`arr={1,0}`，`expected=1`)产生的第一个故障为(`arr={1,0}`, `count=0`, `i=1`)；**（少了指令）**  
   C. 测试用例(`arr={0}`，`expected=1`)可以发现第 10 行代码 `int i=1` 这个缺陷；  
   D. 测试用例(`arr={1}`，`expected=0`)满足可感染性但不满足传播性；

## 四、简答题（20 分）

`List<Integer> intersection(List<Integer> list1, List<Integer> list2)` 方法返回两个整数列表的交集。
对于输入符合方法参数要求的整数列表，请给出能够验证 intersection 满足设计期望的测试断言。

### 评分标准

答案并不唯一！

按等地评分：好 (15 分以上)，普通（10-15 分） ，差（10 以下）3 档。

评判维度包括：

1. 测试断言本身的正确性. 例如，
   “交集的元素即属于 A 也属于 B”是不正确的，因为交集为空集时，该断言不成立；
2. 测试断言设计的维度，应包含多维度考虑，
   因为不同维度的断言，揭错类型和能力有差别。
   例如，从功能本身应具备的特性，功能的逆运算；如，元素个数小于等于任意一个集合；
   交集是任意一个集合的子集；A U 交集=A 且 B U 交集 = B；A-交集不为空时，其元素不属于 B，反之亦然；
3. 测试断言的抽象程度.例如,给出具体输入下的输出，抽象程度就不高， \{1， 2， 3\}和\{2，3\}的交集为\{2，3\}；
4. 测试断言的语义重复性.考察的是同一个维度下，是否给了冗余的断言。也就是几个断言实际上说得都是一会事，即多个断言等价；
5. 测试断言的数量,但是单纯的数量多，不好，需结合上述 4 个维度评判；

## 五、绘图题（30 分）

`Sutter(String txt, String token)`功能输出列出 `txt` 中重复出现的单词及其重复出现次数的列表，
`token` 是分割符且 `space`, `comma`, `;`和 `:` 为合法的分割符。若 `txt` 的最大长度为 2M，
请给出 `Sutter` 的测试设计过程的思维导图。

### 评分标准

答案并不唯一！

按等地评分：好 (25 分以上)，普通（15-25 分） ，差（15 以下）3 档。

评判维度包括：

1. 多个角度分析待测因素
2. 包含待测因素的输入域划分结果
3. 包含应考虑的边界条件
