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