一、软件缺陷
定义:从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。
二、哪些属于软件缺陷
1、软件未达到规格说明书表明的功能
2、软件出现了规格说明说中指明不会出现的错误。
3、软件功能超出了规格说明书指明的范围
4、软件未达到规格说明书虽未指明但应该达到的目标
5、软件测试人员或用户觉得不好
三、缺陷的表现形式
1、功能、特性没有实现或者部分实现
2、设计不合理、功能不明确、逻辑不清楚或存在矛盾
3、实际结果和期望结果不同
4、没有达到规格说明说要求的性能指标
5、运行出错、崩溃、中断、界面混乱
6、数据不正确、精度不够、不完整或格式不统一
7、用户不能接受的其它问题,如存取时间过长、界面不美观
8、硬件或软件存在其它问题
四、软件缺陷的严重程度
1、Low—表面性错误,如错别字
2、Medium—影响一个相对独立功能、仅仅发生再特定条件上、与需求定义不一致、断断续续出问题
3、High—功能点没有实现、不符合用户需求、导致数据丢失
4、VeryHigh–频繁死机、大部分功能不能使用
5、Critical—系统瘫痪、异常退出、死循环、严重的计算错误、
五、软件测试的优先级
1、Low:时间和资源允许的情况下修复
2、Medium:不会延迟发布,会在以后修复
3、High:会制约开发和测试的进行,需要在发布之前修复
4、VeryHigh:影响系统,产生严重影响
5、Urgent:导致系统几乎不可用
六、软件缺陷分类
- 系统缺陷(不能执行正常工作或重要功能,使系统崩溃或资源不足)
- 由于程序所引起的死机、异常退出
- 程序死循环
- 程序错误,不能执行正常工作或重要功能,使系统崩溃或资源不足
- 数据缺陷(严重影响系统要求或基本功能的实现,且没有办法更正(重新安装和重启不属于更正方法))
- 数据计算错误
- 数据约束错误(数据库中的约束条件)
- 数据输入、输出错误
- 数据库缺陷
- 数据库发生死锁
- 数据库的表、缺省值未添加约束条件
- 数据库连接错误
- 数据库中的表有过多的空字段
- 接口缺陷
- 数据通信错误
- 程序接口错误
- 功能缺陷
- 功能无法实现
- 功能实现错误
- 安全性错误
- 用户权限无法实现
- 超时限制错误(例如长时间不登录时,正常情况账号应该会被强行踢掉)
- 访问控制错误(用户权限)
- 加密错误(例如账号密码进行加密)
- 兼容性错误
- 与需求规定配置需求不符合
- 性能缺陷
- 未达到预期的性能目标
- 性能测试中出错,导致无法进行测试
- 界面缺陷(软件让操作者不方便或遇到麻烦,但不影响执行工作或功能的实现)
- 操作界面错误
- 打印内容、格式错误
- 删除操作未给出提示(重要)
- 长时间操作未给出提示
- 界面不规范
- 建议(建议性的改进要求)
- 功能建议
- 操作建议
七、软件缺陷的状态
1、提交:测试人员提交了一个缺陷给程序员
2、打开:待处理
3、拒绝:程序员认为不是缺陷或者重复,就可以修改状态为拒绝
4、已修复:程序员修复缺陷后提交的一个状态
5、关闭:测试人员经过回归测试后,认为此缺陷已经解决,将其关闭
6、推迟:可以放在后续版本解决的问题,但是要详细写出修复的日期或版本
八、缺陷的跟踪
新提交的缺陷为“新建”状态,在确认有效之后变为“打开”状态,开发人员修改后变为“已修复”状态,此时测试人员需要回归测试,如果验证问题已解决,状态为“已解决”,如果问题依然存在,状态为“打开”;如果开发人员任务此缺陷可以延期修改,状态为“延期”;注意此时必须由项目相关人员讨论确定后,才可以延期处理,否则状态继续为“打开”
九、软件缺陷的信息
- 缺陷ID:具有唯一性,可以根据ID来追踪缺陷
- 缺陷状态:缺陷通过一个跟踪修复过程的进展情况(提交、打开、修复、拒绝、关闭、推迟)
- 缺陷标题:描述缺陷的标题
- 缺陷的严重程度:缺陷对软件产品的严重程度(致命、较严重、严重、一般、低)
- 测试的优先级:缺陷修复的先后顺序,即哪些缺陷优先修复,哪些稍后修复
- 缺陷所属模块:缺陷所属的项目和模块,要能清晰的定位到具体的模块
- 缺陷的记录者
- 缺陷的提交时间
- 缺陷详细描述:缺陷的重现步骤
- 处理结果的描述:描述处理情况和代码修改说明
- 缺陷的环境说明:测试环境描述
- 必要的附件:如bug截图
- 缺陷的处理人
十、缺陷密度
每千行代码的缺陷数;
缺陷密度=1000*缺陷个数/代码行数