软件测试缺陷管理过程不仅包含软件缺陷记录和统计,更重要的是对缺陷数据进行细致、深入的分 析。缺陷分析是缺陷管理中的一个重要环节,有效的缺陷分析不仅可以评价软件质量,同时可以帮 助项目组很好地掌握和评估软件的研发过程,进而改进研发过程,未对缺陷进行分析就无法对研发 流程进行改进。此外,还能为软件新版本的开发提供宝贵的经验,进而在项目开展之前,制定准确、 有效的项目控制计划,为开发高质量的软件产品提供保障。 常用的缺陷分析方法有:根本原因缺陷分析法、四象限缺陷分析法、ODC 缺陷分析法、Rayleigh 缺陷分析法和 Gompertz 缺陷分析法。
根本原因缺陷分析法 根本原因分析(Root Cause Analysis,RCA)是一种产品质量管理工具,但现在不仅仅用于对 产品质量的管理,在很多领域对问题原因进行分析时都用到该工具。RCA 可以简单地定义为:使 用结构化的过程和方法,识别问题产生的根本原因并制定相应的解决方案,使问题不再发生。根本 原因(Root Cause)是指导致问题发生的最基本原因,与直接原因和表面原因不同的是,根本原因 可防止问题的再次发生,一般一个根本原因与一组或一类问题相关,而不是仅仅局限于某个问题。 RCA 过程包括四个阶段:收集信息、理解问题、确定根本原因和制定解决方案。如图 9-7 所示。
图 9-7 RCA 过程 RCA 在分析时采用一些特定的方法和工具,常用的方法有鱼骨图、关系图(Interrelationship Diagram)、当前现实树(Current Reality Tree)等,本节在后面的内容中主要介绍鱼骨图法如何分 析系统缺陷。 1953 年,日本管理大师石川馨先生提出一种把握结果(特性)与原因(影响特性的要因)的 极方便而有效的方法,故名“石川图”。因其形状很像鱼骨,是一种发现问题“根本原因”的方法, 是一种透过现象看本质的分析方法,也称为“鱼骨图”(Cause & Effect/Fishbone Diagram)或者“鱼 刺图”。 鱼骨图分析法的步骤如下: (1)决定问题特性。 问题特性即需要解决的问题,如图 9-8 所示。
2)特性和主骨。 特性写在右端,用方框框起来,主骨用粗线画,加箭头标识,如图 9-9 所示。
图 9-9 特性和主骨 (3)大骨和根本原因。 大骨上分类书写 3~6 个根本原因,用方框框起来,如图 9-10 所示。
图 9-10 大骨和要因 大骨通常采用 6M 方法:人力(Manpower)、环境(Mother-nature)、机械(Machinery)、测量 (Measurement)、方法(Methods)和物料(Materials)。6M 常规图如图 9-11 所示。
(4)中骨、小骨、孙骨。 中骨是阐明事实,小骨要围绕“为什么会那样”来写,孙骨要更进一步来追查“为什么会那样”。 (5)记录中骨、小骨、孙骨的“要点”。 (6)深究要因。 (7)记入关联事项。 软件缺陷分析过程中,根本原因主要从四个方面来考虑:开发阶段相关(phase-related)、人员 相关(human-related)、项目相关(project-related)和复审相关(review-related)。软件缺陷根本原 因分析图如图 9-12 所示。
软件缺陷根本原因分析 【实例】系统中包含一个采集数据的模块,在测试过程中发现该模块偶尔出现数据采集中断的 现象,但一直没有找到具体的原因。在发布前缺陷评审时,该缺陷也通过评审,允许发布,但发布 到市场后,大量客户反馈该问题,之后研发团队才开始重视该问题,对该问题进行详细分析。分析 发现选择的中断处理方式不是最优的,当前使用的中断方式存在缺陷。通过鱼骨图对该缺陷产生的 原因进行分析,如图 9-13 所示,其主要的原因有两个:一是该方案在设计时并未经过任何审核; 二是开发工程师经验缺乏,错误地认为设计的中断方案是最优的。