软件缺陷

  • 软件缺陷的定义
  • 软件缺陷的表现形式
  • 软件缺陷产生的原因
  • 软件缺陷的根源
  • 软件缺陷的费用
  • 软件缺陷的信息

软件缺陷的定义

  • IEEE 1983 of IEEE Stardard 729中软件缺陷做了一个标准的定义:
  • 从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。
  • 因此软件缺陷就是软件产品中所存在的问题,最终表现为用户所需要的功能没有完全实现,没有满足用户的需求。

缺陷不是bug,缺陷包含bug,缺陷的范围更大。

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

  • 软件未达到需求规格说明书表明的功能
  • 软件出现了需求规格说明书指明的范围
  • 软件的功能超出了需求规格说明书指明的范围
  • 软件未达到需求规格说明书虽未指明而应该达到的目标
  • 软件测试人员认为软件难以理解、不易使用、运行速度慢、或者最终用户认为不好

示例中的的软件功能超出软件需求规格说明书的范围,挺好玩的,写需求文档的人太难了,写多了不对,也少了也不对。[捂脸…]

软件缺陷的表现形式

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

啊啊啊,只能说产品经理好难啊!用户就是上帝,不满意了或者有问题了就是软件缺陷。性能指标啦,格式要统一啦,硬件上一些问题啊,总之有问题就是不对。。。。。这些不需要死记硬背哦,理解就行。

软件缺陷产生的原因

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

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

这里的原因:拼写错误。例如:登录和登陆???
选哪个??

登录游戏!!!(是不是很多人经常拼写错误?登陆是上岸的意思哈)

软件缺陷的根源

交流不充分

  • 客户与开发人员、开发人员与测试人员等

软件的复杂性

  • 功能复杂、开发复杂、测试复杂

开发人员的错误理解

  • 对需求的理解、开发压力、能力与经验

需求的变化

  • 需求说明书、设计文档、程序的变更

进度压力

  • 项目周期比较紧

可能这里开发人员更容易出现问题。

软件缺陷的费用

所以需求规格说明书很关键!

软件缺陷的信息

为了便于缺陷的定位、跟踪和修改,要对所发现的缺陷,按照缺陷的严重程度、优先级、发现阶段、修复阶段、缺陷的性质、所属功能模块、系统环境等方面进行分类和统计。

软件缺陷分类----缺陷状态

编号 缺陷状态 描述
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类型还有很多,这里不举例了,了解就行。

有问题请联系我~

软件缺陷(定义+表现形式+优先级+信息+产生原因),看完这篇文章就懂了相关推荐

  1. 深度剖析:Redis分布式锁到底安全吗?看完这篇文章彻底懂了!

    ‍‍‍‍‍‍‍‍‍‍‍‍阅读本文大约需要 20 分钟. 大家好,我是 Kaito. 这篇文章我想和你聊一聊,关于 Redis 分布式锁的「安全性」问题. Redis 分布式锁的话题,很多文章已经写烂了 ...

  2. 深度剖析:Redis 分布式锁到底安全吗?看完这篇文章彻底懂了!

    作者 | Kaito 来源 | 水滴与银弹 阅读本文大约需要 20 分钟. 大家好,我是 Kaito. 这篇文章我想和你聊一聊,关于 Redis 分布式锁的「安全性」问题. Redis 分布式锁的话题 ...

  3. 还不了解什么是商业智能(BI)?看完这篇文章就懂了

    随着新一代信息化.数字化技术和应用的飞速发展,各行各业都开始掀起了新一轮的科技革命和产业革命,这也反过来加快了信息化.数字化在社会各方面的传播速度,扩大了影响力.这种情况下,作为第五大生产要素的数据得 ...

  4. 什么是HTML,看完这篇文章就懂了

    本文创建于2020年8月,以下为正文: 在这互联网发达的21世纪,HTML作为网络的通用语言,一种简单.通用的全置标记语言,你竟然还没有掌握? HTML是什么 1.超文本标记语言(Hyper Text ...

  5. java使用原始套接字技术进行数据包截获_Linux零拷贝技术,看完这篇文章就懂了...

    本文讲解 Linux 的零拷贝技术,云计算是一门很庞大的技术学科,融合了很多技术,Linux 算是比较基础的技术,所以,学好 Linux 对于云计算的学习会有比较大的帮助. 为什么需要零拷贝 传统的 ...

  6. 触摸传感器的电路图符号_如何看懂汽车电路常用图形符号,看完这篇文章就懂了...

    汽车电器的电原理图主要由各种单元电路组成,各单元电路又由各种元器件根据不同功能的需要组合而成.因此,要想轻松看懂汽车电器电路图,首先要认识电路图中各种元器件(零部件)的符号并懂得一些与其有关的基本知识 ...

  7. 微信支付怎么取消短信服务器,微信支付绑定了别人信息,如何解除绑定?看完这篇文章就会了!...

    原标题:微信支付绑定了别人信息,如何解除绑定?看完这篇文章就会了! 现在微信支付的使用率已经非常的高,随之而来的是微信支付的使用率也在不断提高.或许很多人都遇到过,别人的微信绑定了自己的卡,或是自己微 ...

  8. Dart语言基础,看完这篇文章就够了(二)

    文章内容是我在学习Flutter过程中对知识点的梳理和总结.如有不对的地方,欢迎指出. 本文承接Dart语言基础,看完这篇文章就够了(一),进一步了解Dart语法知识. 文章目录 1 流程控制语句 2 ...

  9. 看完这篇文章,你的Python基础就差不多了(附571集精品教程)

    学一门语言贵在坚持用它,不用就淡忘了,而记录下一篇文章也有助于日后快速回忆.全文分为两大部分,分别是Python基础语法和面向对象. 入门Python其实很容易,但是我们要去坚持学习,每一天坚持很困难 ...

最新文章

  1. close和SO_LINGER
  2. 160 - 35 cupofcoffe.1
  3. 400位京东技术专家心血之作 《决战618:探秘京东技术取胜之道》重磅发售!
  4. Mybatis源码分析之(五)mapper如何将数据库数据转换成java对象的
  5. JavaScript中的 in 操作符
  6. Studio启动的时候报错 Could not install Gradle distribution from
  7. caj格式转pdf的3种方法
  8. BottomNavigationView动态添加MenuItem
  9. python中的encode_python的decode()与encode()详解
  10. Spring Boot-配置
  11. STM32 I2S学习(一)
  12. JavaScript 每日一题---LeetCode 2.两数相加
  13. RTOS系列(12):使用SVC或PendSV启动OS流程详细分析
  14. 如何比较两个速度的大小地程序_58安居客小程序平台化与多小程序开发探索与实践...
  15. css3 实现十字光标和光标外圆圈环绕
  16. Android运用手机多媒体
  17. M1 ARM版miniforge安装与移除TensorFlow和pytorch环境
  18. Python之Split函数
  19. python语法基础知识第四关第二题_Python基础语法习题二
  20. 执行npm run build的时候报错怎么办?

热门文章

  1. Grafana图标嵌入第三方系统及可选择四种模式(kiosk)
  2. 联盟链电子保函 变色龙哈希函数
  3. C#读取srt字幕格式文件显示字幕
  4. 基于Java的网上商城系统
  5. linux 禁用usb驱动程序,如何使用musb_hdrc Linux驱动程序断开特定的USB设备?
  6. Rust+官方APP使用教程
  7. 白嫖画师原作训练Stable Diffusion引正主不满:未经同意,说用就用?
  8. Android移动应用技术打地鼠小游戏(简单App实现)——学习成果
  9. Python快速上手攻略
  10. AARRR模型分析方法