[发明专利]一种基于函数调用路径的覆盖率动态跟踪方法及装置有效
| 申请号: | 201310379892.6 | 申请日: | 2013-08-28 |
| 公开(公告)号: | CN103473171A | 公开(公告)日: | 2013-12-25 |
| 发明(设计)人: | 牟永敏 | 申请(专利权)人: | 北京信息科技大学;牟永敏 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 北京远大卓悦知识产权代理事务所(普通合伙) 11369 | 代理人: | 贺持缓 |
| 地址: | 100085 北*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 函数 调用 路径 覆盖率 动态 跟踪 方法 装置 | ||
1.一种基于函数调用路径的覆盖率动态跟踪方法,其特征在于,包括:
步骤1,对被测源代码进行插桩预处理,得到函数对象列表和控制关键字对象列表;
步骤2,获取源代码的函数调用基本路径集;
步骤3,执行测试用例,并运行经步骤1插桩后的源代码,获得由源代码的执行路径的桩点数据流组成的动态路径;
步骤4,根据函数对象列表和控制关键字对象列表提供的信息,对步骤3获得的动态路径进行拆分,得到测试用例所覆盖的函数调用路径子集;
步骤5,将函数调用路径子集与函数调用基本路径集进行匹配,确保函数调用路径子集是属于函数调用基本路径集的子集;
步骤6,将所有函数调用路径子集作为一个动态路径集,优化该动态路径集;
步骤7,计算优化后的动态路径集占函数调用基本路径集的比率,得到覆盖率。
2.根据权利要求1所述的覆盖率动态跟踪方法,其特征在于,所述步骤1具体包括:
步骤11,选择插桩点;
步骤12,设计桩函数,并将桩函数插入到选择的插桩点中;
步骤13,存放插入桩函数后生成的插桩信息,包括函数对象列表信息和控制关键字对象列表信息。
3.根据权利要求2所述的覆盖率动态跟踪方法,其特征在于,所述步骤11具体包括:基于块结构划分源代码,以源代码所包括的每个函数作为一个块结构,再针对每个块结构,将函数起始点、控制逻辑关键字所在点和函数结束点作为插桩点。
4.根据权利要求1所述的覆盖率动态跟踪方法,其特征在于,所述步骤4中对动态路径进行拆分具体包括:
步骤41,分别读入动态路径、函数对象列表及控制逻辑关键字对象列表;
步骤42,将动态路径包含的每个桩点值存放到ArrayList数组里,将函数对象列表和控制逻辑关键字对象列表的信息分别存放到哈希表中;
步骤43,将动态路径里的桩点值分别与函数对象列表和控制关键字对象列表进行比较,根据桩点值类型的不同对动态路径进行不同的拆分处理。
5.根据权利要求1所述的覆盖率动态跟踪方法,其特征在于,所述步骤5中将函数调用路径子集与函数调用基本路径集进行匹配具体包括:
步骤51,将函数调用基本路径集里的函数调用路径存放到ArrayList数组中;
步骤52,遍历ArrayList数组,将函数调用基本路径集里的函数调用路径构建成树形结构;
步骤53,在函数调用基本路径集的树形结构中查找是否存在函数调用路径子集的函数调用路径,当且仅当一个函数调用路径子集中的所有函数调用路径都存在于树形结构中时,该函数调用路径子集能成功匹配函数调用基本路径集,否则匹配不成功,需重新对动态路径进行拆分。
6.根据权利要求1所述的覆盖率动态跟踪方法,其特征在于,所述步骤6中优化动态路径集包括两个方面:一是基于动态路径集本身进行的优化,二是基于动态路径集中的各函数调用路径子集间的包含关系进行的优化;
所述基于动态路径集本身进行的优化具体包括:在将动态路径添加到动态路径集之前,判断动态路径集中是否已存在该条动态路径,若存在,则说明该条动态路径是重复的动态路径,将其舍弃,同时将对应的测试数据也一并舍弃;若不存在,则将该条动态路径添加到动态路径集中;
所述基于动态路径集中的各函数调用路径子集间的包含关系进行的优化具体包括:计算出函数调用基本路径集中的函数调用路径被动态路径覆盖的条数,记为Ti,以及每条动态路径覆盖函数调用路径的条数,记为Ri;挑选出所有必不可少的动态路径,然后从函数调用基本路径集中删除被动态路径所覆盖的函数调用路径,重新计算Ti,Ri的值,迭代执行;当没有必不可少的动态路径时,挑选覆盖函数调用路径最多的动态路径,然后从函数调用基本路径集中删除该条动态路径所覆盖的函数调用路径,重新计算Ti,Ri的值,并再次查看是否有必不可少的动态路径,迭代执行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京信息科技大学;牟永敏,未经北京信息科技大学;牟永敏许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310379892.6/1.html,转载请声明来源钻瓜专利网。





