软件缺陷的定义
- IEEE 1983 of IEEE Stardard 729中软件缺陷做了一个标准的定义:
- 从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。
- 因此软件缺陷就是软件产品中所存在的问题,最终表现为用户所需要的功能没有完全实现,没有满足用户的需求。
缺陷不是bug,缺陷包含bug,缺陷的范围更大。
软件缺陷是指存在与软件(程序、数据、文档)中那些不符合用户需求的问题
- 软件未达到需求规格说明书表明的功能
- 软件出现了需求规格说明书指明的范围
- 软件的功能超出了需求规格说明书指明的范围
- 软件未达到需求规格说明书虽未指明而应该达到的目标
- 软件测试人员认为软件难以理解、不易使用、运行速度慢、或者最终用户认为不好
示例中的的软件功能超出软件需求规格说明书的范围,挺好玩的,写需求文档的人太难了,写多了不对,也少了也不对。[捂脸…]
软件缺陷的表现形式
- 功能、特性没有实现或部分实现
- 设计不合理,功能特性不明确,逻辑不清楚或存在矛盾。
- 产品实际结果和所期望的结果不一致。
- 没有达到需求规格说明书所规定的性能指标等
- 运行出错,包括运行中断、系统崩溃
- 界面混乱等。
- 数据不正确、精度不够、不完整或格式不统一。
- 用户不能接受的其他问题,如存取时间过长、界面不美观。
- 硬件或系统软件上存在的其他问题。
啊啊啊,只能说产品经理好难啊!用户就是上帝,不满意了或者有问题了就是软件缺陷。性能指标啦,格式要统一啦,硬件上一些问题啊,总之有问题就是不对。。。。。这些不需要死记硬背哦,理解就行。
软件缺陷产生的原因
软件缺陷是不可避免的,造成软件缺陷产生的原因主要归纳如下:
- 需求解释或纪录错误
- 用户需求定义错误
- 设计说明存在错误
- 编码说明、程序代码有误
- 硬件或软件系统上存在错误
- 其他,如文档错误、内容不正确或拼写错误
这里的原因:拼写错误。例如:登录和登陆???
选哪个??
登录游戏!!!(是不是很多人经常拼写错误?登陆是上岸的意思哈)
软件缺陷的根源
交流不充分
- 客户与开发人员、开发人员与测试人员等
软件的复杂性
- 功能复杂、开发复杂、测试复杂
开发人员的错误理解
- 对需求的理解、开发压力、能力与经验
需求的变化
- 需求说明书、设计文档、程序的变更
进度压力
- 项目周期比较紧
可能这里开发人员更容易出现问题。
软件缺陷的费用
所以需求规格说明书很关键!
软件缺陷的信息
为了便于缺陷的定位、跟踪和修改,要对所发现的缺陷,按照缺陷的严重程度、优先级、发现阶段、修复阶段、缺陷的性质、所属功能模块、系统环境等方面进行分类和统计。
软件缺陷分类----缺陷状态
编号 | 缺陷状态 | 描述 |
---|---|---|
1 | 提交(Submited) | 已提交的缺陷 |
2 | 打开(Open) | 确认“提交的缺陷”,等待处理 |
3 | 拒绝(Rejected) | 拒绝“提交的缺陷”,不需要修复或不是缺陷、、重复缺陷、无法重现 |
4 | 修复(Resolved) | 已提交的缺陷 |
5 | 关闭(Closed) | 确认修复的缺陷,将其关闭 |
6 | 推迟(Later) | 可在以后解决,但要确定修复日期或版本 |
软件缺陷的信息,如下图:
软件缺陷的分类——严重程度
严重等级 | 描述 |
---|---|
5-Critical | 系统瘫痪、异常退出、死循环、严重的计算错误等 |
4-VeryHigh | 频繁的死机,系统大部分功能不可用 |
3 -High | a.功能点没有实现,或不符合用户需求 ;b.数据丢失 |
2-Medium | a.影响一个相对独立的功能 b.仅仅在特定条件上发生 c.与产品需求定义不一致 d.断断续续的出现问题 |
1-Low | 表面性错误(如错别字) |
有的公司致命和严重归为一个级别
软件缺陷的分类——优先级
严重等级 | 描述 |
---|---|
5-Urgent | 最高优先级。在这个错误影响下,系统几乎不可用 |
4-VeryHigh | 高优先级。错误对这套系统的能力产生严重的影响 |
3 -High | 中优先级。如果这个错误存在于系统中,会制约开发和测试的活动的进行,如果先前没有修复它,那么需要在发布前修复它。 |
2-Medium | 低优先级。不会延迟发布,但是会在以后修正这个错误。 |
1-Low | 最低优先级。时间和资源允许时修正。 |
这里优先级和严重程度是要记的。(面试可能会问)
严重的计算错误,不会影响系统不可用,但是跟钱啥的挂钩,所以是致命。
**优先级和严重程度是不一样的。**
软件缺陷分类------BUG类型
缺陷等级 | 内容说明 | 备注 |
---|---|---|
系统缺陷 | 1.由于程序所引起的,异常退出 2.程序死循环 3.程序错误,不能执行正常工作或重要功能,使系统崩溃或资源不足 | 不能执行正常工作或主要功能,使系统崩溃或资源不足 |
数据缺陷 | 1.数据计算错误 2.数据约束错误 3.数据输入、输出错误 | 严重地影响系统要求或基本功能的实现,且没有办法更正 |
数据库缺陷 | 1.数据库发生思索 2.数据库的表、缺省值未加约束条件 3.数据库连接错误 4.数据库中的表有过多的空字段 | |
接口缺陷 | 1.数据通信错误 2.程序接口错误 | |
功能缺陷 | 1.功能无法实现 2.功能实现错误 | 严重地影响系统要求或基本功能的实现,但有合理的办法更正 |
分类–bug类型还有很多,这里不举例了,了解就行。
有问题请联系我~