一、软件测试的目标
测试是为了发现程序中的错误而执行程序的过程,好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案,成功的测试是发现了至今为止尚未发现的错误的测试。
二、软件测试准则
■所有测试都应该能追溯到用户需求;
■应该远在测试开始之前就制定出测试计划;
■把Pareto原理应用到软件测试中;
■应该从“小规模”测试开始,并逐步进行“大规模”测试;
■穷举测试是不可能的;
■为了达到最佳的测试效果,应该由独立的第三方从事测试工作。
三、测试方法
黑盒测试(功能测试):
把程序看作一个黑盒子;
完全不考虑程序的内部结构和处理过程;
是在程序接口进行的测试。
白盒测试(结构测试):
把程序看成装在一个透明的盒子里;
测试者完全知道程序的结构和处理算法;
按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按预定要求正确工作。
黑盒测试与白盒测试优缺点比较:

四、测试步骤
1. 模块测试(单元测试)
■保证每个模块作为一个单元能正确运行;
■发现的往往是编码和详细设计的错误。
2. 子系统测试
■把经过单元测试的模块放在一起形成一个子系统来测试;
■着重测试模块的接口。
3. 系统测试
■把经过测试的子系统装配成一个完整的系统来测试;
■发现的往往是软件设计中的错误,也可能发现需求说明中的错误;
■不论是子系统测试还是系统测试,都兼有检测和组装两重含义,通常称为集成测试。
4. 验收测试(确认测试)
■把软件系统作为单一的实体进行测试;
■它是在用户积极参与下进行的,而且可能主要使用实际数据(系统将来要处理的信息)进行测试;
■发现的往往是系统需求说明书中的错误。
5. 平行运行
■同时运行新开发出来的系统和将被它取代的旧系统;
■比较新旧两个系统的处理结果;
■可以在准生产环境中运行新系统而又不冒风险;
■用户能有一段熟悉新系统的时间;
■可以验证用户指南和使用手册之类的文档;
■能够以准生产模式对新系统进行全负荷测试,可以用测试结果验证性能指标。
五、测试阶段的信息流
输入信息有两类:
软件配置:包括需求说明书、设计说明书和源程序清单等;
测试配置:包括测试计划和测试方案。


