#yyds干货盘点# 软件测试的定义
  7M0vcdGauhIx 2023年11月02日 31 0

1973年,Bill Hetzel给出了软件测试的第一个定义:“软件测试就是为了程序能够按预期设想运行而建立足够的信心”。这个定义强调的是证实程序按预期运行,当软件测试这种技术手段发现程序能够如此时,建立信心的目的也就达到了,当然在测试发现程序不能按预期运行时,就意味着程序有错误,需要排除发现的错误再重新测试。这个定义后来被许多人认为是在为软件“证真”,意思是当测试通过时,“证明”了软件是“对的”。

上述定义受到一些人的质疑,这些人认为, 测试本身有局限性,测试通过并不能证明软件是对的,而且测试的目的不应该是去证明软件正确。这种观点的代表人物Glenford J. Myers于1979年给出了软件测试的一个新定义:“测试是为了发现错误而执行一个程序或者系统的过程”。这个定义强调测试目的是发现错误,因此后来被一些人称为是对软件“证伪”。这种观点的支持者甚至认为不能发现软件错误的测试不是“好的”测试,因此软件测试应当竭尽所能去发现尽可能多的错误。上面两种定义看似观点相反,实则是从不同角度看待软件测试。他们都希望软件能够正常按预期执行,而要做到这点一定是软件中的错误越少越好,只是那个年代关注的焦点是软件中的错误,没有现代的软件质量意识。实际上,这两个定义至今仍然有一定价值。

1983年,IEEE在软件工程术语标准中给出了软件测试的定义:“使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差异”。这个定义接近于Hetzel 在1973年的定义,但强调了识别实际结果与预期结果的差异,作为国际组织发布的标准,它对产业界的影响是相当大的,这个定义也规定了在软件工程中的测试活动,对软件测试的理论、方法、技术以及工具进步都有很大促进。

同年,Bill Hetzel对他的第一个软件测试定义进行了修订:“测试是以评价一个程序或者系统的特性或能力为目标的一种活动”。这个定义不再把焦点放在软件的错误上,从现在的共同认识来讲,程序或者系统的特性与能力是软件质量的重要组成部分,因此定义中测试的含义已经包括对软件质量的度量。2014年,IEEE发布了软件工程知识体系SWEBOK3.0,其中将软件测试定义为:“测试是动态验证程序针对有限的测试用例集是否可产生期望的结果”。这是一个最新的定义,关注了测试用例集的有限性特征和对程序是否满足期望结果的验证,但这是一个狭义的定义,只定义了广义软件测试概念中的动态验证,没有包含静态验证及各类评审(如设计、流程、管理、技术、工具选择等)。

不论是哪个时期对软件测试的定义,软件测试的目的实际上是一致的, 这个目的就是“保证软件质量”。​

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
7M0vcdGauhIx