为什么要做缺陷分析
不论是在传统的软件开发流程还是敏捷开发流程中,缺陷的统计与分析都是软件质量保证的重要环节。
一些传统的缺陷统计和分析往往把重点放在缺陷数量的统计上,用于衡量开发和测试人员的KPI。例如某个功能模块出现了重大的bug,那当时负责开发的开发和测试都要出来“背锅”。
不能说这种方法是错的,但是如果把目的放在真正提高代码的质量上,缺陷的分析应该摆脱这种找人背锅的思路,回到真正的目的上来。一个缺陷的产生不能简单归结于开发的错误或者测试的漏测,还需要从产品设计,架构设计,用户体验等方面进行分析。
产品的质量是内建的,当代码完成的时候,质量就已经确定了。缺陷分析的价值应该体现在如何帮助代码开发过程中的持续改进中。
怎么做缺陷分析
前期准备
缺陷分析的前期准备工作主要体现在缺陷/Bug的记录上。
要做到后期有效的缺陷分析,很重要的部分其实是前期记录bug时的信息收集。
下面的一些信息都是必须要在创建和修复缺陷的时候记录下来的:
缺陷发生的功能模块
记录下缺陷发生在哪一个功能模。复杂的系统里面有很多功能模块组成,我们需要记录下尽可能准确的功能模块,也有可能缺陷发生在不同模块之间的交互中,例如不同微服务之间的业务通信,在service的provider和consumer的交互中出现问题。那这种交互也可以看作是一个特别的模块。模块的定义并不是固定的,目的是定位缺陷发生的位置。
缺陷的Root Cause
Root Cause可以理解为错误的根源。而这个根源指的是导致缺陷的原因。一些常见的root cause有: