首页 理论教育 解析软件缺陷及其影响

解析软件缺陷及其影响

时间:2023-06-27 理论教育 版权反馈
【摘要】:如今软件缺陷之多,是令人难以置信的。直到现在,微软公司仍在定期的推出操作系统的补丁,用于修复发现的已知缺陷。据报道,Windows95操作系统大约由1 500万行代码组成。假定每行代码包含一个语句,那么Windows95的潜在缺陷大约在200多万个。根据琼斯规则5,Windows95的200多万个缺陷大约需要进行18轮测试才能把缺陷数量降到5 000个。产品说明书有时也称为需要规格说明书,它是软件开发小组的一个协定。

解析软件缺陷及其影响

如今软件缺陷之多,是令人难以置信的。据计算机业界媒体报道,微软公司Windows98操作系统在推出的时候,改正了Window95操作系统的5 000多个缺陷。直到现在,微软公司仍在定期的推出操作系统的补丁,用于修复发现的已知缺陷。软件越来越庞大,越来越复杂,缺陷是难以避免的。

据报道,Windows95操作系统大约由1 500万行代码组成。假定每行代码包含一个语句,那么Windows95的潜在缺陷大约在200多万个。每个软件在出厂之前都需要经过大量的测试。根据琼斯规则5,Windows95的200多万个缺陷大约需要进行18轮测试才能把缺陷数量降到5 000个。乐观估计,即使一轮测试耗费1个月时间,18轮测试也需要一年半的时间。如果要把缺陷降到个位数,那么总共需要进行42轮测试,需耗费时间三年半。因此,测试和修复缺陷的成本很高。

在为软件缺陷下定义之前,首先需要了解一个辅助性的术语:产品说明书(product specification)。产品说明书有时也称为需要规格说明书,它是软件开发小组的一个协定。产品说明书对开发的产品进行定义,并且给出产品的细节、如何做、做什么、不能做什么。

现在给软件缺陷下一个相对确切的定义:软件缺陷是指软件中不符合用户需求的问题,只有至少满足下列5种类型之一才能称作发生了一次软件缺陷。

(1)没有完全实现功能;

(2)出现了指明不应该出现的错误

(3)实现了用户不需要的功能;

(4)未实现产品说明书中未明确提及但应该实现的功能;

(5)基本实现了用户需要的功能,但是运行时会出现一些功能或性能上的问题。(www.xing528.com)

为了更好地理解每一种类型的软件缺陷,下面逐条解释。

第1种类型,比如用户需要软件能够实现A、B和C三个功能,最终软件实现的是A和B功能,却不能实现C功能,这就可以看成一个缺陷。

第2种类型,用户要求软件不会崩溃、锁死或停止响应,但在某些条件下软件仍会出现这些错误,那这也可以看成一个缺陷。

第3种类型,用户需要软件能够实现A、B和C三个功能,但软件实现了A、B、C和D四个功能,那么这个多余的D功能就是一个软件缺陷。

第4种类型,这种类型主要是为了捕获那些产品说明书上的遗漏之处。举个例子,在使用手机的时候,会发现电池在即将没电的时候导致无法进行语音通话、上网。没有人会考虑到这种情况下手机会如何反应,而是想当然地假定电池一定都是充了电的。测试时要考虑到让手机持续工作直到电池完全没电或者出现电力不足的提醒。电力不足而无法进行语音通话和上网,但在产品说明书里未指出这个问题,那么这就属于第4种类型的缺陷。

第5种类型,比如某些软件实现了用户的所有需求,但在运行的时候经常报错,系统死机,应用无响应等就属于这一类型的缺陷。再比如某门户网站要求首页必须要在5~9 s内打开,但实际的打开时间平均在10 s秒左右,这同样属于第5种类型的缺陷,而且属于性能上的缺陷。

在现实的工作中,发现缺陷,记录缺陷并且最终关闭缺陷都是司空见惯的,而关于一个现象是否为缺陷的问题,往往成为开发人员和测试人员争论的焦点,这就需要根据缺陷的定义和具体的软件环境来判断。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈