IEEE国际标准729中软件缺陷的定义——软件缺陷就是软件产品中所存在的问题,最终表现为用户所需要的功能没有完全实现,不能满足或不能全部满足用户的需求。
  1. 从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、误差等各种问题。
  2. 从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。
软件失败的术语

缺点 偏差
故障 失败
问题 矛盾
错误 特殊
事件 缺陷
异常
故障、失败和缺点,指确实严重的情况,甚至是危险的情况。
异常、事件、和偏差,不是那么尖锐,主要指未按预期的运行,而且不是说全部失败。
问题、错误和缺陷,是常用的术语

软件缺陷反应了软件开发过程中需求分析、功能设计、用户界面设计、编程等环节所隐含的问题。软件缺陷的表现形式有多种,不仅体现在功能的失效方面,而且体现在其他方面,例如:
  1. 设计不合理,不是用户所期望的风格、格式等
  2. 部分实现了软件某项功能
  3. 实际结果和预期结果不一致
  4. 系统崩溃,界面混乱
  5. 数据结果不正确,精度不够
  6. 存取时间过长,界面不美观
由于软件开发人员思维上的主管局限性,且目前开发的软件系统都具有相当的复杂性,决定了在开发过程中出现软件错误是不可避免的。引起软件缺陷的原因比较复杂,来源于方方面面,有软件自身的问题,也有沟通的问题,还有技术问题等。主要因素有:
  1. 在需求定义时,用户或产品经理在产品功能上还没有想清楚
  2. 当一个产品在做出来之前,在设想过程中,很难构想得很完美
  3. 需求分析、系统设计时,相关方不能准确的表达自己的意见,沟通之间也会存在误解,特别是技术人员和用户、市场人员的沟通存在较大的困难
  4. 沟通不充分,或在多个环节沟通以后信息容易失真,误差会不断放大
  5. 软件设计规格说明书中有些功能不可能或无法实现
  6. 系统设计存在的不合理性,难以面面俱到,容易忽视某些质量特性要求
  7. 复杂的程序逻辑处理不当,数据范围的边界考虑不够周全,容易引起程序出错
  8. 算法错误或没有进行优化,从而造成错误、精度不够或性能低下
  9. 软件模块或组件多,接口参数多,配合不好,容易出现不匹配的问题
  10. 异常情况,一时难以想到某些特别的应用场合,如时间同步、大数据量和用户的特别操作等
  11. 其他认为错误,文字写错、数据输入出错、程序敲错等
缺陷的由来

在Ron Patton编写的《软件测试》一书中,大多数软件缺陷并非源自编程错误,导致软件缺陷最大的原因是产品说明书,其次是设计。
产品说明书成为造成软件缺陷的罪魁祸首有不少原因。在许多情况下,说明书没有写、不够全面、经常更改,或者整个开发小组没有很好的沟通。

posted on 2021-01-23 21:08  li7  阅读(479)  评论(0编辑  收藏  举报