java程序代码相似度检测软件

java程序代码相似度检测软件,第1张

Sonar 在看一篇资料时http://www.darkmi.com/man/SpringSide3/,注意到的

Sonar 是一个集成了搭敬CheckStyle,PMD,Findbugs的渗厅代码校验规则 ,重复代码发现,代码测试覆盖率, 代码注释率,及所有的检测率变化追踪的完美代码质量检查工具。

我也不知喊慎会用这个

是的。

1、手机小程序占屏监测题主提到的:线上摄像头范围小、手机作弊看不到的问题,其实在牛客的在线笔试系统已经被解决啦~在牛客进行在线笔试时,会要求考生手机扫码,关联考试信息,并借用牛客小程序占用手机屏幕。一旦考生退出占屏页面,打开微信、百度等等页面寻找答案,都会被识别并标记作弊~2、代码相似度检测有些应聘技术岗的同学,在笔试答题时可能会想:和同一场笔试的同学写一样的代码、或是在其他候选人代码的基础上稍作修改,这纳型仿样就可以通过了。牛牛租枝告诉你:NO!即使代码不一致、有较高的相似度,牛客后台都能检测并标记作弊(代码抄袭和代码流出考生都检测的到哦)。另外,对IP地址完全一致或相洞纤似的考生,系统也会进行分析,提示考生可能使用同一个宿舍、校园网络进行答题。3、全程录屏,并自动标记微信、搜索行为在牛客网进行在线笔试的时候,需考生全程开启摄像头。考试期间,牛客会接管学生的电脑屏幕,全程监控,并实现对微信、搜索类窗口进行自动标记的功能。HR也可登录后台查看学生的考试情况,进行人工标记。

问题里既然说是代码了,那就可以看到源码了?(我默认)最简单的就是diff一下啦,对策可以改改代码风格,排旦纤版,变量命名,甚至插曲一些无用代码等等。这些只是看起来不同了。另外几位大神的答案,似乎忽略了程序运行时的状况呢,如果程序本身逻辑没变,只是文本和语法上做些处理(忽略lisp之类的奇葩),程序运行起来之后,比较调用堆栈的变化,这种方法很容易识破。你说运行起来比较难的话,那就忽略了测试人员的作用了,把程序/代码段/模块 当成黑盒,通过mock等方式,还是可以一部分一部分搞的。那改变调用层次,函数套函数?甚至某些地方变成宏?模块重构?诸如此类。这就不好识别了。模块都给重构了的话,姑且不算抄了,但是设计上一样的,人工code review,去了解它的设计,还是能识破。首先可以diff一下,然后看运行状态,如谨穗果是差别很大的,看设计,做code review,看文档,如果自己的代码特别多,而人家的祥迟卜代码又拿不到,可以在自己的代码里加些【水印】,比如搞些magic number,运行时去调试,就找这个magic number,有的话,基本就是盗的。计算的话,我觉得评级比较靠谱,列规则,挨个检测,根据规则中q程度评级,完全量化的方法应该很难做到,但是规则+评级 可以糙快猛的构造出一个比较相似度的系统,工程思维哈,不断根据实践,去调整这个系统,让它更接近准确就可以啦~我说的都是土方法,期待学术大神给个系统答案。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8268202.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存