1. 软件测试概述
通俗地说,软件测试是为了发现错误而执行程序的过程。
软件测试:根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。
1.1 测试的目的
通俗地说,软件测试是为了发现错误而执行程序的过程。 软件测试的目的绝不是为了证明软件的正确性,而是为了尽可能多地发现软件中的错误、排除错误,从而将一个高质量的软件交付给用户使用。
Grenford J.Myers就软件测试目的提出以下观点:
- 测试是程序的执行过程,目的在于发现错误;
- 一个好的测试用例在于能发现至今未发现的错误;
- 一个成功的测试是发现了至今未发现的错误的测试。
1.2 测试的原则
- 应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。
- 测试用例应由测试输入数据和与之对应的预期输出结果这两部分组成。
- 应由第三方人员从事测试工作。
- 在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。
- 注意测试中的错误群集现象。
- 严格执行测试计划,排除测试的随意性。
- 妥善保存测试计划、测试用例、出错统计和最终分析报告。
1.3 测试的方法
如果已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
如果已知产品的内部工作过程,可以进行测试证明每种内部动作是否按设计规格要求正常进行。
软件测试一般也常用这样的两种方法,前者称为黑盒测试,后者称为白盒测试。
黑盒测试
黑盒测试也称功能测试,是通过测试来检测每个功能是否都能正常使用。
它把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。
白盒测试
白盒测试是对软件的过程性细节做细致的检查,又称为结构测试。
它把测试对象看做一个打开的盒子或透明的盒子,允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。
1.4 测试的步骤
软