1、软件缺陷的定义

软件缺陷是指存在于软件(程序、数据、文档)中的那些不符合用户需求的问题。

  • 软件未达到需求规格说明书表明的功能
  • 软件出现了需求规格说明书指明不会出现的错误
  • 软件的功能超出了需求规格说明书指明的范围
  • 软件未达到需求规格说明书虽未指明而应该达到的目标
  • 软件测试人员认为软件难以理解、不易使用、运行速度慢、或者最终用户认为不好 ``` 示例: 计算器说明书一般声称该计算器将准确无误地进行加、减、乘、除运算。如果测试人员或用户选定了两个数值后,随意按下 了“+”号键,结果没有任何反应。 软件未达到软件需求规格说明书表明的功能

若在进行测试时,发现除了规定的加、减、乘、除功能之外,还能够进行求平方根的运算,而这一功能并没有在说明书的功 能中规定。 软件的功能超出了软件需求规格说明书指明的范围

若在测试过程中发现,因为电池没电而导致了计算不正确,但软件需求规格说明书未能指出在此情况下应如何进行处理。 软件未达到软件需求规格说明书未指明而应该达到的目标

假如计算器说明书指明计算器不会出现崩溃、死锁或者停止反应,而在用户随意按、敲键盘后,计算器停止接受输入或没有 了反应。 软件出现了软件需求规格说明书指明不会出现的错误

测试人员或最终用户发现计算器某些地方不好用,比如,按键太小、显示屏在亮光下无法看清等。 软件测试人员认为软件难以理解、不易使用、运行速度慢,或者最终用户认为不好 ```

2、软件缺陷的表现形式

  • 功能、特性没有实现或部分实现。
  • 设计不合理,功能特性不明确,逻辑不清楚或存在矛盾。
  • 产品实际结果和所期望的结果不一致。
  • 没有达到需求规格说明书所规定的性能指标等。
  • 运行出错,包括运行中断、系统崩溃、界面混乱等。
  • 数据不正确、精度不够、不完整或格式不统一。
  • 用户不能接受的其他问题,如存取时间过长、界面不美观。
  • 硬件或系统软件上存在的其他问题

    3、软件缺陷产生的原因

    软件缺陷产生是不可避免的,造成软件缺陷产生的原因主要归纳如下:

  • 需求解释或者记录错误

  • 用户需求定义错误
  • 设计说明存在错误
  • 编码说明、程序代码有误
  • 硬件或者软件系统上存在错误
  • 其他,如文档错误、内容不正确或拼写错误

    1. ![图片.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、软件修复的费用

    图片.png

    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级别