由于软件开发人员思维上的主观局限性,且目前开发的软件系统都具有相当的复杂性,决定了在开发过程中出现软件错误是不可避免的,软件过多的或严重的错误会导致程序或系统的失效。软件错误产生的主要原因有:
· 需求规格说明书(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中对软件缺陷下了一个标准的定义。
. 从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题。
. 从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。
文章来源于领测软件测试网 https://www.ltesting.net/