一个很古老的话题
每一本书都会有自己的解释,无论作者有多少的测试体会
每一个人都会有自己的觉悟,而不论有多少的经验
民间的包括所谓官方的(IEEE),如果你愿意,可以在网络上都到成千上万也不同的说法。
软件测试的目的到底是什么?
相信每一个步入测试领域的人都曾经问过或者想过这样的问题
这个问题也曾在我学习的过程中困扰了我许久许久。
最终,至少在理论上我们可以找到这样的答案:
软件测试的目的在于通过各种手段来验证需求的正确性
软件测试的目的在于尽早的发现bug。
但是实际的测试中,我们发现,我们测试的目的其实是两者兼有的。
如果说测试的目的在于验证需求的正确性,没有什么不对。验证的方法也多种多样,比如静态/动态的测试,比如通过性和破坏性测试,比如黑盒测试和白盒测试,比如手动测试和自动化测试。
只不过,验证需求的正确性作为目的话似乎也不全面。原因在于:
1、发行bug一定程度上可以激发测试人员的测试积极性。在很多的公司,也是考核测试人员绩效的一个很重要的数据。
2、用最少的测试用例,在最短的时间内发现迄今为止没有发现出来的bug,特别是对系统影响深远的bug对于一个产品的成败有着很大的意义,对于客户的修复成本也有重要的意义。如果仅仅因为验证需求,有一些潜在的问题就不会有人有那么大的兴趣去挖掘。最终的结果就会导致,测试的质量在某种程度上难以保证。
但是发行bug也绝对不是软件测试的唯一目的。其道理很简单。一味的强调bug的重要性,发行bug作为测试的唯一目的势必导致测试人员盲目的为了发行defect而偏离了测试的重心。
所以软件测试的目的应该是双方面的,通过各种手段验证软件的需求,并且尽早的发现bug以促使软件得到尽快的修复。
首先,保证了第一方面,验证软件的需求,可以保证测试的覆盖率,客户关注的功能可以不被忽视。尽早的发现和发行bug,可以促使问题可以得到早日的解决,对于客户来说,也可以节约大量的修复成本。
测试之路,路漫漫,其修远兮,吾将上下而求索......
版权声明:本文出自 tengmy 的51Testing软件测试博客:http://www.51testing.com/?47068
原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。