基于微信的在线测试系统的设计与实现
2017-03-22王荣海张伟兵
王荣海 张伟兵
摘 要:本文在对移动学习理论与实践及微信学习应用研究的基础上,设计并实现了一个基于微信的在线测试系统。该在线测试系统后台管理的主要功能有用户管理、测试项目管理、试题管理、测试发布、测试评分、成绩分析等,微信客户端通过访问微信公众号有选择测试项目、自由练习、参加测试、试题解析等功能。本文阐述了利用微信公众平台开发应用系统的流程以及在线测试系统的实现。用户通过微信公众平台可以随时随地进行在线测试与学习。
关键词:在线测试系统;微信公众平台;测试项目;jQuery Mobile
中图分类号:TP311.5 文献标识码:A
1 引言(Introduction)
随着智能手机及平板电脑的普及,各种移动应用层出不穷,在教育领域,移动终端也发挥着越来越大的作用。在国外,十几年来针对移动应用的理论研究与实践一直在持续进行着。文献[1]提出了一个利用移动技术构建支持终身学习系统的框架,包括软件、硬件、通信及界面设计等,并对给出的一个示范性系统进行了评估。文献[2]开发了一个移动学习原型程序用来辅助课堂教学并在大学本科及研究生课程中使用,结果表明移动技术可以在高等教育中发挥较大的作用。文献[3]通过实验组与对照组研究第二外语学习者利用移动设备辅助英语短语学习,结果表明,使用移动设备可以取得较好的学习效果。
微信作为社交类软件的代表已经成为增长最快的手机应用与互联网服务[4],目前微信已经成为移动互联网的主要入口之一。在微信平台上已经构建了各种类型的移动应用,包括移动学习方面的应用。近年来,国内学者针对微信在移动学习方面的应用进行了研究,文献[5]针对微信支持下的移动学习平台进行研究,并且设计了一个基于微信的移动学习平台,文献[6]研究了在线学习平台和微信协作学习知识建构层次分析,研究表明,在线学习平台在协作学习方面质量高于简单的微信交流。微信平台若要发挥其在移动学习方面的功能,还需要设计相应的应用程序,本文基于微信设计并实现了一个在线测试系统。
2 系统功能设计(System function design)
基于微信的在线测试系统的功能分为后台管理与微信客户端两部分,两部分的主要功能模块如图1所示。
2.1 后台管理功能设计
后台管理的主要功能如下:
(1)用户管理:对在线测试系统的用户进行管理。用户必须先关注提供在线测试系统的微信公众号,可以对用户进行增加、删除、修改等操作,可以以班级为单位对用户进行分组,从而支持班级形式的分组教学。
(2)测试项目。在线测试系统可以根据实际情况提供各种各样的测试项目,取决于微信公众号运营者的实际需求。如果运营者是各级学校的教师,测试项目可以是所任教的课程,也可以是一些公共课程,比如大学英语、计算机基础、程序设计基础等;如果运营者是培训机构,测试项目可以是所培训的相关项目;另外测试项目也可以灵活地应用到其他场合,比如调查表、投票系统等。
(3)试题管理。针对不同类型的测试项目,可以支持不同类型的试题。对于学校的教学应用,所有课程都支持常规的单项选择、多项选择、判断及填空等客观题,系统也内置了对部分主观题型的支持如简答题,综合题等。当选择试题管理功能时,首先选择系统中已有的测试项目,接着进入相应试题的添加、修改与删除等,对于单项选择、多项选择、判断题,试题管理支持试题的批量导入,只要下载相应的试题模板文件,按照模板文件的格式输入试题的各项信息就可以实现试题的批量导入。
(4)测试发布。首先选择测试项目,接着选择要发布的试题并设定各个题目的分值,可以限定测试完成的时间段,这适合于班级教学的集中测试,如果没有限定测试时间,则用户可以在任何时间段进行测试,最后进行再次确认,测试发布的流程如图2所示。
(5)测试评分。对于选择、判断、填空等客观题,系统可以进行自动评分,但对于填空题在录入题目时必须设定所有的参考答案,才能保证评分的客观性,为此系统针对填空题的评分除了自动评分外还允许进行人工确认。对于简答、综合等主观题,则通过在同一屏幕同时显示作答情况及参考答案进行人工评分。测试评分通常用于以班级为单位进行集中测试的情况。
(6)成绩分析。对于以班级为单位组织的测试,教师可以进行成绩分析,针对一次测试,可以统计参加测试的人数、平均分、各个分数段的人数及百分比,可以对成绩进行排序,还可以进行一些比较深层次的分析,如可以分析每种题型参加测试者的得分情况,每道题的得分率等。
(7)菜单设置。可以设置微信客户端进入公众号后在屏幕底部显示的菜单,方便用户进行快捷访问。
2.2 微信客户端功能设计
微信客户端的主要功能如下:
(1)用户注册。用户关注提供在线测试系统功能的微信公众号后,还需要进行注册才能使用测试系统的完整功能,也才能保存参加测试的数据,只关注微信公众号但没有进行注册的用户只能完成系统提供的一些公共的测试项目。考虑到用户的操作体验,注册时仅需提供昵称、性别、联系邮箱等必填信息,其他信息如学校、学号、姓名、出生年月、联系电话、QQ号、联系地址等则作为选填信息,如果学校使用该在线测试系统辅助教学,则需要学生在注册时把信息填写完整才能参加以班级为单位组织的测试等功能。
(2)项目选择。用户进入在线测试系统所在微信公众号后,可以通过发送信息及微信底部菜单两种方式选择测试项目,通常是发送测试项目名称,比如发送“计算机基础”可以进入计算机基础测试项目,也可以在后台管理的测试项目功能中进行设定,比如可以设定发送“jsj”进入计算机基础测试项目。通过在后台管理菜單设置功能中可以设置菜单项,让用户通过菜单快速进入某个测试项目。
(3)自由练习。用户进入某个测试项目后,选择自由练习可以进行自由练习。自由练习的题目主要是客观题,以单项选择题为例,用户选择单项选择题后,可以设定练习的题目数量,默认为20题,可以设定要测试的知识点,比如对于计算机基础课程,可以选择全部知识点或者某一章节的知识点,确定了题目数量和知识点后,就可以开始练习,每道题选择完后自动进入下一题,所有题目答题完成后显示答题结果,答题结果显示每道题的正误,并且可以查看试题解析。
(4)参加测试。用户进入某个测试项目后,选择已发布的测试可以查看到通过后台管理发布的测试。用户进入测试后,答题方式与自由练习差不多,只是测试完成后没有显示答题结果,也不能马上查看试题解析。如果应用于课堂教学,教师可以事先在后台发布测试,然后在上课期间通知学生进入测试,学生完成测试后,教师可以实时在后台查看到学生的测试结果并可以通过多媒体投影等形式反馈给学生,通过这种方式可以实现课堂上的互动反馈功能。
(5)试题解析。用户进入某个测试项目后,选择试题解析可以查看自己参加过的测试的试题解析。
3 数据库设计(Database design)
本系统数据库采用MySQL,数据库中主要数据表的信息如表1所示。
与数据表相应的实体之间的关系如图3所示。该图表明一个测试项目拥有多道习题,一种题型包括多道习题,一次测试可以包括多道习题,一道习题也可以用于多次测试,一个用户可以参加多次测试,一个用户有多条答题记录。
4 开发流程与系统实现(Development process and system implementation)
4.1 微信应用开发流程
基于微信公众号的应用开发流程可以用图4表示,以下进行简要说明。
(1)申请微信公众号。要开发基于微信公众号的应用,首先要申请一个微信公众号,只要到微信公众平台网站按提示申请即可,在微信公众号应用开发完成之前,可以先申请一个接口测试号,利用该接口测试号,即使没有公众号,也可以直接体验和测试公众平台所有高级接口[7]。
(2)搭建服务器运行环境。开发的程序需要上传至服务器中,服务器可以使用传统的虚拟主机或者云服务器。微信开发通常使用PHP,服务器端一般安装PHP、MySQL及Apache组合,服务器操作系统可以选用Windows系列或者Linux。
(3)开启公众号开发者模式。刚申请的微信公众号默认不在开发者模式下,开发者必须登录微信公众平台管理页面,在开发的基本配置中启用服务器配置。
(4)进行开发基本配置。配置包括URL即服务器地址,这是开发者要存放代码的服务器的地址;Token用来和接口URL中包含的Token进行比对,从而验证安全性;消息加解密方式可以设置为明文模式,兼容模式或安全模式。
(5)编写代码上传服务器。按照公众平台技术文档,结合具体应用的功能设计编写应用代码并上传到在基本配置中设置的服务器上。
(6)进行模拟测试。通过微信公众平台接口调试工具可以帮助开发者检测调用开发者API时发送的请求参数是否正确,并可获得服务器的验证结果,可以测试开发者的代码逻辑是否存在错误,是否与预期相符合[8]。
(7)微信客户端测试。开发者通过自己的个人微信号扫描公众号二维码关注微信公众号,测试应用程序在微信客户端的运行效果,根据运行结果判断代码是否有逻辑错误,从而进行修正与完善。
(8)完成所有系统功能。按照功能设计的内容,逐项实现相应功能,各项功能相对完善后,可以对外推广微信公众号,让更多的人通过公众号使用系统的功能。
4.2 系统实现
本系统的实现结合了Html5及PHP技术,在实现中使用了jQuery Mobile框架,数据库采用MySQL,为了简化对数据库的访问,编写了数据库操作公用函数库[9]。以下是本系统的部分实现界面。
图5是关注并进入公众号后的界面,可以通过关键字回复或选择菜单项进入相应功能。图6是测试功能选择,图7用来选择要参加的测试,这两个界面的列表使用了jQuery Mobile的List View UI组件。图8是答题界面,选择项使用了jQuery Mobile的Radio Button UI组件,底部按钮则使用了Grouped Buttons UI组件。
5 结论(Conclusion)
随着智能手机与平板电脑的普及,移动学习已经成为移动互联网的重要组成部分。微信作为移动互联网的入口正扮演着越来越重要的角色,开发基于微信的移动学习应用具有广阔的应用前景。本文实现的在线测试系统已经在一定范围内使用,目前注册用户数2000人左右,平均每天在线学习的人数在200人左右,在对用户的调查中,普遍反映本系统对他们的学习有一定的帮助。后续将继续完善系统的功能,以方便使用者充分利用碎片化时间随时随地进行学习。
参考文献(References)
[1] SharplesM.The Design of Personal Mobile Technologies for Lifelong Learning[J].Computers & Education,2000,34(3-4):177-193.
[2] Motiwalla LF.Mobile Learning:A Framework and Evaluation[J].Computers & Education,2007,49(3):581-596.
[3] PLLiu,CJ Chen.Learning English through Actions:a Study of Mobile-Assisted Language Learning[J].Interactive Learning Environments,2015,23(2):158-171.
[4] 方兴东,等.微信传播机制与治理问题研究[J].现代传播:中国传媒大学学报,2013,35(6):122-127.
[5] 朱学伟,朱昱,徐小丽.微信支持下的移动学习平台研究与设计[J].中国远程教育,2014(4):77-83.
[6] 柳瑞雪,石长地,孙众.学习管理系统和社交平台协作学习知识建构层次分析[J].中国远程教育,2016(7):10-19.
[7] 微信公众平台接口测试号申请页面[EB/OL].http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login.
[8] 微信公眾平台技术文档[EB/OL].https://mp.weixin.qq.com/wiki.
[9] 宋利,张伟兵,王荣海.基于移动互联网的个人学习助理开发研究[J].软件工程:2016,19(6):34-37.
作者简介:
王荣海(1972-),男,硕士,副教授.研究领域:软件工程,虚拟现实,移动互联网.
张伟兵(1992-),男,本科生.研究领域:软件开发.