基于软件测试的目标,站在不同的立场,有两种完全不同的观点。从用户的角度出发,用户普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可以接受该产品;那么从软件开发者的角度来说,他们希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确的实现了用户的要求,确立人们对软件质量的信心。
由于,一个软件产品不可能完全正确,没有bug,如果只是为了表明软件产品中不存在错误,那么这样的软件测试对于软件质量的提高和功能的完善没有任何的帮助。所以,归根到底,软件测试就是为了发现软件产品中错误和缺陷,然后软件开发人员对错误和缺陷进行修复,提高软件的质量,最后提交一个满足用户需求的软件产品。
《软件测试艺术》中有这样的观点:
- 软件测试是程序的执行过程,目的在于发现错误
- 测试是为了证明程序有错,而不是证明程序无错误
- 一个好的测试用例在于能发现至今未发现的错误
- 一个成功的测试是发现了至今未发现的错误的测试