[发明专利]一种基于支持向量机的测试程序抄袭检测方法在审
申请号: | 201910055791.0 | 申请日: | 2019-01-18 |
公开(公告)号: | CN111459788A | 公开(公告)日: | 2020-07-28 |
发明(设计)人: | 陈振宇;孙伟松;孙泽嵩;王兴亚;段定 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06K9/62 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 210093 江苏省南京市*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 支持 向量 测试 程序 抄袭 检测 方法 | ||
本发明涉及一种基于支持向量机的测试程序抄袭检测方法。该方法对于待测程序和测试程序进行切割和静态分析,得到待测方法映射集合和测试方法映射集合;其次,两两遍历选手,计算测试片段相似度并汇总得到相似度集合;然后,选取合适的核函数和参照点建立支持向量机模型,并进行优化;最后,对于其他测试程序,通过计算相似度集合并输入支持向量机,判断测试程序之间抄袭情况。本发明目的在于填补关于测试程序代码相似度检测技术的空白,提高了检测测试程序代码抄袭的准确率和精度,从而帮助开发者测试竞赛自动化检测选手的代码抄袭行为,从而免去了人工检测环节,节约了人力成本和时间成本,也保证了竞赛更加公平公正。
技术领域
本发明属于软件测试代码抄袭检测领域,尤其对于目前开发者测试竞赛中选手所提交的测试代码存在抄袭的现象做到了更精准的解决。在分析待测程序和测试程序后,通过引入支持向量机方法,在已有的测试代码数据集上进行模型训练、测试、验证和优化。然后,对未标记的测试代码数据进行分类。通过分析测试代码所属类别即可判断测试代码之间是否存在抄袭,从而免去了人工检测环节,节约了人力成本和时间成本,也保证竞赛更加公平公正。
背景技术
软件开发者在编写代码的过程中,从不同的源头复制并粘贴代码,并通过修改来达到自己的目的已经成为一种常见的行为,这提高了软件代码编写的效率,也同时避免了花费过长的时间在前人已经完成的思路和代码上。不过,在某些场合下,复制和粘贴代码会引发意想不到的后果,例如可能会侵犯软件版权等等。在开发者测试竞赛中,也有选手通过拷贝、粘贴代码,然后对他人代码进行一定量的修改来提高自己的分数。为了防范这样的行为,测试程序抄袭检测不可或缺。
对于单元测试的测试用例代码相似性检测,目前学术界和工业界都没有较为成熟的应用或工具。并且,由于参赛选手往往只复制粘贴几个测试用例的代码,不同的单元测试用例之间是完全独立的,不像源码之间有依赖;而参赛选手还会对测试用例的代码进行一定量的修改(例如,修改字面量、插入和删除一条或几条语句),使得使用目前已有的源码相似性检测工具直接进行的测试用例的代码相似性检测往往不能真正地反映测试代码抄袭情况,影响代码克隆、抄袭检查器等工具的分析准确率。
支持向量机在解决小样本、非线性及高维、超高维模式识别问题中有一定的优势。它采用基于分类边界的方法,将低维空间的点映射到高维空间,使它们成为线性可分,能够处理非线性特征的相互作用。
对此,本发明提出一种基于支持向量机的测试程序抄袭检测方法。本发明的基本思想为:将测试代码切割为片段,判断每一个测试代码片段所对应的待测方法,计算对应同一待测方法片段所对应的测试代码片段相似度。并以测试代码片段相似度及“是否抄袭”的结果作为输入,通过支持向量机,对其他测试代码进行“是否抄袭”标签认定的二分类,从而提高抄袭检测准确率。
通过该方法,在更高准确率和精度的抄袭检测基础上,可以帮助开发者测试竞赛自动化检测选手的代码抄袭行为,从而免去了人工检测环节,节约了人力成本和时间成本,也保证了竞赛更加公平公正。
发明内容
本发明通过提供一种基于支持向量机的测试程序抄袭检测方法,来提高检测测试程序代码抄袭的准确率和精度,填补了关于测试程序代码相似度检测技术的空白。
为达成上述目标,本发明通过首先静态分析的方法,分析源测试程序切各位待测程序PUT(Program Under Test)、分析选手提交的测试程序TP(Test Program),然后将TP中的每一个片段分类并计算其相似度SV(Similarity Value)。然后将SV和“是否抄袭”的标签作为支持向量机的输入,对其他测试代码进行“是否抄袭”标签认定的二分类。
具体而言,该方法包含下列步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910055791.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于机器学习的测试抄袭检测方法
- 下一篇:多维度人群特征测定方法