第1章 静态测试

静态测试并不需要运行测试对象,它通过评审或者静态分析的手段检查和测试被测试对象。其主要目的是从规格说明(例如:需求规格说明、设计规格说明)、项目计划或程序代码中发现缺陷和偏差。静态测试的基本思想是预防缺陷,即尽可能早地在缺陷和偏差对将来开发和测试过程产生影响之前识别并解决它们,避免将这些缺陷引入到下一个阶段,从而导致昂贵的返工。同时静态测试的结果和分析可以成功地用于软件质量改进,以及开发过程和测试过程的改进。

静态测试包括评审(人工检查)和静态分析(自动化检查),是一种经常被低估或者被忽略的方法。与动态测试不同,它用阅读或分析替代具体的运行测试对象,即静态测试通过人工或者自动化的方式检查和分析被测对象。

静态测试可以是一个或多个人一起检查文档(评审),或使用特定的工具来检查文档或者代码(静态分析)。软件开发过程中产生的所有文档都可以通过人工方式检查,对遵循特定规则的文档可以通过工具进行静态分析,一般通过自动化方式完成;对于代码,既可以通过评审方式人工检查,也可以通过工具支持的静态分析手段来分析。

评审是静态测试的重要组成部分。通过阅读分析可以检查和评估文档中的问题,具体是通过仔细阅读并尝试理解被检查的文档来完成评审。评审的主要活动是检查工作产品,并对工作产品提出修改意见。

静态分析是静态测试的另一个重要手段,一般通过工具支持的方式进行。静态分析可以根据工作强度、形式、必需的资源(如人员和时间)及不同的目的,进行不同的分类。

与动态测试不同,静态测试通常发现的是软件缺陷,而不是这些缺陷在软件运行时的外部表现,即失效。与动态测试相比,静态测试更容易发现与标准之间的偏差、需求的遗漏和错误、设计的缺陷、软件可维护性差和错误的接口规格说明等问题。