为了保证软件的质量和可靠性,人们力求在分析、设计等各个开发阶段结束之前,对软件进行严格的技术评审。但即使如此,由于人们本身能力的局限性,审查还不能发现所有的错误和缺陷。而且在编码阶段还会引进大量的错误。这些错误和缺陷如果在软件交付后且投入性运行之前不加以排出的话,在运行中迟早会暴露出来。
软件测试的目的与软件工程所有其他阶段的目的都相反。软件工程的其他阶段都是“建设性”的:软件工程师力图从抽象的概念出发,逐步设计出具体的软件系统,直到用一种适当的程序设计语言写出可以执行的程序代码。但是,在测试阶段测试人员努力设计出一系列测试方案,目的却是为了“破坏”己经建造好的软件系统——竭力证明程序中有错误,不能按照预定要求正确工作。
同学们已经明确了软件测试的重要性,接下来让我们系统学习软件测试的主要方法。