一种代码自动化校验方法和系统技术方案

技术编号:17779620 阅读:19 留言:0更新日期:2018-04-22 08:05
本发明专利技术公开了一种代码自动化校验方法和系统。本方法为:1)服务器接收客户端发送过来的题目信息及代码;其中,每一题目设置若干得分点和对应的测试脚本;2)服务器根据收到的题目信息对收到的对应代码进行检测,判断该代码中的各得分点信息与对应的设定值是否匹配,并根据匹配结果给出对应的分值;3)服务器运行该代码,并根据运行结果给出对应的分值;然后根据匹配结果对应的分值和运行结果对应的分值确定该代码的得分。本发明专利技术不仅能自动完成校验、数据处理、显示(输出),而且更好地利用资源,将繁琐的任务自动化,还可以解决执行一些手工校验困难或不可能进行的检验。

【技术实现步骤摘要】
一种代码自动化校验方法和系统
本专利技术属于计算机软件
,涉及一种代码自动化校验方法和系统。
技术介绍
自动检测技术已经得到广泛应用,其不仅能够减轻工作人员工作压力,而且可以减少人们对检测结果有意或无意的干扰,避免受到主观因素影响。然而现有的代码校验方法都是人工校验,纯手工浪费人力,且经常包含人的主观因素并非客观。人工校验存在的问题:基于人工校验的信息,经常包含人的误差影响,校验特点:对未通过测试的代码自动进行重复测试,从而有效减少误差,提高测试效率,降低对服务器资源的请求次数,减轻服务器压力。
技术实现思路
针对现有技术中存在的技术问题,本专利技术的目的在于提供一种代码自动化校验方法和系统。本专利技术的技术方案为:一种代码自动化校验方法,其步骤包括:1)服务器接收客户端发送过来的题目信息及代码;其中,每一题目设置若干得分点和对应的测试脚本;2)服务器根据收到的题目信息对收到的对应代码进行检测,判断该代码中的各得分点信息与对应的设定值是否匹配,并根据匹配结果给出对应的分值;3)服务器运行该代码,并根据运行结果给出对应的分值;然后根据匹配结果对应的分值和运行结果对应的分值确定该代码的得分。进一步的,所述客户端设置一防作弊系统,用于检测客户端的鼠标坐标数据是否超出编辑器窗口;如果超出一次,则视为一次作弊并将所述代码的输入过程中产生的作弊次数发送给所述服务器。进一步的,所述服务器根据该代码对应的作弊次数、匹配结果对应的分值和运行结果对应的分值确定该代码的得分。进一步的,所述运行结果包括运行时间、运行占用的内存、运行出错的次数;根据所述运行结果中的各项信息与对应预期值进行比较给出对应的分值。进一步的,根据匹配结果给出对应的分值的方法为:判断该代码中的方类名,法的名称、方法的返回值以及方法的返回值类型是否与对应的设定值匹配,对于匹配的项给出对应的分值。一种代码自动化校验系统,其特征在于,包括客户端和服务器;其中,所述客户端,用于接收用户根据题目信息输入的代码,并将题目信息及代码发送给服务器;其中,每一题目设置若干得分点和对应的测试脚本;所述服务器,用于根据收到的题目信息对收到的对应代码进行检测,判断该代码中的各得分点信息与对应的设定值是否匹配,并根据匹配结果给出对应的分值;以及用于运行该代码,并根据运行结果给出对应的分值;然后根据匹配结果对应的分值和运行结果对应的分值确定该代码的得分。本专利技术主要具有以下优点:1、通过反射字节码读取配置文件,根据客户端和服务器定义一种交互协议,从而进行识别检测程序,保证了检测正确性。2、在考试系统的程序检测中,通过重复检测得分点,有效的减小程序误差。本专利技术不仅能自动完成校验、数据处理、显示(输出),而且更好地利用资源,将繁琐的任务自动化,还可以解决执行一些手工校验困难或不可能进行的检验。本专利技术可以解决同时支持任何规模的考试,系统对于数据的录入的问题,体现教学的双边性和互动性的问题;智能检测系统减少了老师改卷过程中的人力成本、提升了教学本质。附图说明图1为本专利技术核心业务逻辑图;图2为被测学员的输出代码检测流程图;图3为本专利技术的系统架构图。具体实施方式为使本专利技术的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。一:检测系统架构分析1、采用C/S技术结构,加入网页前端技术,题目通过网页来实现,但主要业务逻辑在服务器端(Server)实现。这样就大大简化了客户端载荷。2、减轻了系统维护与升级的成本和工作量,完全适应网络控制和移动控制需求。二:本专利技术的系统框架如图3所示,其包括人机交互系统、远程服务器系统、控制系统、客户端自动化验证装置、检测系统和防作弊系统。本专利技术核心业务逻辑如图1所示。控制系统:自动检测系统的核心,由云端服务器组成。它是在检测程序的作用下,对代码的每一步骤进行控制。本专利技术的方法流程如下:1:先用kotlin语言根据试题的内容,通过IO流写入的方式,来生成模版文件,模版文件的作用是让学生在此基础上进一步编写代码。2:基于开源的IDEA来改写编辑器,使它可以限制学员编写代码的区域;但是并不能限制鼠标的范围。3:对学员根据题目设定编写的代码进行编译运行得到结果。4:执行根据题目设定的测试脚本,比对结果的正确性。5:将比对信息展示给学员。防作弊系统:用户进入考试界面后,实时检测学员考试系统,判断学员鼠标是否移出考试系统。一旦鼠标移出考试系统三次,视为作弊。在编辑器里面鼠标是有一个坐标数据,如果坐标数据超出编辑器窗口矩形的范围。认为移出一次。人机交互系统:实现学员和服务器的双向通信。学员用键盘向服务器输入信息,服务器将检测结果及操作提示等有关信息送到显示器显示。检测系统:自动检测系统是进行性能检测和故障诊断的。检测程序完成人机交互、仪器管理和驱动、检测流程控制、检测结果的报表显示等,具体在第三条详述。三:检测系统:检测被测学员的输出代码,如图2,该方法步骤包括:1、记录学员编写代码。分析学员代码输出,学员通过人机交互系统在电脑客户端,根据题目信息进行代码输入,然后会直接把代码提交给服务器,服务器就能接收学员所有信息,并进行数据库的持久化操作。2、通过反射字节码自动检测程序,确定得分点。反射字节码自动检测:学员提交完成代码输出之后,服务器收到提交信息会根据题目要求对代码自动检测,本专利技术对每一个题目都会设定若干得分点,比如方法的名称、方法的返回值类型、方法的执行结果和对应的设定值是否相匹配,会对每个得分点的分数进行权重划分,最终会作为程序的得分。得分点是指,学员的任何一段程序本专利技术都会限定类名和方法名分别叫什么,如果学员编写的类名和方法名字与对应得分点的设定值不匹配,则直接会被判错误。3、每一得分点会对应不同的分数比重,进行综合评分。公式:max(F*10+R*60+T*10+D*10+M*10-min(C*10,30)-min(E*10,30),0)=得分;其中:F:方法的名称,符合规范得10分,符合规范是指所有的方法名称全部匹配,只要有一个不匹配,就不得分;R:方法的返回值,如果正确说明程序的逻辑无误,得60分;T:方法的返回值类型,返回值类型正确即得10分;D:程序运行时间,如果运行时间符合期望值,则得10分;M:程序运行占用的内存,如果占用内存符合期望值,则得10分;C:作弊的次数,作弊一次扣10分,最多纪录3次作弊;E:程序运行出错的次数,出错一次扣10分,最多纪录3次错误。得分:各项指标之和减去作弊和出错扣去的分,就是最后的得分,最小为0分。4、程序代码执行完毕,检测结果分析处理和输出显示生成检测报告。学生使用本专利技术系统编写代码,编码过程中的代码提示,编译运行结果,评分机制,报表生成机制都是一体化自动化执行的,不需要学员进行额外的操作,学员只需要根据题目进行编写代码。5、收集分析被检测对象行为数据,将没有通过检测的错误案例,按照规范生成数据,存到数据库。行为数据:学生编码的作弊数据,运行结果数据,代码实现的行数,代码执行的时长。作弊数据:一旦检测到作弊数据即在本地进行数据库存储。运行结果数据:学生代码运行完毕之后,将结果数据进行本地数据库存储。代码实现的行数:读取代码文件,根据回车换行符的数量,计算代码共有多少行,然后进行本地数据库存储。代码执本文档来自技高网...
一种代码自动化校验方法和系统

【技术保护点】
一种代码自动化校验方法,其步骤包括:1)服务器接收客户端发送过来的题目信息及代码;其中,每一题目设置若干得分点和对应的测试脚本;2)服务器根据收到的题目信息对收到的对应代码进行检测,判断该代码中的各得分点信息与对应的设定值是否匹配,并根据匹配结果给出对应的分值;3)服务器运行该代码,并根据运行结果给出对应的分值;然后根据匹配结果对应的分值和运行结果对应的分值确定该代码的得分。

【技术特征摘要】
1.一种代码自动化校验方法,其步骤包括:1)服务器接收客户端发送过来的题目信息及代码;其中,每一题目设置若干得分点和对应的测试脚本;2)服务器根据收到的题目信息对收到的对应代码进行检测,判断该代码中的各得分点信息与对应的设定值是否匹配,并根据匹配结果给出对应的分值;3)服务器运行该代码,并根据运行结果给出对应的分值;然后根据匹配结果对应的分值和运行结果对应的分值确定该代码的得分。2.如权利要求1所述的方法,其特征在于,所述客户端设置一防作弊系统,用于检测客户端的鼠标坐标数据是否超出编辑器窗口;如果超出一次,则视为一次作弊并将所述代码的输入过程中产生的作弊次数发送给所述服务器。3.如权利要求2所述的方法,其特征在于,所述服务器根据该代码对应的作弊次数、匹配结果对应的分值和运行结果对应的分值确定该代码的得分。4.如权利要求1所述的方法,其特征在于,所述运行结果包括运行时间、运行占用的内存、运行出错的次数;根据所述运行结果中的各项信息与对应预期值进行比较给出对应的分值。5.如权利要求1所述的方法,其特征在于,根据匹配结果给出对应的分值的方法为:判断该代码中的方类名,法的名称、方法的返回值以及方法的返回值类型是否与对应的设定值匹配,对于匹配的项给出对应的分值。6.一种代码自动化校验...

【专利技术属性】
技术研发人员:马伟奇张泽华肖琦唐杨
申请(专利权)人:江苏传智播客教育科技股份有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1