表面看来,软件测试的目的与软件工程所有其他阶段的目的都相反。
软件工程的其他阶段都是“建设性”的:软件工程师力图从抽象的概念出发,逐步设计出具体的软件系统,直到用一种适当的程序设计语言写出可以执行的代码。
但是,在测试阶段测试人员努力设计出一系列测试方案,目的却是为了“破坏”已经建设好的软件系统——竭力证明程序中有错误,不能按照预定要求正确工作。
但这种反常仅仅是表面的,或者说是心理的。暴露问题并不是软件测试的最终目的,发现问题是为了解决问题,测试阶段的目标是尽可能多的发现并排出软件中潜在的错误,最终把一个高质量的软件系统交给用户使用。
软件测试目标:
- 测试是为了发现程序中的错误而执行程序的过程。
- 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。
- 成功的测试是发现了至今为止尚未发现的错误的测试。
测试方法:
- 黑盒测试(功能测试):完全考虑程序的内部结构和处理过程,只检查程序功能是否按照规格说明书的规定正常使用,程序是否能适当的接收输入数据并产生正确的输出信息,程序运行过程中能否保持外部信息的完整性。
- 白盒测试(结构测试):测试者完全知道程序的结构和处理算法,检测程序中主要执行通路是否是否能够按预定要求正确工作。
测试步骤:
- 模块测试
- 子系统测试
- 系统测试
- 验收测试
- 平行运行