【摘要】 本发明属程序测试中的路径测试通过引入数学上“基”的概念来定义程序控制流基路径的概念,首先使用编译器模块获得表示源程序片程序结构的数据结构,然后通过遍历该数据结构,使用控制流路径生成算法生成基于基路径的程序控制流路径子集编译器模块对被测试源程序进行语义解释,输出表示被测程序控制流结构信息的抽象语法树结构控制流图邻接矩阵生成模块遍历抽象语法树结构,生成程序流图的邻接矩阵表示控制流路径子集生成模块通过遍历邻接矩阵获得被测程序控制流信息,采用深度优先多次回溯的方式遍历邻接矩阵并对语句节点进行处理,生成基于基路径的程序控制流路径子集本方法在生成结果和流程上有突出优势,可广泛用于软件结构性测试的路径覆盖测试工程实践中。。 【专利类型】发明授权 【申请人】四川大学 【申请人类型】学校 【申请人地址】610064 四川省成都市一环路南一段24号 【申请人地区】中国 【申请人城市】成都市 【申请人区县】武侯区 【申请号】CN200810045139.2 【申请日】2008-01-09 【申请年份】2008 【公开公告号】CN101216803B 【公开公告日】2010-06-16 【公开公告年份】2010 【授权公告号】CN101216803B 【授权公告日】2010-06-16 【授权公告年份】2010.0 【IPC分类号】G06F11/36 【发明人】李志蜀; 金虎; 王莉; 孙继荣; 陈宇; 郑燕妮; 李宝林 【主权项内容】一种基于基路径的测试程序控制流路径子集生成方法,其特征在于:在编译器模块、控制流图邻接矩阵生成模块和控制流路径子集生成模块三模块中完成测试程序控制流路径子集的生成:首先将被测试源程序片的控制流路径定义为具有长度和方向属性的向量,则特定程序片断的控制流路径集合以及其上可以施加的向量操作便组成了一个向量空间,其存在必定存在一个基路径集合,使用编译器模块获得包含源程序片程序结构信息的数据结构,然后通过遍历该数据结构使用控制流路径生成算法生成基于基路径的程序控制流路径子集,其具体的方法是:使用编译器模块对被测试源程序进行处理,用以对被测试源程序进行语义解释,将被测试源程序与控制流路径生成的测试计算引擎联系起来,形成合理的足以表示被测程序控制流信息的数据结构——抽象语法树(AST),编译器模块输出此结构供控制流图邻接矩阵生成模块处理;处理流程进入控制流图邻接矩阵生成模块,该控制流图邻接矩阵生成模块遍历抽象语法树结构,按照语句是否具有条件跳转语义或无条件跳转语义分别调用条件跳转语句处理函数和无条件跳转处理函数进行处理并生成程序流图的邻接矩阵表示供控制流路径子集生成模块进行后续操作;控制流路径子集生成模块通过遍历邻接矩阵获得被测程序控制流信息,采用深度优先多次回溯的方式遍历邻接矩阵,跟踪并记录程序控制流的执行到的语句节点,并对该信息进行处理,生成基于基路径的程序控制流路径子集。 【当前权利人】四川大学 【当前专利权人地址】四川省成都市一环路南一段24号 【专利权人类型】公立 【统一社会信用代码】121000004000091949 【引证次数】4.0 【他引次数】4.0 【家族引证次数】4.0 【家族被引证次数】48