一、不论是哪个时期的定义,软件测试的目的实际上是一致的, 这个目的就是“保证软件质量”。
具体来讲就是要保证软件或系统符合相关的法律法规、技术标准和应用需求,降低软件的产品风险及应用风险。这是从宏观的角度来解释测试目的,在软件工程中还有许多具体的测试活动,如不同工程阶段可能要实施的单元测试、集成测试、系统测试、回归测试以及在整个软件生存周期普遍存在的各类验证等,它们会有自己具体的目标,但这些目标最终都是为“保证软件质量”提供支持的。需要指出的是,是否符合应用需求并不是软件测试的唯一目的,测试必须考虑软件对法规的符合性、标准的符合性以及如商务要求等方面的符合性。
二、软件测试的对象是软件,包含程序、数据和文档。如下图所示:
但孤立的软件无法进行全面的测试,特别是动态的测试。大量的测试活动需要支持测试的环境,包括软件的运行环境和测试环境,这一定会涉及除被测对象软件之外的软硬件环境、网络环境、数据环境甚至是应用环境,这些环境不仅对测试提供支持,也会影响到一些测试的结果。对于测试的组织者和实施者,第一需要明确测试对象的边界,第二必须认识到环境对测试的影响,以获得恰当环境下的真实测试结果。