1.词法和语法分析
(1)获取信息
l 可以获取软件组成的重要基本因数,如变量标识符、过程标识符、常量等
l 组合获取的基本因数,可以得到软件的基本信息,如:
v 标号交叉引用表:列出各模块中出现的全部标号及标号的属性,模块以外的全局、计算标号
v 变量交叉引用表:列出变量定义及引用信息,变量的属性,变量类型(全局、局部)
v 子程序、宏和函数表:列出各个子程序、宏及函数的属性,输入、输出参数信息
v 等价表:列出在等价语句和等值语句中出现的全部变量和标号
v 常数表:列出全部数字常数和字符常数
(2)作用
l 直接从表中查出说明/使用错误,如标号交叉引用表、变量交叉引用表
l 为用户提供辅助信息,如子程序、宏和函数表、等价表、常数表
l 用来做错误预测和程序复杂度计算,如操作符和操作数的统计表
2.静态错误分析
用于确定在源程序中是否有某类错误或‘危险’结构,包括以下几种:
(1) 类型和单位分析
对源程序的类型进行检查,为了强化检查效果,扩充一些新的数据类型,进行静态预处理程序,分析程序中的类型错误
(2) 引用分析
l 对程序中变量的引用进行检查,发现引用异常错误(如变量在定义前被引用,变量定义后未被引用)。
l 采用深度优选的方法遍历程序流图的每一条路径
l 建立引用异常的探测工具,包括变量定义表和变量引用表
(3) 表达式分析
对表达式进行分析,以发现和纠正在表达式出现的错误,如:
l 在表达式中不正确的使用了括号造成错误
l 数组下标越界错误
l 除数为零
l 浮点数计算的误差(最复杂)
(4) 接口分析
接口一致性是程序的静态错误分析和设计分析共同研究的题目,接口分析主要对下内容时进行一致性的分析:
l 各模块之间接口一致性
l 模块与外部数据库的接口一致性
l 形参与实参在类型,数量,顺序,维数,使用上的一致性
l 全局变量和公共数据区在使用上的一致性
3.程序插桩技术
(1) 概述
在动态测试中,是一种基本的测试手段,有广泛的应用
主要借助向程序中插入操作,来实现测试目的的方法(即向源程序中添加一些语句(也称探测器),实现对程序语句的执行、变量的变化等情况进行检查)
(2) 设计时考虑的问题
l 明确要探测哪些信息
l 在程序的什么部位设置探测点
l 需要设计多少个探测点
(3) 探测点设置位置(以Fortran为例)
l 程序块的第一个可执行语句之前
l entry语句的前后
l 有标号的可执行语句处
l 循环语句之后
l 条件语句之后
l logical if语句之后
l call语句之后
l go to语句之后
(4) 断言语句
在程序中的特定部位插入某些用以判断变量特性的语句,使得程序执行中这些语句得以证实,从而使程序的运行特性得到证实,我们把这些插入的语句称为断言语句。
更多资讯,请访问南昌软件测试培训学校