自动测试绘图程序的方法、装置以及系统制造方法及图纸

技术编号:18940338 阅读:67 留言:0更新日期:2018-09-15 11:02
本申请涉及一种自动测试绘图程序的方法、装置以及系统,其中,自动测试绘图程序的方法,包括步骤:获取待测试程序以及待测试程序对应的标准程序;根据标准程序中的命令在图形容器的第一图层上绘制标准图形;根据待测试程序中的命令在图形容器的第二图层上绘制待测试图形;测评标准图形与待测试图形的图形相似度,并根据图形相似度对待测试程序进行最终判别。本发明专利技术能够实现在线自动判别运行结果为绘图类的程序正确性,评测准确,效率高,同时可适用于大规模的绘图类编程测试、比赛等。

Method, device and system for automatic test drawing program

This application relates to a method, apparatus and system for automatically testing a drawing program, wherein the method for automatically testing a drawing program includes steps: obtaining a standard program corresponding to the program to be tested and a standard program corresponding to the program to be tested; drawing standard graphics on the first layer of a graphic container according to the commands of the standard program; and drawing standard graphics on the first layer of the graphic container according to the pending procedure. The command in the test program draws the graphics to be tested on the second layer of the graphics container, evaluates the graphical similarity between the standard graphics and the graphics to be tested, and finally judges the test program according to the graphical similarity. The method can realize the program correctness of on-line automatic judging that the operation result is a drawing class, the evaluation is accurate, the efficiency is high, and the method can be applied to large-scale drawing class programming test, competition, etc.

【技术实现步骤摘要】
自动测试绘图程序的方法、装置以及系统
本申请涉及程序测试平台
,特别是涉及一种自动测试绘图程序的方法、装置以及系统。
技术介绍
编程教学的普及面越来越大,而编程教育的在线学习、自主学习更需要一种非教师参与的自动测评系统。目前,“onlinejudge”可对传统的编程题结果进行测评,但是使用了图形化教学模式的LOGO、Scratch、goC等语言,与目前传统教学的C/C++、Java以及python等不一样,程序的运行结果一般为图形。在实现过程中,专利技术人发现传统技术中至少存在如下问题:传统的程序测评系统无法自动对绘图类的程序运行结果进行测评,需教师对该类程序进行人工判断,工作量大,且不利于学生自主学习,教学效率低。
技术实现思路
基于此,有必要针对上述技术问题,提供一种自动化程度高且测评准确的一种自动测试绘图程序的方法、装置以及系统。一种自动测试绘图程序的方法,包括以下步骤:获取待测试程序以及待测试程序对应的标准程序;根据标准程序中的命令在图形容器的第一图层上绘制标准图形;根据待测试程序中的命令在图形容器的第二图层上绘制待测试图形;测评标准图形与待测试图形的图形相似度,并根据图形相似度对待测试程序进行最终判别。在其中一个实施例中,还包括图形容器为在HTLM5创建的canvas画布。在其中一个实施例中,测评标准图形与待测试图形的图形相似度,并根据图形相似度对待测试程序进行最终判别的步骤之前,还包括步骤:根据标准图形的图形尺寸,沿第一预设几何图形的边长方向在第一图层中切割出包含标准图形的第一几何区域;根据待测试图形的图形尺寸,沿第二预设几何图形的边长方向在第二图层中切割出包含待测试图形的第二几何区域。在其中一个实施例中,测评标准图形与待测试图形的图形相似度的步骤包括:在标准图形的像素点总个数与待测试图形的像素点总个数的差值在预设范围内时,获取第二几何区域中与标准图形的像素点坐标相同的各第一待匹配像素点;在第一待匹配像素点与对应的标准图形的像素点的颜色不同时,获取以第一待匹配像素点为中心、第一预设半径形成的区域圆内;选取出圆内任一像素点与对应的标准图形的像素点的颜色相同的各区域圆;记录对应选取出的区域圆的第一待匹配像素点的第一总数,并根据记录的第一总数得到图形相似度。在其中一个实施例中,测评标准图形与待测试图形的图形相似度的步骤还包括:在标准图形的像素点总个数与待测试图形的像素点总个数的差值在预设范围内时,获取第一几何区域中与待测试图形的像素点坐标相同的各第二待匹配像素点;在第二待匹配像素点与对应的待测试图形的像素点的颜色不相同时,获取以第二待匹配像素点为中心、第二预设半径形成的区域圆内的像素点;选取出圆内任一像素点与对应的待测试图形的像素点颜色相同的各待测试图形的像素点;记录选取出的各待测试图形的像素点的第二总数,并根据记录的第二总数得到图形相似度。在其中一个实施例中,测试标准图形与待测试图形的图形相似度,并根据图形相似度对待测试程序进行判别的步骤包括:在图形相似度处于预设相似度范围内时,确定标准图形与待测试图形相似,并通过对待测试程序的最终判别。在其中一个实施例中,获取待测试程序以及待测试程序对应的标准程序的步骤包括:根据待测试程序,获取待测试程序对应的测试数据,从测试数据中提取标准程序;测试数据包括测评时限、题目分值以及题目信息。一种自动测试绘图程序的装置,包括:获取模块,用于获取待测试程序以及待测试程序对应的标准程序;第一绘制模块,用于根据标准程序中的命令在图形容器的第一图层上绘制标准图形;第二绘制模块,用于根据待测试程序中的命令在图形容器的第二图层上绘制待测试图形;测评模块,用于测评标准图形与待测试图形的图形相似度,并根据图形相似度对待测试程序进行最终评判。一种自动测试绘图程序的系统,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现自动测试绘图程序的方法中的各步骤。一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现自动测试绘图程序的方法中的各步骤。上述技术方案中的一个技术方案具有如下优点和有益效果:通过获取待测试程序以及对应的标准程序,利用图形容器在第一图层绘制标准图形,在第二图层绘制待测试图形,进而可以将标准图形与待测试图形的图形相似度进行测评,根据测评后的图形相似度对待测试程序进行最终判别。本专利技术各实施例能够实现在线自动判别运行结果为绘图类的程序正确性,效率高,可适用于大规模的绘图类编程测试、比赛等。附图说明图1为一个实施例中自动测试绘图程序的方法流程示意图;图2为一个实施例中自动测试绘图程序的方法切割图形的流程示意图;图3为一个实施例中测评标准图形与待测试图形相似度步骤的第一流程示意图;图4为一个实施例中测评标准图形与待测试图形相似度步骤的第二流程示意图;图5为另一个实施例中对待测试程序评分的流程示意图;图6为另一个实施例中自动测试绘图程序的方法的具体流程示意图;图7为一个实施例中测评标准图形与待测试图形相似度的具体流程示意图;图8为一个实施例中某一标准程序运行得到的标准图形示意图;图9为一个实施例中某一待测试程序运行得到的待测试图形示意图;图10为一个实施例中自动测试绘图程序的装置结构框图;图11为一个实施例中自动测试绘图程序的系统结构图。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。本申请提供的自动测评程序的方法,可以应用于大规模的编程绘图类的教学测试、比赛等场景,尤其是采用LOGO、Scratch、goC等语言的图形化编程教学模式的教学场景。其中,本专利技术能够运行于安装有相应操作系统的计算机或者移动终端,例如windows操作系统的计算机,macOS操作系统的计算机,安卓操作系统的移动终端,并将信息反馈至计算机或者移动终端的显示界面。本专利技术各实施例中的自动测试绘图程序的方法还可在后台服务器上运行完成,再将测试判别结果反馈到前端的web页面或者app页面。尤其在编程教学中,教师判断学生写的程序是否正确是非常重要的环节,应用本专利技术能够实现一种编程绘图类的非教师参与的在线学习、自主学习环境,学生将自己编写的程序上传至例如后台服务器的测试数据库或者本地计算机,后台服务器或者本地计算机根据学生的程序生成待测试图形,根据对应的标准程序生成标准图形,通过待测试图形与标准图形的比对,判别学生的程序正确与否,以及还可以对学生的程序进行评分。在一个实施例中,如图1所示,提供了一种自动测试绘图程序的方法,包括以下步骤:步骤S120:获取待测试程序以及待测试程序对应的标准程序。具体而言,待测试程序以及对应的标准程序可以为LOGO、Scratch或者goC等绘图类编程语言编写的程序,本专利技术的待测试程序和标准程序的运行结果可以为图形类。其中,可以但不局限于通过后台服务器或者本地计算机的方式获取待测试程序以及对应的标准程序。步骤S140:根据标准程序中的命令在图形容器的第一图层上绘制标准图形。具体而言,图形容器为用于绘制图形的组件,且可以添加其他组件形成复合组件。第一图层可为在图形容器中创建的不可见图层,在标准程序运行时,可根本文档来自技高网...

【技术保护点】
1.一种自动测试绘图程序的方法,其特征在于,包括以下步骤:获取待测试程序以及所述待测试程序对应的标准程序;根据所述标准程序中的命令在图形容器的第一图层上绘制标准图形;根据所述待测试程序中的命令在所述图形容器的第二图层上绘制待测试图形;测评所述标准图形与所述待测试图形的图形相似度,并根据所述图形相似度对所述待测试程序进行最终判别。

【技术特征摘要】
1.一种自动测试绘图程序的方法,其特征在于,包括以下步骤:获取待测试程序以及所述待测试程序对应的标准程序;根据所述标准程序中的命令在图形容器的第一图层上绘制标准图形;根据所述待测试程序中的命令在所述图形容器的第二图层上绘制待测试图形;测评所述标准图形与所述待测试图形的图形相似度,并根据所述图形相似度对所述待测试程序进行最终判别。2.根据权利要求1所述的自动测试绘图程序的方法,其特征在于,所述图形容器为在HTLM5创建的canvas画布。3.根据权利要求1所述的自动测试绘图程序的方法,其特征在于,测评所述标准图形与所述待测试图形的图形相似度,并根据所述图形相似度对所述待测试程序进行最终判别的步骤之前,还包括步骤:根据所述标准图形的图形尺寸,沿第一预设几何图形的边长方向在所述第一图层中切割出包含所述标准图形的第一几何区域;根据所述待测试图形的图形尺寸,沿第二预设几何图形的边长方向在所述第二图层中切割出包含所述待测试图形的第二几何区域。4.根据权利要求3所述的自动测试绘图程序的方法,其特征在于,测评所述标准图形与所述待测试图形的图形相似度的步骤包括:在所述标准图形的像素点总个数与所述待测试图形的像素点总个数的差值在预设范围内时,获取所述第二几何区域中与所述标准图形的像素点坐标相同的各第一待匹配像素点;在所述第一待匹配像素点与对应的所述标准图形的像素点的颜色不同时,获取以所述第一待匹配像素点为中心、第一预设半径形成的区域圆;选取出圆内任一像素点与对应的所述标准图形的像素点的颜色相同的各所述区域圆;记录对应所述选取出的区域圆的所述第一待匹配像素点的第一总数,并根据记录的所述第一总数得到所述图形相似度。5.根据权利要求3或4所述的自动测试绘图程序的方法,其特征在于,测评所述标准图形与所述待测试图形的图形相似度的步骤还包括:在所述标准图形的像素点总个数与所述待测试图形的像素点总个数的差值在预设...

【专利技术属性】
技术研发人员:江涛梁冠健
申请(专利权)人:广州慧通编程教育科技有限公司
类型:发明
国别省市:广东,44

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

1