[发明专利]用于标识源代码版本之间的语义区别的方法和装置有效
申请号: | 201410444102.2 | 申请日: | 2014-09-02 |
公开(公告)号: | CN105446723B | 公开(公告)日: | 2018-11-23 |
发明(设计)人: | 林科文;纪金松;张青山;张玉珩 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 酆迅;李峥宇 |
地址: | 美国纽*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 标识 源代码 版本 之间 语义 区别 方法 装置 | ||
本发明涉及用于标识源代码版本之间的语义区别的方法和装置。在本发明的一个实施方式中,提供了一种用于标识源代码版本之间的语义区别的方法,包括:分别获取第一源代码版本的第一调试信息和第二源代码版本的第二调试信息;通过比较所述第一调试信息与所述第二调试信息,确定在所述第二源代码版本中是否存在与所述第一源代码版本中的第一函数相匹配的第二函数;以及基于所述确定的结果标识所述语义区别。在本发明的一个实施方式中,提供了一种用于标识源代码版本之间的语义区别的装置。采用本发明,可以快速并且准确地标识各个源代码版本之间的语义区别。
技术领域
本发明的各实施方式涉及软件开发,更具体地,涉及在软件开发期间用于标识源代码版本之间的语义区别(semantic difference)的方法和装置。
背景技术
随着用户需求的增加,计算机软件的功能也日益复杂。在软件开发周期中,需要频繁地对各个开发阶段中的不同的源代码版本进行测试。回归测试(regression testing)指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码出现错误。作为软件开发的一个重要组成部分,回归测试在整个软件开发过程中占有很大的工作量比重。通常而言,开发人员逐步完成软件设计中的各项功能,并且基于回归测试来确保源代码的正确。
例如,开发人员编写了第一源代码版本,经过测试后发现该第一源代码版本可以实现预期的设计。继而,开发人员可以在该第一源代码版本的基础上继续开发其他功能并完成第二源代码版本。在后续的开发第二版本源代码过程期间将会添加新的代码,并且还可能会修改第一源代码版本中的已经通过测试的已有代码。
在针对第二源代码版本进行测试时,可能会发现第二源代码版本中引入了在第一源代码版本中不存在的新问题。例如,第一源代码版本可以通过某些测试用例(test case)的测试,然而,第二源代码版本不能通过这些测试用例的测试。此时则需要比较第一源代码版本和第二源代码版本之间的区别,以便发现并排除在开发第二源代码版本期间引入的错误。
然而,开发过程可能会涉及到复杂的过程,例如,开发人员可能会加入新的代码行、删除现有代码行、修改现有代码行等,这些修改可能会在两个源代码版本之间引入语义区别(即,可能会导致运行结果的不同)。另外,开发人员还有可能会调整代码行/函数在源代码中的顺序(例如,交换两个代码行/函数的位置)、替换变量(variable)名/函数名等。尽管从文本角度看来,上述这些修改将会在两个源代码版本之间引入文本区别,然而对于编程语言的编译和执行而言,这些文本区别并不会对运行结果产生影响,因而在查找新引入的错误时,可以仅关注于语义区别而忽略文本区别。
目前已经提出了在回归测试中用于辅助查找各个源代码版本之间的区别的技术方案,然而这些技术方案主要基于分析各个版本之间的文本区别来实现。这些技术方案会将原本不会对程序的运行结果产生任何影响的文本修改标识为区别,造成开发人员不得不在所标识的大量区别中人工地寻找真正对运行结果产生影响的语义区别。
因而,如何快速并且准确地标识出各个源代码版本之间的语义区别,成为目前的一个研究热点。
发明内容
因而,期望开发一种能够标识不同源代码版本之间的语义区别的技术方案。期望该技术方案可以忽略不同源代码版本之间的文本区别,而仅标识各个版本之间的语义区别,以便于开发人员可以快速定位开发期间被修改的导致程序产生不同运行结果的内容,进而找到可能引起错误的代码行。
在本发明的一个实施方式中,提供了一种用于标识源代码版本之间的语义区别的方法,包括:分别获取第一源代码版本的第一调试信息和第二源代码版本的第二调试信息;通过比较第一调试信息与第二调试信息,确定在第二源代码版本中是否存在与第一源代码版本中的第一函数相匹配的第二函数;以及基于确定的结果标识语义区别。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410444102.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种信息检索方法及系统
- 下一篇:承载点到多点伪线业务的方法和装置