什么是缺陷隔离?
缺陷隔离(Isolation),是测试领域的一个专业术语,但是很多测试人员没有听说过。
关于缺陷隔离的最早说法,是测试专家Cem Kaner在《Bug Advocacy: A BBST Workbook》一书提到的。其含义是:尽可能缩减缺陷的操作步骤和重现条件(即把缺陷从不相关的因素中隔离开来)。
这个定义里提到两个关键词:
- 减少操作步骤
- 减少重现条件
我们先来看看减少操作步骤。
当我们发现缺陷时,首先做的是确认能否重现它,判断这是一个必现缺陷,还是概率性缺陷。
当我们成功重现了缺陷之后,接下来需要判断:当前的重现步骤是最短操作路径吗?
例如:你通过 A、B、C、D、E 五个操作步骤,已经完美地重现了缺陷;但你有没有尝试去掉其中一个或几个步骤,仍然能够重现它?
如果你多次试验后发现,其实通过 A、C、D、E 四个步骤,就可以重现缺陷了,那么恭喜你,你距离这个缺陷的本质又接近了一步。
然后再来看看减少复现条件。
假定你使用手机浏览器观看B站视频时,发现了一个进度条拖不动的缺陷,而且通过 A、C、D、E 四个操作步骤确定能够重现问题。
接下来你需要进一步验证:看看B站的其他视频,是否都存在同样的问题;然后再看看优酷网等其他视频站点的视频,是否也存在同样的问题?
经过一些尝试,你的缺陷报告中增加了一条备注:只有B站视频存在这个问题,优酷、搜狐网站视频使用同样步骤未发现问题。
这样,你距离这个缺陷的本质又更近了一步。
缺陷隔离的意义
通过上面的介绍,相信大家对缺陷隔离的意义已经有了一定的认识。我们不妨归纳一下:
第一、缺陷隔离是测试人员对缺陷本质的探索。
软件测试是技术型专业,测试在发现问题、思考问题时一定要有技术思维,要透过现象寻找真相,不能浅尝辄止。
发现了缺陷现象后,需要从技术上层层深入,不断逼近问题本质。正如上面的过程:发现问题->尝试重现->确认最小操作步骤->确认最少重现条件->甚至确认唯一存在问题的资源。
“内行看门道,外行看热闹”,当遇到同一个问题时,谁能够挖得更深,想得更充分,就证明他更专业。
第二、缺陷隔离有助于开发修复缺陷。
开发分析排查缺陷原因的过程,本质上是逐步排除不确定性的过程。
这和我们到医院看病是同样的道理。你描述了症状之后,医生会先划定一个诊断方向,接下来需要做一系列检查,来逐步排除不可能的病因、缩小病因范围,最终给出确诊意见。
开发人员拿到一个缺陷后,仅从缺陷现象来判断,引发问题的原因可能有很多。然后通过分析日志,来逐步排除问题原因、缩小问题范围,最终定位到问题根因。
如果你通过精确的缺陷隔离,提供给开发一份问题现象很明确的报告,那么显然开发的排查范围就更小,分析效率就更高。对于这样的测试人员,开发小哥哥怎么能不给你点赞呢!
源自公众号 软件测试启示录