ISTQB考试回归测试题目困惑:为何正确答案为B?
回归测试判断问题解析
题目背景
测试一个包含3个验收准则(AC1、AC2、AC3)的用户故事,每个准则对应一个测试用例:TC1对应AC1,TC2对应AC2,TC3对应AC3。三个连续版本的测试执行结果如下:
执行1(第一轮测试)
| 测试用例 | 结果 |
|---|---|
| TC1 | (1) 失败 |
| TC2 | (2) 通过 |
| TC3 | (3) 失败 |
执行2、执行3(后续两轮测试)
| 执行2结果 | 执行3结果 |
|---|---|
| (4) 通过 | (7) 通过 |
| (5) 失败 | (8) 通过 |
| (6) 失败 | (9) 通过 |
测试触发规则:只有当之前测试发现的所有缺陷都已修复,且新版本可用时,才会启动新一轮测试。
问题:上述哪些测试属于回归测试执行?
选项:
- a) 仅4、7、8、9
- b) 仅5、7
- c) 仅4、6、8、9
- d) 仅5、6
正确答案是B,下面拆解原因:
关键区分:确认测试 vs 回归测试
首先要明确两个测试类型的核心差异:
- 确认测试:专门针对刚修复的缺陷执行,目的是验证这个缺陷确实被解决了。
- 回归测试:针对原本正常(或已修复正常)的功能执行,目的是验证新的代码修改(修复其他缺陷的改动)没有破坏这些原有功能。
现在按执行顺序逐一分析:
- 执行1:这是初始功能测试,所有测试都是第一次验证,不属于回归测试。这次测试发现TC1、TC3有缺陷,TC2正常。
- 执行2:是修复TC1、TC3缺陷后的测试:
- (4) TC1执行:针对TC1的缺陷修复做验证,属于确认测试,不是回归。
- (5) TC2执行:TC2原本是正常的,现在重新跑它,是为了确认修复TC1、TC3的代码改动没影响TC2的功能,这就是回归测试。
- (6) TC3执行:针对TC3的缺陷修复做验证,属于确认测试,不是回归。
- 执行3:是修复执行2中发现的TC2缺陷后的测试:
- (7) TC1执行:TC1在执行2中已经修复正常,现在重新跑它,是为了确认修复TC2的代码改动没破坏TC1的正常功能,属于回归测试。
- (8) TC2执行:针对TC2的缺陷修复做验证,属于确认测试,不是回归。
- (9) TC3执行:TC3在执行2中还没修复好,这次是验证自身缺陷修复,属于确认测试,不是回归。
所以符合回归测试的只有(5)和(7),对应选项B。
内容的提问来源于stack exchange,提问作者Cindy
相关产品推荐
相关产品推荐

