了解一个行业的发展、由来对于一个想要将这个行业做到足够深入非常重要,能够驱使这个行业更好的向前发展,逐步走向下一个成熟阶段。
下图为参考<<质量全面管控 从项目管理到容灭测试>>一书,所做软件测试发展图示:
纵观上图,软件测试伴随着软件的产生,发展至今已经历大半个世纪,就目前国内大多数企业对它的认识来说,大多公司的软件开发过程应该还是比较混乱,软件测试可能仍然并不被那么看重,且没有规范的测试流程、规范。所以,整个测试行业的发展仍然任重道远。
可以看出,任何时代任何新生事物的产生都需要由这个行业杰出的精英们来做先驱者,开创这个行业,定义一些基础理论。而Bill Hetzel就是软件测试行业的先驱者。
Bill Hetzel:
1972年在美国的北卡罗来纳大学组织了历史上的第一次正式的关于软件测试的会议。
在1973年赋予软件测试这样的定义:"建立一种信心,认为程序能够按预期的设想运行"。
在1983年将软件测试的定义重新修订为:"评价一个程序或系统的特性或能力,并确定他是否达到预期的结果。软件测试就是以此为目的的验证过程。"
后来有了"质量"的概念,重新定义了软件测试的概念:"测试是以评价一个程序或者系统属性为目标达到任何一种活动。测试是对软件质量的度量"
从上述的过程可以看出,软件测试的定义在不断的趋向准确、成熟,它的工作范畴从最初的发现Bug到控制软件的质量风险。
Bill Hetzel的核心思想是:测试方法是试图验证软件是"工作的"。所谓"工作的"是指软件的功能是按照预先的设计执行的,以正向思维,针对软件系统的所有功能点,逐个验证其正确性。
当一项事物正值发展阶段,人人对它其实都没有太确定的一个所谓正确的认知,但人人都有自己的看法,所以,Bill Hetzel对软件测试的定义,很显然遭到了业界的质疑(任何新事物的发生就是需要这样,有碰撞才能找到真理)。代表者Glenford J.Myers认为:"测试是为发现错误而执行的一个程序或者系统的过程"。
二者对【测试】的【目的】的定义有很大不同:
Bill Hetzel认为 测试是功能验证的过程。
Glenford J.Myers认为 测试是为了验证软件是有错误的。
Glenford J.Myers的这一观点曾一度在业界很流行,受到很多学术界专家的支持。当然也带来一定的后果。如2008年之前有相当多的企业就是这样考核测试人员的,指标就是Bug数量,而不关注软件本身的质量。很多企业将测试人员的奖金和Bug数量挂钩,成为考核测试人员的标准。
总体来讲,第一类测试(测试是功能验证的过程)可以简单抽象地描述为这样的过程:在设定的环境下运行软件的功能,将测试结果与用户需求相比较,如果相符则测试通过,如果不相符则视为Bug。这个过程的终极目标是将软件的所有功能在所有设定的环境中全部运行并通过。在软件测试行业中把第一类方法奉为主流和行业标准。第一类测试方法以需求为本,因此有利于界定测试工作的范畴,更便于部署测试的侧重点,加强针对性。这一点对于大型软件的测试,尤其是在有限的时间和人力资源的情况下显得格外重要。
第二类测试方法(测试是为了验证软件是有错误的)与需求和设计没有必然的关联,更强调测试人员发挥主观能动性,用逆向思维方式,不断思考开发人员理解的误区、不良的习惯、程序代码的边界、无效数据的输入及系统的各种弱点,试图破坏系统、摧毁系统,目标就是发现系统中的各种各样的问题。这种方法往往能够发现系统中存在的更多缺陷。
1983年,IEEE提出的软件工程术语中给软件测试的定义是:"使用人工或自动的手段来运行或测试某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清楚预期结果与实际结果之间的差别"。这个定义明确指出软件测试的目的是为了检验软件系统是否满足需求,它再也不是一个一次性的或只是开发后期的活动,而是与整个开发流程融合为一体。
联系客服