天天看点

#yyds干货盘点# 软件测试的定义

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

上述定义受到一些人的质疑,这些人认为,

测试本身有局限性,测试通过并不能证明软件是对的,而且测试的目的不应该是去证明软件正确。这种观点的代表人物Glenford J.

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

继续阅读