作为一名测试人员,经常干出力不讨好的事情,似乎成为了一种行业常态,而背锅侠也常常成为测试人员的代名词。测试跟老板谈绩效,what?比起开发,产品,更是难上加难。如何让测试有的说,说得好。数据,数据,还是数据。重要的事情说三遍。那测试的数据怎么来衡量呢?质量度量。
质量度量的维度有很多,比方我们最熟悉的
客户端
1.线上/线下遗留bug数
2.用户反馈差评率
服务端
1.服务稳定性SLA
a,变更管控 b,监控报警 c,慢响应慢查询治理
d,全链路压测 e,故障演练 f,代码扫描和自动化测试 g,中间件统一(高可用基础)
2.应急处置时长,故障响应时长1-5-10达标率
3.故障数
1.缺陷发现率:
缺陷发现率是测试人员工作量的一个很重要的体现。
①测试用例缺陷发现率
测试bug/用例数*100*
②自动化测试缺陷发现率
自动化测试bug数/总bug数*100%
③线上遗漏缺陷率
线上反馈bug数/(线上反馈bug数+测试bug数)*100%
2.覆盖率:
覆盖率衡量了测试人员工作的密度和细度。
1.需求覆盖率
2.质量维度覆盖率
3.平台覆盖率
4.代码覆盖率
Coverage
行覆盖和条件覆盖的混合。单元测试覆盖多少源代码。Coverage = (CT + CF + LC)/(2*B + EL)
其中 :
CT = conditions that have been evaluated to ‘true’ at least once至少有一次被判断为true的条件数
CF = conditions that have been evaluated to ‘false’ at least once 至少一次被判断为false的条件数
LC = covered lines = lines_to_cover uncovered_lines 已覆盖的行数
B = total number of conditions 条件总数
EL = total number of executable lines (lines_to_cover) 所有可执行的代码总行数
3.代码质量:
没有bug的应用就一定是个好应用了吗,用户体验不仅仅是能用,还得好用。
代码检查:
1)、Reliability可靠性:
可靠性比率的计算方法:
A = 0 Bug 最高等级A,表示代码无bug
B = at least 1 Minor Bug 代码只要有一个次要bug,等级就为B
C = at least 1 Major Bug 只要包含一个重要bug,等级将为C
D = at least 1 Critical Bug 只要有一个严重bug,等级评估为D
E = at least 1 Blocker Bug 只要有一个最高等级的阻断级别的bug,可靠性评估为E,最低级别。
2)、Security安全性:
安全度指标计算方法:
A = 0 Vulnerability 没有漏洞时,项目评估为最高级别A
B = at least 1 Minor Vulnerability 只要包含一个次要漏洞,项目评估为级别B
C = at least 1 Major Vulnerability 只要包含一个重要漏洞,项目评估为级别C
D = at least 1 Critical Vulnerability 只要包含一个严重漏洞,评估为D
E = at least 1 Blocker Vulnerability 只要包含一个阻断漏洞,项目评估为最低级别E
3)、Maintainability可维护性:
可维护性等级范围从A(非常好)到E(非常差)。 评级由技术债务比率的值决定,技术债务比率是将项目的技术债务与从零开始重写代码所需的成本进行比较。 A到D的默认值为0.05,0.1,0.2,0.5。任何超过0.5评级就为E。
Technical Debt 计算公式如下:
4)、Duplicated Lines(%):
其中 :
重复率=重复行数/总行数*100
5)、Complexity复杂度:
圈复杂度(Cyclomatic Complexity)是衡量计算机程序复杂程度的一种措施。它根据程序从开始到结束的线性独立路径的数量计算得来的。
圈复杂度越高,代码就越难复杂难维护。坑就越大。。
以下关键词增加复杂性:if, for, while, case, catch, throw, return (不是方法的最后一个语句), &&, ||, ?
else, default, finally不增加复杂度
代码复杂度过高将难以理解、难以维护。
计算公式1:V(G)=E-N+2P。其中,E表示控制流图中边的数量,N表示控制流图中节点的数量,P图的连接组件数目(图的组件数是相连节点的最大集合)。因为控制流图都是连通的,所以P为1.
4.线上监控:
服务监控
舆情反馈
等等。所以测试的工作是可以有效体现的。关键要做好质量度量,数据,数据,数据。