按照测试活动是否执行代码来分类,可以将测试分为如下两种:
一、动态测试
即通常意义上的测试,通过运行软件来发现错误或验证程序是否符合预期要求。动态测试需要执行代码,是通过运行软件开展的测试。关注语句、分支、路径、调用等程序结构的覆盖。
二、静态测试
静态测试不运行软件,只做检查和审核,测试的对象包括需求文档、设计文档、产品规格说明书以及代码等。对各类文档的测试主要通过评审的方式进行,对代码的静态测试采用走查和代码审查方式。静态测试需要对代码进行走查,即阅读代码并分析其是否存在错误。一般是采用人工走查的方式,也可以利用静态分析工具对程序特性进行分析,以发现程序中的逻辑错误和结构性错误。
静态评审包括内部评审和外部评审,内部评审的范围比较广泛,如各个阶段的文档,以及程序的结构、逻辑、过程、算法、接口等等,偏重技术层面;外部评审比较多地体现在对需求和设计文档的评审,不太关心具体的细节和实现技术,外部评审需要用户代表参加,也可以邀请领域专家参加。
静态测试和动态测试都是软件测试的重要组成部分,缺一不可。 如果静态测试做得比较好,会及时发现更多的错误,减少动态测试的压力,降低错误修改的成本,更好地保证软件的质量。