模糊测试

  ● 模糊测试是黑盒法中的一种,其执行过程为:向产品有意识地进行无效输入以期望触发错误条件或引起产品的故障。

  ● 模糊测试为形象的说法是:测试过程要做的是站在后面向目标投掷石头,等待玻璃被打破的声音。这个意义而言,模糊测试可被归结为黑盒测试。

  ● 若我们对产品内部有所了解,可以让石头每次的飞行路线更直接并且更真实。因此,模糊测试也可以应用在灰盒测试中。

  ● 按测试步骤划分,有单元测试、集成测试、系统测试。

  → 单元测试:也称模块测试。测试的对象是设计的小单位-功能模块。单元测试的依据是详细设计描述,对模块内所有表达功能/性能的节点设计测试用例,以便发现模块内部的错误。单元测试主要发现详细设计阶段产生的错误。

  → 集成测试:又称联合测试也称组装测试,它是对由各模块组装而成的产品进行测试,主要检查模块间的接口和通信。

  → 系统测试:是把软、硬件和环境连在一起全面的测试,检查系统的功能、性能及其他特征是否与用户的需求一致,它是以需求规格说明书作为依据的测试。系统测试又可细分为功能测试、容量测试、压力测试、使用性测试、安全性测试、性能测试、可靠性测试、恢复测试、强度测试、文档测试以及工序测试。

  划分测试的种类并不重要,重要的是,一定要把测试看成是产品设计全生命周期持续不断而不是阶段性的工作。

  测试方法的选择

  有一种观点认为:

  ● 在单元测试阶段采用白盒法;

  ● 在集成测试阶段采用灰盒法;

  ● 在系统测试阶段采用黑盒法。

  测试覆盖范围

  ● 正确性测试:测试用例中的测试点应首先保证要至少覆盖需求规格说明书中的各项功能。

  ● 健壮性测试:正确信息输入将产生预期输出, 非法信息输入将导致相应提示或错误处理,而不至于系统/模块崩溃。

  ● 容错性测试:测试系统/产品的功能单元、接口间出现异常的情况下系统的保护性处理,以及异常结束后系统功能性能的恢复处理。

  ● 可靠性测试:测试系统/产品在实际应用环境下可保证性能功能有效性的能力。

  ● 压力测试:测试在大信息量处理情况下的系统/产品正常工作的能力。

  ● 回归测试:测试上一轮测试所发现缺陷的解决及对系统的潜在影响。

  软件测试与硬件测试

  ● 软件测试:软件不涉及制造加工,因此软件测试的目的仅仅是验证设计的正确性。

  ● 硬件测试:除了验证设计正确性以外,还要包括制造的准确性,或者一致性测试。

  当我们只考虑验证设计正确性的话:

  → 软件测试:发现软件代码语法错误和逻辑错误,衡量软件设计正确性的标准是:软件在某种输入条件下是否按正确时序完成对硬件的操作(如写入/读出寄存器数据)。

  → 硬件测试:发现硬件设计的错误,衡量硬件设计正确性的标准是:硬件系统在某种激励条件下能否保证线路上的信号完整性,即“在需要的时间内信号达到所需要的形状”。

  测试的实施

  实施测试工作的过程为:

  ● 制定测试策略

  ● 测试用例设计

  ● 执行测试用例

  ● 缺陷修复过程

  ● 回归测试