质量保证活动不仅仅针对缺陷识别,还应该包括缺陷预防(确保缺陷尽早的被发现而不是进入测试阶段后才能被发现)。
一个简单的等价方程可以是:
QA= QC(缺陷识别)+ 缺陷预防
在测试阶段或发布后发现的缺陷,在定位和修复的成本是非常高的,并且可能降低用户对产品的信心。因此,越早采取预防措施越好。
此外,缺陷预防也可以很好的提升用户满意度,产品信心等。
缺陷预防是任何软件开发过程中的关键步骤或活动,从下图中可以看出,几乎是我们测试任务的一半:
测试人员可以在各个阶段进行缺陷预防:
1) 需求评审:
需求要点审查确认,不管是产品、开发、测试全部要达成需求的一致性。
2) 设计评审:
设计阶段可以让 QA 更具体的了解需求业务实现,逻辑处理方式。站在测试的角度与开发探讨实现逻辑。
3) 代码检查:
其实目前大部分公司的测试人员并没有参与到这个过程 中。不过有一些公司将这个环节分配给了研发主管、研发经理这样的角色 ,他们需要对所负责的业务进行代码检查
下面罗列出了一些常用的预防缺陷的传统方法和技术;
1) 评审和检查:包括单个团队成员的评审(自检)、跨团队评审和对项目团队评审和检查。
组织有效的测试计划、测试方案、测试用例评审
2) 沟通:与产品、研发就需求的沟通和讨论,可以更好帮忙我们了解系统需求
3) 缺陷记录:缺陷关键信息的记录,更好的帮忙我们进行缺陷跟踪、分析
4) 原因分析:
一)帕累托分析:
帕累托分析是一种正式且简单的技术,有助于确定问题解决的优先顺序以获得最大成效。帕累托分析法中指出,80% 的问题是由 20% 的原因引起的。
因此,一旦发现问题,就会根据频率对问题进行优先级排序,并进行详细的统计分析,以找出哪 20% 的原因归因于 80% 的问题。通过简单地关注这 20% 的原因并消除这些原因,可以保证结果,同时优化所涉及的工作范围。
二)鱼骨分析:
是一种更直观的根本原因分析技术。由于此方法基于团队范围内的头脑风暴,因此不涉及统计数据。下图有助于更好地理解这一点。
问题首先写在最右边,在穿过它的水平线上,列出了各种原因。具有最多原因子句骨骼(或行/分支)的分支是最严重的问题,需要努力消除。这种技术有时也称为因果分析。
1) TMM(测试成熟度模型)基于 CMM 即;能力成熟度模型。
2) 缺陷预防涉及所有团队及其在各个阶段的协作努力,这就是它在 TMM 中发挥突出作用的原因。
例如;如果执行测试用例过程中经常出现缺陷,可以组织测试人员协调分析并跟进缺陷具体产生原因并制定后续同类型问题预防计划
#3) 缺陷预防的一些好处:
缺陷预防过程涉及三个关键群体:
经理:
测试:
产品:
缺陷预防在软件开发过程中起着重要而关键的作用。借助上面列出的技术,它有助于以 “更快、更便宜” 的方式管理软件产品的质量。
它确保问题在早期得到解决,根本原因分析是发现和最终问题解决的主要手段,同时软件质量也是核心管理层和整个团队的责任。(包括项目经理、产品经理、研发经理、测试经理,所有团队的成员)