第四章缺陷管理
4.1简介
缺陷管理乐意带给我们什么好处
1.有效的缺陷管理手机的信息可以帮助测试经理和其他项目干系人了解项目在整个开发周期中的状态(了解状态)
2.通过持续收集和分析数据,还可帮助识别测试和开发过程中的改进机会(识别改进机会)
4.2缺陷生命周期和软件开发生命周期
1.缺陷(软件开发周期)
软件开发周期发现的缺陷:静态分析发现的是缺陷
什么活动可以发现失效
1.1设计规格说明
1.2需求规格说明
1.3代码交付给下一阶段前
静态分析找到缺陷而不是发现失效,因此,由于不需要通过调试活动将缺陷隔离,移除缺陷的成本得以降低
2.失效(单元测试/集成测试/系统测试过程中)
单元测试/集成测试和系统测试等的动态测试过程,缺陷是通过其引起的失效来揭示的(实际结果与预期结果不符)
如果测试人员观察到了异常,就意味需要做进一步调查(填写缺陷报告昨晚调查的开始)
3.测试驱动开发
在测试驱动开发时,自动单元测试被用作为一种可执行的设计规格说明
产品代码在开发后立即执行这些测试
只要部分或全部测试没被通过,此单元的开发就不能算完成
因此,这类测试的失效不构成缺陷(报告),而且一般不会被跟踪
4.2.1缺陷工作流程和状态
对于测试人员在测试中发现的缺陷,有三种状态需要测试团队采取相应的行动:
初始状态:
- 在这个状态下,一名或多名测试人员为负责解决缺陷的人员收集必要的信息,用以重现异常
- 还可能被称为“打开”或“新”的状态
退回状态
1.在这个状态下,报告接收人拒绝接收报告或向测试人员询问进一步信息
这个状态表明初始状态的信息收集过程或者测试本身存在不足
测试经理应监督以免出现过高的退回率
在这状态测试人员必须提供补充说明,或确认该报告应该被拒绝
2.还可被称为“拒绝”或“澄清”状态
确认测试状态
- 在这个状态下,测试人员运行确认测试(一般按照缺陷报告中重现失效步骤),判断修复是否解决的问题
如果确认测试表明缺陷已被修复,测试人员应关闭缺陷报告
如果确认测试显示缺陷未被修复,测试人员应再次打开缺陷保方,让之前安排的缺陷负责人继续修复
2.还可能被称为“解决”或“验证”状态
4.2.2管理无效和重复缺陷
针对无效的缺陷应该肿么办:
针对两个或以上缺陷报告是由相同的根本原因引起的,通常只保留其中一个缺陷报告,其他的将视为重复缺陷报告被关闭
测试经理是否应该接受无效/重复的缺陷报告:
尽管无效缺陷报告和重复缺陷报告代表一定程度的低效率,但一定数量的此类报告是不可避免的,而且应该被测试经理所接受
4.2.3跨职能缺陷管理
由哪些人员除职能外负责缺陷管理:
除测试经理/缺陷管理委员会(或缺陷分类委员会)的成员外
还可包括开发/项目管理/产品管理和其他软件开发的利益干系人
4.3缺陷报告信息
缺陷报告应满足什么目的:
- 在整个缺陷生命周期中管理报告
- 对项目状态的评估,特别是就产品质量和测试进度而言
- 对过程能力的评估
收集缺陷能给我们带来什么好处:
有助于监督测试进度和评估出口准则
收集缺陷数据包括:
- 缺陷发现人的名字
- 缺陷发现人的角色
- 测试类型
- 问题总结
- 问题详细描述
- 重现失效的步骤,实际结果和预期结果,包括截图,数据库转储,提供相应的日志
- 缺陷引入,发现和消除生命周期阶段,包括测试级别
- 被引入缺陷的工作产品
- 对系统和产品干系人的影响严重程度
- 缺陷修复的优先级(一般由系统失效带来的业务影响决定)
- 存在缺陷的子系统或者组件
- 发现缺陷时项目真正进行的活动
- 识别问题的方法
- 缺陷的类型
- 缺陷影响的质量特性
- 观察到缺陷的测试环境
- 出现问题的项目和产品
- 目前缺陷所有者,如目前被安排出来问题的人员,前提时该报告还没到最终状态
- 报告目前的状态
- 被观察出问题的工作产品
- 对项目和干系人利益的影响
- 解决/不解决问题的结论/建议和批准
- 修复/不修复问题的风险/成本/机会/效益
- 各种缺陷生命周期状态转移发生的日期,每个转移后的报告所有者,以及项目组成员隔离,修复和验证缺陷修复的活动
- 关于缺陷最终怎样修复的描述和修复结果进行测试的建议(如果缺陷时通过软件变更修复)
- 其他参考信息,如识别缺陷的测试/风险/需求及其他和缺陷相关的测试基本要素(动态测试)
4.4使用缺陷报告信息评估过程能力
缺陷报告能给测试经理带来什么:
测试经理应该意识到缺陷报告对于评估测试能力和软件开发过程能力得意义
缺陷信息应该支持哪些过程改进活动:
- 根据缺陷引入阶段/识别阶段和消除阶段得信息,或者按阶段来划分,评估阶段缺陷密度,并提出改善各阶段缺陷发现有效性得方案
- 根据缺陷引入阶段的信息,对缺陷引入最多的阶段进行帕累托图分析,使改进更据针对性,减少缺陷总数
- 根据缺陷根本原因信息确定缺陷引入的潜在原因,以减少缺陷总数,支持过程改进
- 根据缺陷引入/识别和消除阶段的信息进行质量成本分析,尽量降低和缺陷相关的成本
- 根据缺陷组件信息进行缺陷聚集分析,以便更好的理解技术风险和重新设计问题较多的组件
第四章缺陷管理学习目标
4.2缺陷生命周期和软件开发生命周期
- 为测试组织开发缺陷管理过程,包括缺陷报告流程,用于在测试生命周期中监督项目的缺陷
- 说明有效的缺陷管理必需的过程和参与者
4.3缺陷报告信息
定义在缺陷管理过程中应该收集的数据和分类信息
4.4使用缺陷报告信息评估过程能力
解释缺陷报告信息怎样用于评估测试和软件开发过程能力