软件缺陷的定义和种类

发表于:2009-06-18来源:作者:点击数: 标签:缺陷种类定义软件
由于软件 开发 人员思维上的主观局限性,且目前开发的软件系统都具有相当的复杂性,决定了在开发过程中出现软件错误是不可避免的,软件过多的或严重的错误会导致程序或系统的失效。软件错误产生的主要原因有: · 需求 规格说明书(requirement specl矗c吐ion

      由于软件开发人员思维上的主观局限性,且目前开发的软件系统都具有相当的复杂性,决定了在开发过程中出现软件错误是不可避免的,软件过多的或严重的错误会导致程序或系统的失效。软件错误产生的主要原因有:

    ·  需求规格说明书(requirement specl矗c吐ion或fundional specification)包含错的 需求、或漏掉一些需求,或没有准确表达客户所需要的内容。

    ·  需求规格说明书中有些功能不可能或无法实现。

    ·  系统设计(system design)中的不合理性。

    ·  程序设计中的错误。

    ·  程序代码中的问题,包括错误的算法、复杂的逻辑等。

    ·  若能及早排除软件开发中的错误,有效地减少后期工作可能遇到的问题,就以

    尽町能地避免付Hj高昂的代价,从而大大提高系统开发过程的效率。

    根据GJ Myers观点,对软件测试的目的可以简单地概括为:

    ·  软件测试是为了发现错误而执行程序的过程。

    ·  一个好的测试能够在第一时间发现程序中存在的错误。

    ·  一个好的测试是发现了至今尚未发现的错误的测试。

    他指出“软件测试足为了发现错误而执行程序的过程”,而更多专家认为软件测试的范围应当更为广泛,除了要考虑测试结果的正确性以外,还应关心程序的效率、可适用性、维护性、可扩充性、安全性、可靠性、系统性能、系统容量、可伸缩性、服务可管理性、兼容性等等因素。随着人们对软件测试更广泛,深刻的认识,可以说对软件质量的判断决不只限于程序本身,而是整个软件研制过程。 不管怎么定义软件测试,基本的结论足一致的,即软件测试是为了发现软件产品所存在的任何意义上的软件缺陷(bug),从而纠正(fix)这些软件缺陷,使软件系统更好地满足用户的需求。那么,什么是软件缺陷呢?

    软件缺陷的定义和种类

    对于软件存在的各种问题,我们都用“软件缺陷”这个词,在英文中人们喜欢用个不贴切但已经专用的词“bug(臭虫)”,实际和“缺陷(bug)”词相近的词还有很多·如

  缺点(defeet)    偏差(variance)

  谬误(fault)    失败(failure)

  问题(problem)    矛盾(inconsistency)

  错误(error)    毛病(incident)

   但大家都习惯使用“bug—一软件缺陷”这个词,它包含了一些偏差、谬误或错误,更多地表现在功能上的失败(failure)和实际需求的不一致,即矛盾(inconsistency)。

    软件缺陷(bug),即计算机系统或者程序中存在的任何一种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷、瑕疵。缺陷会导致软件产品在某种程度上不能满足用户的需要。在IEEEl983 ofIEEE Standard 729中对软件缺陷下了一个标准的定义。

    .  从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题。

    .  从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。

   

原文转自:http://www.ltesting.net