1、软件缺陷的定义
软件缺陷是指存在于软件(程序、数据、文档)中的那些不符合用户需求的问题。
- 软件未达到需求规格说明书表明的功能
- 软件出现了需求规格说明书指明不会出现的错误
- 软件的功能超出了需求规格说明书指明的范围
- 软件未达到需求规格说明书虽未指明而应该达到的目标
- 软件测试人员认为软件难以理解、不易使用、运行速度慢、或者最终用户认为不好 ``` 示例: 计算器说明书一般声称该计算器将准确无误地进行加、减、乘、除运算。如果测试人员或用户选定了两个数值后,随意按下 了“+”号键,结果没有任何反应。 软件未达到软件需求规格说明书表明的功能
若在进行测试时,发现除了规定的加、减、乘、除功能之外,还能够进行求平方根的运算,而这一功能并没有在说明书的功 能中规定。 软件的功能超出了软件需求规格说明书指明的范围
若在测试过程中发现,因为电池没电而导致了计算不正确,但软件需求规格说明书未能指出在此情况下应如何进行处理。 软件未达到软件需求规格说明书未指明而应该达到的目标
假如计算器说明书指明计算器不会出现崩溃、死锁或者停止反应,而在用户随意按、敲键盘后,计算器停止接受输入或没有 了反应。 软件出现了软件需求规格说明书指明不会出现的错误
测试人员或最终用户发现计算器某些地方不好用,比如,按键太小、显示屏在亮光下无法看清等。 软件测试人员认为软件难以理解、不易使用、运行速度慢,或者最终用户认为不好 ```
2、软件缺陷的表现形式
- 功能、特性没有实现或部分实现。
- 设计不合理,功能特性不明确,逻辑不清楚或存在矛盾。
- 产品实际结果和所期望的结果不一致。
- 没有达到需求规格说明书所规定的性能指标等。
- 运行出错,包括运行中断、系统崩溃、界面混乱等。
- 数据不正确、精度不够、不完整或格式不统一。
- 用户不能接受的其他问题,如存取时间过长、界面不美观。
-
3、软件缺陷产生的原因
软件缺陷产生是不可避免的,造成软件缺陷产生的原因主要归纳如下:
需求解释或者记录错误
- 用户需求定义错误
- 设计说明存在错误
- 编码说明、程序代码有误
- 硬件或者软件系统上存在错误
其他,如文档错误、内容不正确或拼写错误
![图片.png](https://cdn.nlark.com/yuque/0/2020/png/1029078/1591845916723-5f3fcb24-cb9d-45bf-99bc-9f0e1b7e3e7e.png#align=left&display=inline&height=255&margin=%5Bobject%20Object%5D&name=%E5%9B%BE%E7%89%87.png&originHeight=385&originWidth=412&size=25833&status=done&style=none&width=273)
4、软件缺陷的根源
交流不充分: 客户与开发人员、开发人员与测试人员等
软件的复杂性: 功能复杂、开发复杂、测试复杂
开发人员的错误: 对需求的理解、开发压力、能力与经验
需求的变化: 需求说明书、设计文档、程序的变更
进度压力: 项目周期比较紧5、软件修复的费用
6、软件缺陷的信息
6.1、概念
为了便于缺陷的定位、跟踪和修改,要对所发现的缺陷,按照缺陷的严重程度、优先级、发现阶段、修复阶段、缺陷的性质、所属功能模块、系统环境等方面进行分类和统计。
编号 | 属性名称 | 描述 |
---|---|---|
1 | 缺陷ID | 唯一的缺陷ID,可以根据该ID追踪缺陷 |
2 | 缺陷状态 | 缺陷状态指缺陷通过一个跟踪修复过程的进展情况 |
3 | 缺陷标题 | 描述缺陷的标题 |
4 | 缺陷的严重程度 | 对软件产品的影响程度,分致命、较严重、严重、一般、低 |
5 | 缺陷的优先级 | 缺陷修复的先后顺序,即哪些缺陷优先修正,哪些稍后修正 |
6 | 缺陷所属模块 | 缺陷所属的项目和模块,要能较精确的定位至模块 |
7 | 缺陷记录者 | 提交缺陷的人员姓名 |
8 | 缺陷提交时间 | 缺陷提交的时间 |
9 | 缺陷处理人 | 处理缺陷的处理人 |
10 | 处理结果描述 | 对处理结果的描述,描述处理情况和代码修改说明 |
11 | 缺陷处理时间 | 缺陷处理的时间 |
12 | 缺陷验证人 | 对被处理缺陷验证的验证人(回测者) |
13 | 验证结果描述 | 对验证结果的描述(通过、不通过) |
14 | 缺陷详细描述 | 缺陷的重现步骤 |
15 | 缺陷环境说明 | 对测试环境的描述 |
16 | 必要的附件 | 如涉及到附件的或错误现象的图片等。 |
6.2、软件缺陷分类——缺陷状态
编号 | 缺陷状态 | 描述 |
---|---|---|
1 | 提交(Submited) | 已提交的缺陷 |
2 | 打开(Open) | 确认“提交的缺陷”,等待处理 |
3 | 拒绝(Rejected) | 拒绝“提交的缺陷”,不需要修复或不是缺陷、重复缺陷、无法重现 |
4 | 修复(Resolved) | 缺陷被修复 |
5 | 关闭(Closed) | 确认修复的缺陷,将其关闭 |
6 | 推迟(Later) | 可在以后解决,但要确定修复日期或版本 |
6.3、软件缺陷分类——优先级
优先级别 | 描述 |
---|---|
5-Urgent | 最高优先级。在这个错误影响下,系统几乎不可用。 |
4-VeryHigh | 高优先级。错误对这套系统的能力产生严重的影响。 |
3-High | 中优先级。如果这个错误存在与系统中,会制约开发和测试的活动的进行,如果先前没有修复它,那么需要在发布前修复它。 |
2-Medium | 低优先级。不会延迟发布,但是会在以后修正这个错误。 |
1-Low | 最低优先级。时间和资源允许时修正。 |
6.4、软件缺陷分类——BUG类型
缺陷类型 | 内容说明 | 备注 |
---|---|---|
系统缺陷 | 1.由于程序所引起的死机,异常退出 2.程序死循环 3.程序错误,不能执行正常工作或重要功能,使系统崩溃或资源不足 |
不能执行正常工作或重要功能,使系统崩溃或资源不足 |
数据缺陷 | 1.数据计算错误 2.数据约束错误 3.数据输入、输出错误 |
严重地影响系统要求或基本功能的实现,且没有办法更正(重新安装或重新启不属更正方法) |
数据库缺陷 | 1.数据库发生死锁 2.数据库的表、缺省值未加约束条件 3.数据库连接错误 4.数据库中的表有过多的空字段 |
|
接口缺陷 | 1.数据通信错误 2.程序接口错误 |
|
功能缺陷 | 1.功能无法实现 2.功能实现错误 |
严重地影响系统要求或基本功能的实现,但有合理的办法更正(重新安装或重新启动不属更正方法) |
安全性缺陷 | 1.用户权限无法实现 2.超时限制错误 3.访问控制错误 4.加密错误 |
|
兼容性缺陷 | 与需求规定配置兼容性不符合 | |
性能缺陷 | 1.未达到预期的性能目标 2.性能测试中出错,导致无法继续进行测试 |
|
界面缺陷 | 1.操作界面错误 2.打印内容、格式错误 3.删除操作未给出提示 4.长时间操作未给出提示 5.界面不规范 |
操作者不方便或遇到麻烦,但不影响执行工作功能的实现 |
建议 | 1.功能建议 2.操作建议 |
建议性的改进要求 |
7、缺陷严重程度划分
1、表面错误
2、影响独立模块、断断续续的问题、特定条件才发生、与产品要求不一致
3、功能点没有实现、数据丢失
4、5、 每个公司严重程度划分不同,有的分5级有的就4级,只要影响了系统或者出现了严重的计算错误,我们就设置4或5级别