- 收藏
- 加入书签
基于计算机的网上考试系统关键技术的研究与实现
摘要:本文对基于计算机的网上考试系统在软件研发中的关键技术进行了深入分析,重点对试题库分类策略、试卷生成算法、填空题智能阅卷、反作弊手段、高可用与安全性进行了研究,有关核心技术已成功运用到某大型网络考试系统中。
关键词:网上考试;题库;组卷;阅卷;反作弊
1引言
基于计算机的网上考试系统在社会各行各业应用的越来越广泛,尤其是在疫情防控常态化的当下,网上考试系统的运用愈发活跃。它不仅降低了考试成本,而且提高了工作效率,全流程的自动化控制和数据信息化、权限化管理,更是保证了考试的公平公正。
2关键技术研究与实现
网上考试系统的关键技术主要包括:试题库分类策略、试卷生成算法、填空题智能阅卷、反作弊手段、高可用与安全性等。
2.1试题库分类策略
建立试题库是为了按照考试内容的不同,将各类考点的试题分门别类,为考试提供备选试题。一般考试系统要求具有通用性和开放性,因此需要制定一套科学合理的试题分类策略,保证后续配置试卷操作便捷、抽取试题考点分布均匀、所生成的试卷科学合理。
研究中发现,当建立大规模、较复杂的试题库时,简单的以“题库一”、“题库二”、“题库三”……这种单一分类方式来区分成千上万道试题,根本无法满足业务需要。对此,建议引入多级分类编码的方式(见下表示例)。
这样可以对试题库中的每道试题,根据所涉及的知识考点可以进行精细化地分类,并且在后续配置考试试卷时可以灵活地从任意级别考点抽取试题——既可以从“1.世界地理知识”一级分类中抽取试题,也能从二级分类(“1.2欧洲国家地理知识”)或者三级分类(“1.1.2韩国地理”)抽取试题组合成试卷。
这种分类策略让题库条理清晰,让试题归类更准确,抽题组卷更灵活。
2.2试卷生成算法
组合生成试卷是本系统的核心技术,计算机程序将根据事先设置的规则从指定的试题库中随机抽取指定数量的试题,组合成试卷。其中的随机抽题算法一般是在服务器端实现,它既可以采用数据库内置的随机函数,也可以使用编程语言自带的随机类(如C#语言中的Guid类、Random 类)。但在代码编写时,需要注意避免使用伪随机函数算法——看似是随机生成了数据,实际测试发现存在大量重复且分布不均匀的数据,并没有真正实现所抽取的试题随机分布。
在此阶段,由于生成试卷的过程中涉及到大量的查询、分组、排序和逻辑运算,一般会消耗较大的服务器资源。当大量用户同时在线考试时,需结合软件使用规模,测试调优算法,保证系统服务器能够流畅稳定运行。
2.3 填空题智能阅卷
考生在进行填空题作答时因为存在一定的主观自由发挥空间,要实现计算机对填空题进行准确评分,存在较大的难度。
通常计算机只能以考生输入的文字内容是否与预设的标准答案完全一致来进行正误判定。然而,考生在进行填空答题时,很可能把数字“1”录入中文字“一”、半角英文字符录入为全角英文字符、答案前后多录入一个空格等等,看似回答正确了,由于和标准答案不相同,程序仍会判定为错误。因此,要实现准确的填空题阅卷,就要在程序逻辑算法上要加入“智能”机制:首先要对上述情形先进行语义转换、字符去噪处理再进行比对;其次,在试题库标准答案录入时,要允许录入可能出现的多种正确答案,答对其中之一就应判定答题正确;最后,还可以设置系统自动阅卷和后台人工阅卷相结合的模式,后台可对考生填空题的作答进行统计分析和管理,将后台人工审核时“新发现”的正确答案进行记录,存储到数据库中,系统用更新后的填空题答案和考生答案进行比对,进行二次判卷,并将更新成绩入库。
2.4 反作弊手段
从技术选型角度看,由于C/S(服务器/客户端)结构能够更灵活广泛地调用操作系统底层接口,读取、控制系统行为,因此比基于Web浏览器的B/S模式能够更好的实现反作弊。实践表明,网上考试常见的作弊手段有:在电脑上考试的同时打开网页搜索答案、替考代考、偷看邻桌考生试卷等。
为防止考生在答题的同时用同一台电脑在互联网上查找试题答案,软件运行时不能允许切换到其他窗口,建议将考试答题界面强制设置为置顶状态且不可取消。如果是Web网页版考试系统,一般采用全屏模式,此外还要考虑对鼠标右键、F5等按键的屏蔽。
针对可能出现的替考代考现象,建议安装计算机摄像头,程序调用摄像头拍照并留存考试前和考试过程中的考生照片。在服务器端,程序对考生信息中包含的证件照、考试时拍摄的现场照进行人脸比对,验证是否为同一人,并发出预警。目前人脸比对算法技术已经比较成熟,建议直接调用第三方服务或算法(离线算法推荐虹软ArcSoft人脸比对算法)。
在一般考试中系统是随机生成试卷,每个考生的试卷内容都不相同,可以有效杜绝偷看邻桌考生答案的情况。但是有些考试为保证考试的公平性,会要求所有考生的试卷试题相同。此时,为防止在集中考试时互相偷看邻桌试卷或相互核对答案,可以在生成试卷时随机改变试题顺序或者调换A、B、C、D选项的顺序,以杜绝此种作弊行为的发生。
2.5 高可用与安全性
高可用系统需由高可用软件架构进行驱动,良好的软件架构是实现系统高效运行以及高度可靠的核心。在业务功能层面要使用高度区分的分层架构,从视图模型到业务逻辑的数据传输,从数据库的数据访问交互层级到应用信息缓存技术的综合应用和中间件部署方案,都要分别进行方案测试、比选。
由于网上考试系统基于网络平台,所以数据的安全性就非常重要。对于用户登录密码建议采用不可逆的加密算法(如MD5、SHA2等)进行加密。对试题库建议使用对称加密算法(如3DES、AES128等)对文本进行加密处理。
考试成绩是考试系统的核心,由于在进行成绩分析时通常使用SQL语句对明文成绩直接进行排名、求平均分、中位数、方差等成绩统计分析操作,因此不便于直接存储加密后的成绩在数据库中。为防止成绩在数据库中被非法篡改,可以另辟蹊径:在保存成绩的同时,把考生姓名、成绩、考试时间等文本组合为一个字符串,然后进行对称加密,再将密文也存储到数据库中,这样就可以随时解密密文,将解密后的数据与明文成绩等进行比对,验证真伪。
3 总结
本文所列举的核心技术及实现方法都是从实践中总结而来的技术经验,具有较高的实用价值和通用性,希望能够为给各行业网上考试系统研发工作带来启发,发挥积极作用。
个人简介:杨中原、1987年、男、汉族、籍贯湖北省枝江市、大学本科。

京公网安备 11011302003690号