微信扫码,实时沟通
微信
企业微信,扫码沟通
企微

用户服务热线

什么是软件缺陷和软件故障

IEEE国际标准729中软件缺陷的定义——软件缺陷就是软件产品中所存在的问题,最终表现为用户所需要的功能没有完全实现,不能满足或不能全部满足用户的需求。

从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、误差等各种问题。
从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。

软件失败的术语

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

软件缺陷反应了软件开发过程中需求分析、功能设计、用户界面设计、编程等环节所隐含的问题。软件缺陷的表现形式有多种,不仅体现在功能的失效方面,而且体现在其他方面,例如:

设计不合理,不是用户所期望的风格、格式等

部分实现了软件某项功能
实际结果和预期结果不一致
系统崩溃,界面混乱
数据结果不正确,精度不够
存取时间过长,界面不美观

由于软件开发人员思维上的主管局限性,且目前开发的软件系统都具有相当的复杂性,决定了在开发过程中出现软件错误是不可避免的。引起软件缺陷的原因比较复杂,来源于方方面面,有软件自身的问题,也有沟通的问题,还有技术问题等。主要因素有:

在需求定义时,用户或产品经理在产品功能上还没有想清楚
当一个产品在做出来之前,在设想过程中,很难构想得很完美
需求分析、系统设计时,相关方不能准确的表达自己的意见,沟通之间也会存在误解,特别是技术人员和用户、市场人员的沟通存在较大的困难
沟通不充分,或在多个环节沟通以后信息容易失真,误差会不断放大
软件设计规格说明书中有些功能不可能或无法实现
系统设计存在的不合理性,难以面面俱到,容易忽视某些质量特性要求
复杂的程序逻辑处理不当,数据范围的边界考虑不够周全,容易引起程序出错
算法错误或没有进行优化,从而造成错误、精度不够或性能低下
软件模块或组件多,接口参数多,配合不好,容易出现不匹配的问题
异常情况,一时难以想到某些特别的应用场合,如时间同步、大数据量和用户的特别操作等
其他认为错误,文字写错、数据输入出错、程序敲错等

缺陷的由来

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