首页  ·  知识 ·  测试
静态分析工具
佚名  本站原创  综合  编辑:dezai  图片来源:网络
静态分析程序不需要执行所测试的程序,它扫描所测试程序的正文,对程序的数据流和控制流进行分析。然后送出测试报告。通常,它具有以下几类功能:&nb
静态分析程序不需要执行所测试的程序,它扫描所测试程序的正文,对程序的数据流和控制流进行分析。然后送出测试报告。通常,它具有以下几类功能:
    (1)对模块中的所有变量,检查其是否都已定义,是否引用了未定义的变量,是否有已赋过值但从未使用的变量。实现方法是建立变量的交叉引用表。
    (2)检查模块接口的一致性。主要检查子程序调用时形式参数与实际参数的个数、类型是否一致,输入输出参数的定义/使用是否匹配、数组参数的维数、下标变量的范围是否正确,各子程序中使用的公用区(或外部变量、全局变量)定义是否一致等等。
    (3)检查在逻辑上可能有错误的结构以及多余的不可达的程序段。如交叉转入转出的循环语句,为循环控制变量赋值,存取其他模块的局部数据等。
    (4)建立“变量/语句交叉引用表”、“子程序调用顺序表”、“公用区/子程序交叉引用表”等。利用它们找出变量错误可能影响到哪些语句,影响到哪些其他变量等。
    (5)检查所测程序违反编程标准的错误。例如,模块大小、模块结构、注释的约定、某些语句形式的使用,以及文档编制的约定等。
    (6)对一些静态特性的统计功能:各种类型源语句的出现次数,标识符使用的交叉索引,标识符在每个语句中使用的情况,函数与过程引用情况,任何输入数据都执行不到的孤立代码段,未经定义的或未曾使用过的变量,违背编码标准之处,公共变量与局部变量的各种统计。
    静态分析工具的结构一般由四部分组成:语言程序的预处理器、数据库、错误分析器和报告生成器。预处理器把词法分析与语法分析结合在一起,以识别各种类型的语句。源程序被划分为若干程序模块单元(如主程序与一些子程序),同时生成包含变量使用、变量类型、标号与控制流等信息的许多表格。有些表格是全局表,它们反映整个程序的全局量信息,如模块名、函数及过程调用关系、全局量等。有些表格是局部表,它们对应到各个模块,记录模块中的各种结构信息,如标号引用表、分支索引表、变量属性表、语句变量引用、数组或记录特性表等。中国自学编程网整理发布所有表格都存入数据库。不少测试工具有专门设计来存放各种信息的数据库,通常以命令语言的形式来作为查询语言。也有使用商用数据管理系统的。错误分析器在用户指导下利用命令语言或查询语言与系统通信进行查错。并把检查结果造表输出。 本文作者:佚名 来源:本站原创
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读