想必大家都有这样被老板灵魂发问的经历吧。
如果测试工程师将测试工作理解为测试用例设计、测试执行,那么你大概率回答不好老板的发问,给不到老板想要的答案。
测试工程师作为项目质量把关者, 是产品质量保障至关重要的一环,测试设计和执行只是其职责的一部分,殊不知,测试质量度量也是测试工作尤为重要的一环。测试质量度量的范围不仅限于测试角色,也包括开发角色,甚至是产品角色。因为产品质量不是测试同学测出来的,而是产研测三方共同努力“测试”的结果。
度量是一种工具,就像一把尺子,衡量项目测试质量的好坏,哪些地方做的好,哪些地方还需要改进。
下面就分享下测试工程师如何度量软件测试质量,我将其分为三个过程:
软件缺陷可以是编码中的缺陷,也可以是软件需求设计中的缺陷,最终都会导致软件程序运行不符合用户预期需求 的结果。有过测试经验的小伙伴,大都接触过比较流行的缺陷管理工具Jira,用于记录测试过程发现的缺陷。想要做好质量度量,就一定要有被度量的元数据(缺陷数据),而缺陷自身被给予的特征维度越多,则越能将度量工作做的更细致,也能度量出更多的结果。而缺陷规范,可以简单理解为给缺陷 贴不同维度标签(要素)。
如上所述,理论上缺陷要素越多则度量的结果越精确,但通常会包含以下基本内容,如描述、发现缺陷的日期、发现缺陷的测试人员的名字、修复缺陷的开发人员的名字等。
缺陷管理是一个缺陷从被发现到缺陷修复的系统过程,也叫缺陷生命周期管理。缺陷管理周期包含以下阶段:
1)发现缺陷
2)记录缺陷
3)修复缺陷
4)验证缺陷
5)Reopen/关闭缺陷
6)统计缺陷
在发现阶段,项目团队必须在项目交付之前,尽可能多地发现缺陷。一个缺陷被发现且被开发认可,缺陷就变成可接受的状态,等待开发修复。
发现缺陷则利用缺陷管理工作记录缺陷,缺陷描述务必详细,这样能降低开发“理解”/复现缺陷的成本。然后要对缺陷进行分类,例如缺陷严重程度分类有助于软件开发人员对其任务进行优先排序,开发人员优先修复那些非常严重的缺陷。
下面来做个小测验:
No | Description | Priority | Explanation |
---|---|---|---|
1 | 网站无法记住用户的登录会话 | High | 这是个严重的问题,因为用户可以登录,但无法执行任何进一步的交易。 |
2 | 网站的登录功能不能正常工作 | Critical | 登录是网站的核心功能之一,如果这个功能不能正常工作就是严重的缺陷。 |
3 | 网站的界面在移动设备上不能正确显示 | Medium | 影响到使用智能手机浏览网站的用户 |
4 | 网站页面上文字颜色不正确 | Low | 不影响功能使用,影响到体验 |
修复缺陷过程开始于将缺陷提交给开发人员,然后开发人员根据优先级安排缺陷的修复,最后开发人员向测试同学同步修复结果。借助测试缺陷管理工具,例如Jira,可以管理缺陷的整个生命周期的活动,大大提升测试管理效率。
在开发团队修复并报告了缺陷后,测试团队会验证缺陷是否真的被修复了。
一旦一个缺陷被解决和验证,该缺陷的状态就会被改变为关闭。如果没有,你要重新打开(reopen)缺陷,再次提交给开发修复。
软件测试中的统计缺陷是将缺陷按照要素进行数据归类,用于缺陷度量。
强调一点,缺陷度量不仅仅发生于测试结束后,而是伴随整个测试过程的。那么,测试质量度量指标有哪些呢?
汇总如下,可以看出软件测试度量范围不仅限于测试角色,还包括开发角色。
指标名称 | 定义 | 度量范围 |
---|---|---|
测试执行率 | (实际执行的测试用例数/测试用例总数)*100% | 测试进度 |
测试通过率 | (执行通过的测试用例数/测试用例总数)*100% | 开发质量 |
需求(测试用例)覆盖率 | (已设计测试用例的需求数/需求总数)*100% | 测试设计质量 |
需求通过率 | (已测试通过的需求数/需求总数)*100% | 进度 |
测试用例命中率 | (缺陷总数/测试用例数)*100% | 测试用例质量 |
二次故障率 | (Reopen的缺陷/缺陷总数)*100% | 开发质量 |
NG率 | (验证不通过的缺陷/缺陷总数)*100% | 开发质量 |
缺陷有效率 | (有效的缺陷/缺陷总数)*100% | 测试 |
缺陷修复率 | (已解决的缺陷/缺陷总数)*100% | 开发 |
缺陷生存周期 | 缺陷从提交到关闭的平均时间 | 开发、测试 |
缺陷修复的平均时长 | 缺陷从提交到修复的平均时间 | 开发 |
缺陷关闭的平均时长 | 缺陷从修复到关闭的平均时间 | 测试 |
缺陷探测率 | (测试发现的缺陷数/(测试发现的缺陷+客户发现的缺陷))*100% | 测试质量 |
缺陷拒绝率 | (缺陷拒绝修复数/缺陷总数)*100% | 测试质量 |
缺陷逃逸率 | (线上缺陷/(提交缺陷数量+线上缺陷))*100% | 测试质量 |
以缺陷拒绝率为例,假如测试提出84个缺陷,开发测试双方认定其中20个不属于缺陷, 你可以计算出缺陷拒绝率是20/84=0.238(23.8 %)。通常来说,缺陷拒绝率值越小,测试的质量就越高。
我们通过上述指标可以窥探测试/开发在项目中存在的问题(效率问题、质量问题等),用于提出解决方案,并最终提升项目效率和质量。这时候你也许会问了,测试同学要掌握的技能好多啊,不仅要会测,还要知道如何管好”测“,更要会分析,整个项目都要参与进来协调产研同学啊,妥妥就一项目经理(PM),啥都要管哦。
HAHA,那可不是嘛,优秀的测试工程师就是优秀的PM啊。