首页> 中文会议>第十六届全国软件与应用学术会议 >基于动态测试的语义等价API函数检测方法

基于动态测试的语义等价API函数检测方法

摘要

市场上出现了大量诸如MFC、JDK等体量庞大、使用广泛的API库.这些API代码库的出现大幅减少了重复性的软件开发工作,也提高了软件的质量.但是API函数数量巨大而且在持续演化,因此程序员很可能在不知情的情况下重复实现了某些API的功能.相较于经过广泛使用的API函数,这些语义等价的函数往往在性能、可靠性、可扩展性等方面都有一定的差距.因此,自动检测此类函数并及时替换为等价API函数具有重要意义.现有的克隆代码(函数)检测方法是通过比较源代码的文本相似性以识别克隆函数,因此它们难以检测功能相同但实现不同的函数代码.为此,提出了一种基于动态测试的方法以判定某个静态方法是否与现有API语义等价,进而判定是否需要进行替换.基于两个给定的函数自动生成测试用例.通过运行生成的测试用例可判定这两个函数是否语义等价.基于测试的语义等价函数检测方法通常需要较高的时间复杂度,因此将给定静态函数m与所有API函数都进行动态测试对比将导致极高的运行开销.为此,对于给定的方法m,我们基于语法和文本相似性对海量API进行过滤,只筛选出少量API函数进行测试对比,从而大幅降低动态测试的运行开销.本文提出的方法在10个开源项目上进行了实验验证.实验结果表明该方法是有效的,其准确率高达93.3%.

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号