软件缺陷
从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。因此软件缺陷就是软件产品中所存在的问题,最终表现为用户所需要的功能没有完全实现,没有满足用户的需求。
软件缺陷的根源
交流不充分、软件的复杂性、开发人员的错误、需求的变化、进度压力
软件缺陷的信息
为了便于缺陷的定位、跟踪和修改,要对所发现的缺陷,按照缺陷的严重程度、优先级、发现阶段、修复阶段、缺陷的性质、所属功能模块、系统环境等方面进行分类和统计。
软件缺陷的信息包括:
- 缺陷ID:唯一的缺陷ID,可以根据该ID追踪缺陷。
- 缺陷状态:缺陷状态指缺陷通过一个跟踪修复过程的进展情况。
- 缺陷标题:描述缺陷的标题。
- 缺陷的严重程度:对软件产品的影响程度,分致命、较严重、严重、一般、低。
- 缺陷的优先级:缺陷修复的先后顺序,即哪些缺陷有限修正、稍后修正。
- 缺陷所属模块:缺陷所属的项目和模块,要能较精确的定位至模块。
- 缺陷记录者:提交缺陷的人员姓名。
- 缺陷提交时间:缺陷提交的时间。
- 缺陷处理人:处理缺陷的处理人。
- 处理结果描述:对处理结果的描述,描述处理情况和代码修改说明。
- 缺陷处理时间:缺陷处理的时间。
- 缺陷验证人:对被处理缺陷验证的验证人(回测者)。
- 验证结果描述:对验证结果的描述(通过、不通过)。
- 缺陷详细描述:缺陷的重现步骤。
- 缺陷环境说明:对测试环境的描述。
- 必要的附件:如涉及到附件的或错误现象的图片等。
软件缺陷分类——缺陷状态
- 提交(Submited,已提交的缺陷)
- 打开(Open,确认“提交的缺陷”,等待处理)
- 拒绝(Rejected,拒绝“提交的缺陷”,不需要修复或不是缺陷、重复缺陷、无法重现)
- 修复(Resolved,缺陷被修复)
- 关闭(Closed,确认修复的缺陷,将其关闭)
- 推迟(Later,可在以后解决,但要确定修复日期或版本)
软件缺陷分类——缺陷严重程度
- Low:表面性错误(如错别字等)
- Medium:影响一个相对独立的功能;仅仅在特定条件上发生;与产品需求定义不一致;断断续续的出现问题
- High:功能点没有实现,或不符合用户需求;数据丢失
- VeryHigh:频繁的死机,系统大部分功能不可用
- Critical:系统瘫痪、异常退出、死循环、严重的计算错误等
软件缺陷分类——缺陷的优先级
- Low:最低优先级,时间和资源允许时修改
- Medium:低优先级,不会延迟发布,但是会在以后修正这个错误
- High:中等优先级,如果这个错误存在与系统中,会制约开发和测试的活动的进行,如果先前没有修复它,那么需要在发布前修复它
- VeryHigh:高优先级,错误对这套系统的能力产生严重的影响
- Urgent:最高优先级,在这个错误影响下,系统几乎不可用
软件缺陷分类——Bug类型
- 系统缺陷:由于程序引起的死机,异常退出;程序死循环;程序错误,不能执行正常工作或重要功能,使系统崩溃或资源不足
- 数据缺陷:数据计算错误;数据约束错误;数据输入、输出错误;严重地影响系统要求或基本功能的实现,且没有办法更正(重新安装或重新启动不属更正方法)
- 数据库缺陷:数据库发生死锁;数据库的表、缺省值未加约束条件;数据库连接错误;数据库中的表有过多的空字段
- 接口缺陷:数据通信错误;程序接口错误
- 功能缺陷:功能无法实现;功能实现错误;严重地影响系统要求或基本功能的实现,且没有办法更正(重新安装或重新启动不属更正方法)
- 安全性缺陷:用户权限无法实现;超时限制错误;访问控制错误;加密错误
- 兼容性缺陷:与需求规定配置兼容性不符合
- 性能缺陷:未达到预期的性能目标;性能测试中出错,导致无法继续进行测试
- 界面缺陷:操作界面错误;打印内容、格式错误;删除操作未给出提示;长时间操作未给出提示;界面不规范;操作者不方便或遇到麻烦,但不影响执行工作功能的实现
- 建议:功能建议;操作建议;建议性的改进要求