1
面向对象软件工程实践指南
1.2.9 第9章 软件测试

第9章 软件测试

在软件开发过程中以及软件开发完成后,如何验证软件满足了要求,不存在缺陷呢?由于软件系统复杂性和对其他软件、硬件的依赖性,没有办法通过数学证明或者别的技术手段来回答这个问题。在实际软件开发项目中,软件测试是一个不可缺少的环节,它通过将实际输出与预期输出进行审核或者比较,来揭示软件中存在的缺陷,以便开发者进行改进。由于不可能执行所有的情况,因此我们是通过设计一些测试用例希望它们能够揭露尽可能多的软件中存在的缺陷。同时,由于测试的时间和费用有限,也需要认真规划测试过程,使测试达到的效果最好。

另一方面,广义的测试活动不是软件开发后续过程中的一个阶段,测试的对象也不仅是程序本身。测试活动应贯穿于软件开发的整个过程,只有这样,才能更有效率地开发出有质量保障的优质软件系统。尽管测试工作贯穿了软件开发的全过程,但是所谓的“测试阶段”一般都是发生在软件开发生命周期的末期。