参考:Defect/Bug Life Cycle in Software Testing
什么是缺陷
软件缺陷一般被我们叫做Bug。对应的软件缺陷,就是我们所测试的程序中存在的无法正常运行或功能有相关缺陷。
IEEE729-1983对缺陷的标准定义:
从产品内部看,缺陷是软件产品开发或维护过程中存在的错误、毛病等各种问题;
从产品外部看,缺陷是系统所需要实现的某种功能的失效或违背。
什么是软件测试
软件测试被定义为检查实际结果是否符合预期结果并确保软件系统没有缺陷的活动,尽可能多的发现缺陷。
缺陷的生命周期
缺陷的生命周期,是从缺陷管理的角度出发定义的,首先先发现缺陷,才能定义缺陷,并管理它。
根据IEEE Std 1044-1993 中的描述,缺陷生命周期主要由四个阶段组成:识别(Recognition)、调查(Investigation)、改正(Action)、总结(Disposition)。
Bug的生命周期也可以分为八个阶段。
这些阶段主要包括:
- New:新发现的bug,指给对应的开发人员。
- Assigned:测试人员发布错误后,测试人员的负责人会批准该错误并将错误分配给开发团队。
- Open:开发人员确认这是bug,并且认为需要进行修复。
- Fixed:开发人员修改后,标记已经修复完毕,等待测试人员进行确认性测试。
- Pending Test/Verify:等待测试人员进行回归验证。
- Rejected:如果开发人员不认为这是个bug,会拒绝修改,测试人员确认不是问题后,bug状态成为Rejected。拒绝 - 开发团队拒绝修复该缺陷,可能是因为:1、重复的缺陷 2、不是缺陷 3、不可重现
- Delay:如果认为暂时不需要修改或暂时不能修改,会将bug置成Delay状态,并且说明理由。因某些因素需要,暂缓该缺陷的修复。
- Reopen:如果经验证Bug仍然存在,测试人员会重新打开Bug,开发人员需要重新去修改这个bug。软件测试人员标记为重新激活或重新打开分配给开发团队以进行修复。
- Closed:测试人员进行回归测试后,确认该bug已经被修复,关闭Bug。
这些阶段构成了Bug从被发现到被最终关闭的完整生命周期。