苍穹一栗,星辰大海,时间的流动是人类测量事物变化的标尺,万事万物皆有始有终。“起源”一词象征着一件事物的诞生,也恒定了它本身的意义,今天我们就来浅谈软件测试的起源与发展!
探寻存在的意义是人类永恒的使命
起源
也许有些人会问“为什么要去了解软件开发的起源?”因为存在的意义和开始的初心对于人类很重要!这就像每一个孩子都会问爸爸妈妈自己是从哪来的,就像科学家不断探索我们人类存在的意义!只有知道了“我们”是谁,从哪来,来了要干嘛,我们才能向正确的道路进发!
一不小心上升到了哲学的高度,现在言归正传,软件开发的起源到底是什么呢?1972年,软件测试领域的先驱Bill Hetzel博士(代表论著《The Complete Guide to Software Testing》),提出了对软件测试的定义:“就是建立一种信心,认为程序能够按预期的设想运行。为表明软件正确而进行测试!1979年Glenford J. Myers(代表论著《The Art of Software Testing》)提出了对软件测试的定义:“测试是为发现错误而执行的一个程序或者系统的过程。测试的目的是寻找错误,并且是尽最大可能找出最多的错误。
Myers还给出了与测试相关的三个重要观点,那就是:
1、测试是为了证明程序有错,而不是证明程序无错误;
2、一个好的测试用例是在于它能发现至今未发现的错误;
3、一个成功的测试是发现了至今未发现的错误的测试;
软件测试的诞生
1983年Bill Hetzel博士将定义修订为:“评价一个程序和系统的特性或能力,并确定它是否达到预期的结果。软件测试就是以此为目的的任何行为。在设计规定的 环境下运行软件的功能,将其结果与用户需求或设计结果相比较,如果相符则测试通过,如果不相符则视为Bug。这一过程的终极目标是将软件的所有功能在所有设计规定的环境全部运行,并通过。
软件测试定义发生了改变,测试不单纯是一个发现错误的过程,而且将测试作为软件质量保证(SQA)的主要职能,包含软件质量评价的内容。测试是以评价一个程序或者系统属性为目标的任何一种活动。测试是对软件质量的度量。 所以到现在软件测试也有了行业标准(IEEE/ANSI),“使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别”。这个定义明确指出:软件测试的目的是为了检验软件系统是否满足需求。它再也不是一个一次性的,而且只是开发后期的活动,而是与整个开发流程融合成一体。