随着当前大数据时代的飞速发展,信息技术以及数据科学不断的普及,教育界也随之更新换代。无粉尘黑板以及电子化考试都已经是在各种学校中普及使用,而且因为操作简单以及对环境没有任何影响,这也将是未来发展的重大趋势。而由于今年来疫情的原因,各地高校也收到了极大地影响,开发出一套适合大多数学校使用的考试管理系统也显得迫在眉睫了。
本文将介绍使用SpringBoot技术开发的一套在线考试系统,从开发前期的背景调查以及开发中的需求分析到开发后的功能测试几个层面对考试系统进行全面的分析和探讨。本系统开发的分为三种权限:管理员、教师以及学生。主要功能有学生管理、班级管理、教师管理、试卷管理、试题管理、考试管理以及学生考试记录查看功能。后台使用MyBatis来快速的进行数据库交互。
关键词:在线考试系统 SpringBoot MyBatis
Abstract
With the rapid development of the current big data era and the continuous popularization of information technology and data science, the education sector is also updated. There is no significant impact on the popularization of electronic blackboard in the future, and there will be no impact on the development of electronic blackboard. Due to the epidemic this year, colleges and universities around the country have also been greatly affected. It is urgent to develop a set of examination management system suitable for most schools.
This paper will introduce a set of online examination system developed by using springboot technology, and comprehensively analyze and discuss the examination system from the background investigation in the early stage of development, the demand analysis in the development to the function test after development. The development of this system is divided into three permissions: administrator, teacher and student. The main functions are student management, class management, teacher management, test paper management, test question management, test management and student test record viewing. Mybatis is used in the background to quickly interact with the database.
Key words: Student online examination system SpringBoot MyBatis
摘 要 I
Abstract II
第一章 绪 论 1
1.1 课题背景、目的及意义 1
1.2 国内外研究现状 1
1.2.1 国外的研究现状 1
1.2.2 国内的研究现状 1
第二章 需求分析 3
2.1系统的功能需求分析 3
2.1.1 学生功能 3
2.1.2 教师(管理员)功能 3
2.2 系统的数据需求分析 3
第三章 系统的设计 5
3.1 技术框架的设计与介绍 5
3.1.1 Thymeleaf 5
3.1.2 BootStrap 6
3.1.3 SpringBoot 6
3.1.4 MySQL 6
3.1.5 MyBatis 7
3.1.6 Druid 7
3.1.7 Maven 7
3.2 系统功能模块的设计 7
3.2.1 学生模块 8
3.2.2 教师(管理员)模块 9
3.3 系统数据库的设计 10
第四章 系统的实现 13
4.1 首页界面实现 13
4.2 学生功能的实现 14
4.2.1 考试信息 15
4.2.2 考试历史 16
4.3 后台功能的实现 16
4.3.1 学生管理 17
4.3.2 教师管理 18
4.3.3 班级管理 19
4.3.4 试题管理 21
4.3.5 试卷管理 22
4.3.6 考试管理 24
4.3.7 记录管理 25
第五章 系统测试 26
5.1 测试的目的与目标 26
5.2 测试方法 26
5.3 测试用例 27
5.3.1 登录模块 27
5.3.2 学生模块 27
5.3.3 教师模块 28
5.4 测试结论 30
第六章 结论 31
参考文献 32
致 谢 33
1.1 课题背景、目的及意义
考试是一种从古至今的筛选人才一种方式,也是最有效的方式之一,对于目前的很多的学校来说,纸质方式的考试仍然存在,而纸质化的考试对于环境来说也是极其不友好的,而且对于一个学校来说也是一种巨大的资源消耗[1],因为一张考试试卷在使用之后也没有办法再去重复使用,这也就意味着这个试卷只能用一次,用完之后就只能处理掉了,而在高中学校中,一周时间一个学生至少会考十次试,而平均一场考试三张试卷,那就意味着一周一个学生就要消耗三十张试卷,对于一个高中学校来说平均有一万人,那么一周一个学校至少消耗三十万张试卷,那一年的消耗将是一个恐怖的数字。而如果学校都采用线上在线考试的方式进行考试的话,将会节约很大的资源,而且线上考试也不需要更多的人力资源去检查以及收试卷等操作[2]。
在线考试系统使用方式也非常的简单,只需要老师在系统中录入题库,当然录入题库也是一种一劳永逸的操作,在系统中拥有足够的题库的时候,每次需要考试的时候,只需要进行系统自动组卷就可以达到出卷的效果,这也大大地较少了老师们的工作量。
1.2 国内外研究现状
1.2.1 国外的研究现状
在线考试是基于互联网发展的,也是互联网发展路上的产物,而国外在互联网发展上早于国内,所以早在1996年国外就出现了线上考试相关的技术系统[3],尤其是在互联网发展最早的那些发达国家中,而随着互联网技术的不断发展在科学技术不断提升下,国外考试系统的功能以及对应的技术更加的完善以及实用了,而且在大多数的学校中也是早早的推广起来了,就像TOEFL、GRE(美国研究生入学考试)、MSCE(微软系统工程师认证考试)等、Oracle认证考试等,都是通过在线考试的方式的。
1.2.2 国内的研究现状
目前在我们国内,在线考试还正处于蓬勃发展的时期,由于我们起步较晚所以我们在系统的应用方面还是要落后于国外的[4],所以应用也还不是非常普及,只有少数的国家级的简单考试会用到在线考试,如普通话水平考试、机动车驾驶科一、科四考试等,但我们现在各大高校也开始慢慢重视起来这个问题,尤其是去年的疫情影响下,在线考试的重要性便体现出来了[5]。
而我们国内较为成熟的在线考试平台有由清华大学开发的雨课堂考试平台,还有微信小程序中的问卷星,这虽然不是一个专业的考试系统,但它的使用率在国内比任何一个考试系统要大,它主要适用于调研,投票,信息采集和在线考试这几大用途。
2.1系统的功能需求分析
本系统开发模式采用B/S模式,也就是采用浏览器服务器的方式,系统分为三种用户,每种用户拥有不同的权限,而且学生用户和教师以及管理员用户操作页面有着很大的区别,因为学生进入系统是为了进行考试的,而管理员和教师是为了操作数据的。本系统为用户提供不同的登录页面,来设计区分不同的用户进入系统[6]。
2.1.1 学生
本系统为学生用户提供了注册、考试以及对应的考试情况的查询等功能。每次学生考完试之后都可以查看到当前的得分情况,其他的考试在考试记录中都可以查询到自己的得分情况。
2.1.2 教师(管理员)
由于系统设计的教师用户和管理员用户有着很大的相同之处,所以将管理员和教师的相关功能放一起描述,而管理员是拥有教师的所有功能比教师多一个教师管理的功能。
教师和管理员共同拥有学生管理、班级管理、试题管理、试卷管理、考试管理以及考试记录管理等功能,其中学生管理是指教师和管理员都可以查看系统中的所有学生信息情况,并且可以对学生的信息进行修改和删除等操作;班级管理为教师和管理员可以对系统中的班级信息进行相关的新增、修改以及查看删除等操作;实体管理是指管理员和教师可以对试题进行相关的新增、修改以及查看删除等操作,并且可以对试题进行分类有利于试卷的生成;试卷管理是指管理员和教师都可以在系统中生成需要考试的试卷,并且可以对生成的试卷进行相关的增删改查操作;考试管理是指可以选择对应的试卷进行相关的考试,并组织学生完成对应的考试;考试记录管理可以查看到系统中的所有考试情况并且可以查看对应班级的总体考试情况。
2.2 系统的数据需求分析
在对本系统进行需求调研的过程中,考试系统将主要有学生、教师、班级、试题、试卷以及考试等数据,而在对这些数据进行分析后,得出如图2-1所示的流程图。
图2-1 考试流程数据分析
3.1 技术框架的设计与介绍
3.1.1 Thymeleaf
Thymeleaf作为一种现代服务端的Java模板引擎。它使用与独立环境和Web,能处理生成经过验证了的HTML和XML文件[7]。
图3-1 Thymeleaf结构图
模板引擎就是根据后端传来的Json数据生成一个标准的HTML文件,模板引擎有JSP、FreeMarker、Thymeleaf[8],这三个模板引擎各有优劣,但对于SpringBoot的官方是不推荐老大哥的JSP的,因为SpringBoot打包的时候有两种[9],一种是war包,另一种是jar包,但对于jar包来说是不支持JSP的。相对于FreeMarker来说Thymeleaf能够做到不用开启整个web应用就能直接打开显示模板的页面[10],这是极为方便的且它在有数据无数据的时候都能正确的显示,在无数据的情况下会显示静态页面,而如果有数据的传入,则会自动变成动态页面[11]。这样一来前端只需要会Thymeleaf就可以进行开发,测试,能完美的做到前后端分离。
3.1.2 BootStrap
BootStrap是时下较为主流的快速搭建Web应用的前端开源框架,它集成HTML、CSS以及JS为一体,常用于搭建开发响应式布局[12],以及优化设备的适配性的项目构建。致力于让前端开发更为高效、快速、简单,让所有的开发者都能快速上手。其源代码采用了最流行的CSS预处理工具Less和Sass编译开发。在js方面集成Jquery插件,便捷开发者的的网页的动态开发。BootStrap还提供了相应的开发帮助文档,为开发者提供字典式的开发帮助[13]。
BootStrap作为一个前端快速开发框架,我们仅需通过官方网站提供的相应的视图及代码样例,理解相对应的class和一些标签所代表的含义,通过引用所提供的的外部CSS文件以及JS文件并可实现相对应的网页效果。
BootStrap的社区开源性,具有很高的可扩展性。它支持开发者的自定义样式,支持开发者在已给的样式方面进行扩展,从而适应更为广泛的开发者的需求。这也简化了之后的软件维护,也提高了软件的实用效果。
3.1.3 SpringBoot
SpringBoot框架是由SSM框架衍生而来的[5],因为SSM框架有着非常复杂的配置,当开发一个大系统的时候配置文件可能会有十几个或者几十个,而SpringBoot的诞生将节省了开发人员的大多数时间,因为它只有一个配置文件,也就是说只需要一个配置文件就可以将SSM框架中的十几个配置文件代替,而且也可以完成SSM配置文件中的所有功能,这将大大的提高了开发人员的开发效率[14]。
3.1.4 MySQL
MySQL数据库[15]是目前最为流程的关系型数据库之一,它最初是由瑞典的MySQL AB公司开发而成,并且属于Oracle旗下的产品[16]。而且在web应用方面,MySQL也是最好的RDBMS(关系数据库管理系统)。
3.1.5 MyBatis
Mybatis最先是Apache的一个开源项目iBatis,但是在2010年这个项目被迁移到Google Code,并且改名为Mybatis。在2013年才被迁移到Github中Mybatis是目前最为流行的持久层框架之一,Mybatis与SpringBoot可以进行无缝整合。Mybatis作为访问数据库的框架,它具有较高的安全性,而且在处理数据库事务方面有很多的独到之处。而且它消除了几乎所有的JDBC代码和参数的手工设计以及结果集的检索。Mybatis具有简单易学、灵活、接触了Sql与程序代码的耦合、支持并提供关系映射和提供Xml标签等特点。
3.1.6 Druid
Druid是由Alibab开源的一款数据库连接池框架,对于数据库连接池的功能再上面的MyBatis中有提到,其作用就是使得数据库链接资源可以重用,最后更快的响应。其实数据库连接池有多种,像我们最熟悉的就是dbcp和c3p0,而Druid相对于前两者来说它是集两者的优点与一身,为我们提供了一个连接高效、功能强大、扩展性良好的数据库连接池,且在本身的数据库连接池的功能外它还可以监控数据库的访问情况。
3.1.7 B/S模式
B/S架构即浏览器/服务器架构,它是基于浏览器的基础上运行web应用程序的,它不需要像C/S架构一般需要去下载对应的软件并安装运行。B/S架构是目前最流行的架构之一,大多数的企业开发web应用都是使用B/S架构。因为在B/S架构的基础上,只需要通过网页访问即可,所有用户只要有一个可以上网的浏览器,那就可以访问web系统,既简单方便,使用又安全可靠。
3.2 系统功能模块的设计
作为考试系统,为了更好的对系统进行运行以及维护,采用用户权限判断验证的方式,对该平台进行系统性的管控。然后通过用户进行登录注册,将用户信息提交到数据库并进行比对,通过该用户的身份权限来控制该平台为用户展示所需的界面信息。
图3-2 系统总体模块设计
作为根据系统功能分析,当前系统主要存在两个用户角色——学生、教师(管理员),在此通过用户角色不同,对该系统进行模块划分。
3.2.1 学生模块
学生作为该考试平台的主体,是该平台的重要角色之一。该模块是在用户进行正确登录之后,系统对于该用户的权限判断为学生时所进入的功能模块。
通过上述的需求分析,学生模块主要的功能是参加考试,以及自己参与的考试记录。
图3-3 学生模块系统功能
3.2.2 教师(管理员)模块
教师作为该平台的主要角色之一,部分涵盖了管理员的权限,教师与管理员共同使用同一可视化界面,在前端对该教师的权限进行判断,然后分别展示所涵盖的功能,对于无权限操作的功能不予展示或者进行错误信息提示。
图3-4 教师模块
3.3 系统数据库的设计
根据上述的数据库分析可以得出一个大概的主要实体关系图:
图3-5 部分系统E-R图
注解:本E-R图种只是列出了部分重要实体间的关系及属性,其他部分关系表及实体可见下列详细表:
本系统设计中,教师和管理员的功能基本一样,所以在阐述系统实现中将管理员和教师的模块放在一起阐述,然后将阐述内容分为首页、学生、管理员等三大部分。
4.1 首页实现
本系统首页中有对系统的简单描述,并且首页中含有系统登录和注册的入口按钮,首页中还统计了本系统本系统中的学生和老师的数量以及本系统中的试题数据,和管理员设置的试卷的数量。首页的截图如下图所示。
图4-1 平台主界面
在首页中点击登录按钮系统自动进入登录页面,本系统的登录页面设计比较简陋,这也符合教务管理系统的风格。在登录页面中用户可以自由切换后台登录和前台登录二种方式,也可以最直接点击注册进行数据注册,注册之后再进行登录操作。而且这里的登录注册功能都是通过前端你的form表单提交的方式,简单易懂。
图4-2 学生登录界面
图4-3 学生注册界面
图4-4 教师登录界面
4.2 学生实现
在前面章节的中已经展示了学生的功能仅包含参与考试及查看考试记录功能,故在本模块的主要功能不是很多,主要分两个部分展示:考试信息和考试历史。下图为学生登录后的主界面:
图4-5 学生主界面
4.2.1 考试信息
在此模块主要是展示当前需要参加的考试信息,且当前考试是已经开始但未结束,即已经出完但还未到达考试时间的试卷是不会展示出来,并且相关的考试信息也是不会进行相应的展示。
图4-6 待考试卷列表图
如下图4-7所示,学生点击一场考试进入考试页面,页面主要分为三个部分,左边展示考试的基本信息包括开始时间和结束时间等;上方展示本场考试名称以及学生模块中的通过的头部按钮;下方为统一的答题页面,所有的题目都从下方展示,而且系统控制学生在做题中如果没有做完的话是不运行进行提交考试的。
图4-7 答题界面
4.2.2 考试历史
如下图为学生登录后在考试历史中查看到的与自己相关的所有考试历史信息,并且能够查询相应的考试结果、答案信息即试卷的正确率。
图4-8 已答试卷记录
下图是对其中的一份试卷进行查阅。根据页面展示的内容,可以看出此页面主要展示这个试卷的内容,你的选择以及试卷的答案。
图4-9 已答样例试卷查阅
4.3 管理员实现
当教师输入正确的账号和密码进行登陆后,页面会跳转到后台的主界面。在上一章节的模块分析了解,后台管理主要存在两种不同的权限的用户——教师以及管理员,而管理员也是可以当作教师。
后台的主界面如下图所示,可以看出后台主要有学生管理、教师管理、班级管理、试题管理、试卷管理、考试管理以及记录管理七大模块,而且在后台的主页右下主要展示了该平台的所有人数、题库数、自定义公告信息以及部分最新的考试榜单信息。
图4-10 教师(管理员)主界面
4.3.1 学生管理
作为后台管理界面,对于用户(学生)的管理是必然存在的。在本次设计中的学生管理界面如下图所示,展示了查看学生信息、删除学生的功能。
图4-11 学生管理界面
下图为学生管理界面对某一学生信息进行编辑时所跳转的页面,展示了该学生的主要信息,以及可以对其进行修改的条目(学生登录靠学生账号以及密码进行登录,故在此不考虑修改学生的账户名以及密码功能)。
图4-12 学生信息修改界面
4.3.2 教师管理
教师管理作为后台的用户管理模块的一大主要,该模块主要包含教师的信息修改、教师删除(管理员)以及教师添加功能(管理员)。鉴于后台对于系统的安全性及稳定性等因素,故仅考虑部分对此模块的功能进行权限限制,仅向管理员权限进行开放,并且在该模块对于用户的信息展示时,将教师密码隐藏,避免教师信息泄露、账号被冒名使用等危险情况发生。教师管理界面如下图所示。
图4-13 教师管理界面
下图为管理员创建教师的界面,需要填写的内容主要含有教师姓名、教师账号、教师密码等基础信息。
图4-14 教师添加界面
下图为修改教师信息时所展示的页面,其实不难看出是采用教师创建时的页面模板,简化前端页面的开发,提高代码的复用率。
在教师信息修改的问题上,避免教师的误操作对于系统平台可能会造成的损失,及数据稳定安全性方面,避免教师修改教师账号、以及非本人的登录密码信息。
图4-15 教师信息修改
4.3.3 班级管理
班级管理作为教学系统的主要一部分,作为连接教师以及学生之间关系的纽带,故此模块也同样必不可少,在本部分主要展示班级管理模块的功能。在下面展示的截图中不难发现本模块主要包含对班级信息的获取、班级信息的修改、班级删除以及班级添加功能。在本管理模块默认展示当前所有得到班级以及其所对应的班主任的教师名字。
图4-16 班级列表信息界面
下图为在管理模块对某一班级的编辑按钮进行点击是系统所跳转的页面,展示的是该班级的部分信息,包括时任班主任的教师名称,并且可以对其进行修改。在进行班级的班主任信息修改的时候,为了降低教师的压力,避免了同一教师对于不同班级的管理,严格限定每个教师最多管理一个班级。
图4-17 班级详细信息及信息修改界面
该模块也是采用代码复用的手段,利用教师信息修改的前端页面模板,提供了对于班级管理信息的填写,在本模块也采用上个功能的要求,强制每个教师最多管理一个班级,降低教师的管理压力。且担任班级班主任教师禁止无中生有,必须是已经存在于系统数据库中,有据可查。
图4-18 班级新增界面
4.3.4 试题管理
作为在线测试系统,其理应含有大量的数据题量信息,故该模块也是本篇设计的主要内容之一。在本模块中主要包含对于题目的查询、增加、删除以及题目信息的修改。在本此设计中默认将本模块的首页内容设置为展示本系统的所有的题库信息,并且展示本模块的主要的功能按钮,凸显本模块的功能。下图为试题管理的主界面内容展示截图。
图4-19 试题管理界面
下图为试题管理页面的试题编辑按钮点击后系统跳转的页面,展示的是试题信息修改内容。
图2-20 试题修改页面
下图展示的是试题增加页面,同样采取极简主义,复用试题信息修改的前端模板,提高代码的复用率。
图4-21 试题增加页面
4.3.5 试卷管理
试卷管理可以查看所有试卷信息。下图为所有试卷页面,教师及管理员都可对查看所有试卷的基本信息,和试卷的修改、删除以及查看试卷试题、添加试题和自动生成试题功能。同时教师及管理员也可以直接添加新的试卷。
图4-22 试卷信息管理
下图为添加试卷的页面,对于试卷的创建主要分为两个流程——试卷基本信息创建以及组题。教师(管理员)可以通过该模块的试卷添加按钮来创建试卷来基本信息——试卷的名称,单选题的分数,多选题的分数,判断题的分数来进行试卷的分数及题型组成。
图4-23 试卷增加
在教师创建完试卷后,该试卷的默认为空白,里面不含有任何的试题信息,此时需要对其进行组题——从题库中筛选出部分试题作为该试卷的考核题目。
本次的试卷组题功能主要分为两种——人工组题以及随机组题。人工组题就是人工从当前题库中选取题目,而随机组题就是通过系统使用随机算法根据选取的题库类别进行数据题目的获取,以组成当前试卷的考核内容。
对于已经存在的题目信息的试卷仍然可以采用组题功能来为该试卷增加题目,以补充之前组题所漏取的题目考点。
图4-24 试卷的试题管理界面
同样对于试卷的修改功能也是同样套用试卷添加的前端页面模板,复用其代码,故在此处就不在截图,多做赘述。
4.3.6 考试管理
考试管理作为在线考试系统的最后一步,主要负责着将已经组好的题目组作为考试试卷,并发布一场考试信息,使得学生可以参与,检验自己的真才实学,自己的学习情况,做到及时的查漏补缺。
在本模块的主界面默认展示的是所有发布的考试信息,并显示这些考试的基本信息以及状态信息,以及本模块的一些主要功能入口。如下图所示。
图4-25 考试信息管理
下图所展示的就是考试管理模块点击增加考试所跳转的页面展示示意图。可以看出此考试信息的发布需要填写得到主要的部分内容,其中包括该场考试所使用的试卷,该场考试的开始时间及结束时间,以达到到达时间后开始允许学生进行考试,以及考试时间结束强制学生提交试卷。
图4-26 增加考试
4.3.7 记录管理
记录管理模块主要是有两大功能:已考试卷信息以及班级及格率统计,并且该模块默认将已考试卷信息展示界面为主界面。
已考试卷信息主要展示的信息为试卷的名称,试题的答案,该试卷的正确率等信息。其截图如下图所示:
图4-27 试卷记录管理界面
班级及格率功能展示是根据目前所有的试卷还有班级进行统一计算,计算出每个班级的每张试卷的及格率并进行展示。其截图如下图所示。
图4-28 班级及格率界面
5.1 测试方法
在一个系统开发完成之后,并不是直接进行线上部署并上线使用,而且需要进行一个系统性的测试,而系统性的测试也需要专业的测试人员进行,而测试也分为主要的二种方式:黑盒测试和白盒测试。黑盒测试顾名思义就是在不知道这个系统功能流程的基础上随便的对系统进行操作,也就是让一个不明所以地人来操作系统,这就是所谓的黑盒测试;而白盒测试可以理解成正常的功能测试,也就是测试人员明白当前输入的数据会有什么样的结果,在知道结果的前提下进行测试为白盒测试。这二种测试方式也是作为一名合格的软件测试人员必备的技术。
5.2 测试用例
5.2.1 登录模块
登录模块作为该系统的最基本的模块,以此用来对平台的用户进行权限坚定分配。登录模块测试如表5-1所示,测试的过程基本上都与期望结果相同。
表5-1 登录测试用例
功能 学生登录功能
目的 对学生数据的登录信息进行验证
编号 描述 数据 期望结果 测试结果
1 只输入用户名 用户名:ceshi,
密码为空 提示“密码不能为空” 正确
2 只输入密码 用户名为空,
密码:123456 提示“用户名不能为空!” 正确
3 输入错误的用户名密码 用户名:ceshi,
密 码:1111111 提示“用户名或密码误!” 正确
4 输入正确的用户名密码 用户名:ceshi,
密 码:111 正确登录 正确
5 点击重置按钮 用户名:ceshi;
密码:1111 清空输入框 正确
5.2.2 学生模块
学生模块是本系统中的最主要的模块之一,所以对学生模块也是做了相关的测试,针对学生模块的大多数功能做出如表5-2所示的测试用例。根据测试表展示可以得出测试的结果和期望结果基本上一致。
表5-2 学生参与考试测试用例
功能 参加考试
目的 对学生正常参加考试验证
编号 描述 数据 期望结果 测试结果
1 学生登录后点击考试按钮 存在可考试试卷 页面列出当前可以参加的考试信息 正确
2 学生登录后点击考试按钮 不存在可考试试卷 页面没有考试信息 正确
3 学生进入考试后。 考试时间结束 自动提交试卷,并返回考试信息列表页面 正确
4 学生进入考试后。 用户题目已答完,点击提交 提交试卷成功,并返回考试信息列表页面 正确
5 学生进入考试后。 用户题目未答完,点击提交 提交试卷成功,并返回考试信息列表页面 正确
5.2.3 教师模块
教师模块和管理员模块是一样的,所以这里只对教师模块进行相关的测试,而教师模块中的功能也是整个系统中的重点,因为教师需要新建考试以及试卷等,还可以对学生成绩进行查看,对学生进行编辑等。
表5-3为教师增加试题的测试样例表,从测试的结果来看与期望结果完全相符合。
表5-3 教师增加试题测试用例
功能 增加考试试题
目的 教师是否能正常增加考试试题
编号 操作描述 数据 期望结果 测试结果
1 选择单(多)项选择题选项 选择题选项输入框为四个,判断题选项框为两个 存在选项C、选项D输入框 正确
2 选择判断题选项 选择题选项输入框为四个,判断题选项框为两个 不存在选项C、选项D输入框 正确
3 填写试题信息后提交表单 输入项全部填写完全 正确提交表单,并返回试题管理主界面 正确
4 填写试题信息后提交表单 输入项未全部填写完全,存在部分未填写 提交表单失败,并在未填写的输入框进行“字段未填写”提示 正确
表5-4为教师创建试卷测试样例表,从测试结果与期望结果对比,完全相同。
表5-4 教师创建试卷测试用例
功能 教师创建试卷
目的 验证教师能否正常增加试卷
编号 操作描述 数据 期望结果 测试结果
1 填写试卷的分数信息后提交表单 输入项全部填写完全 正确提交表单,并返回试题管理主界面 正确
2 填写试卷的分数信息后提交表单 输入项未全部填写完全,存在部分未填写 提交表单失败,并在未填写的输入框进行“字段未填写”提示 正确
表5-5为教师对试卷进行组题测试样例表,从测试的结果来看与期望结果完全相同。
表5-5 教师对试卷进行组题测试用例
功能 教师对试卷进行组题
目的 验证教师能否正常对试卷进行组题
编号 操作描述 数据 期望结果 测试结果
1 选择新创建的试卷的试题管理,进行随机组卷 选择的题库得到题目数量大于或等于需要的题量 组卷成功,返回到试卷的详细页可看到试题信息,题量为设置的题量 正确
2 选择新创建的试卷的试题管理,进行随机组卷 选择的题库得到题目数量小于需要的题量 组卷失败,抛出异常 正确
3 选择新创建的试卷的试题管理,进行人工组卷 选择题目后面的加号 组卷成功,返回到试卷的详细页可看到刚才添加的试题 正确
4 选择新创建的试卷的试题管理,进行人工组卷 无任何操作 返回到试卷的详细页未看到试卷的题量的改动 正确
5 选择已经进行过组题的试卷的试题管理,进行随机组卷 选择的题库得到题目数量大于或等于需要的题量 组卷成功,返回到试卷的详细页可看到试题信息,题量为设置的题量 正确
6 选择已经进行过组题的试卷的试题管理,进行随机组卷 选择的题库得到题目数量小于需要的题量 组卷失败,抛出异常 正确
7 选择已经进行过组题的试卷的试题管理,进行随机组卷 选择题目后面的加号 组卷成功,返回到试卷的详细页可看到刚才添加的试题 正确
8 选择已经进行过组题的试卷的试题管理,进行随机组卷 无任何操作 返回到试卷的详细页未看到试卷的题量的改动 正确
5.3 测试结论
通过黑盒测试以及白盒测试对系统大多数功能进行了测试,发现系统基本已经实现了当初设计本系统的所有功能,但是通过不断地测试发现系统在效率方面还是有着不少的问题,在同一个用例很多个进程同时触发时,系统的反应明显的慢了很多,但是由于是最初版的,所有有着这些问题也是可以原谅的。所以通过本次的测试,本系统基本满足当前的业务需求。
本文从系统的背景叙述出发到详细的设计,过程中将对应的开发技术以及设计思路清晰的描述出,并根据现实的购物理论设计开发在线考试系统。根据本文中阐述的详细设计以及系统实现使用java技术实现的在线考试系统,并且通过测试基本完成了当初设想的功能。
通过本次的系统开发,让我清晰的了解到从头到尾开发一个系统的难度性,特别是在初期对系统的整体分析和对数据库的设计,如果在前期没有设计好的话,后面再修改就会有很多的局限性,因为在开发本系统的时候,我也出现了这种的问题,由于前期考虑不足,后面需要修改数据库导致之前设计的java类都要跟着修改一遍,而且在开发过程中,代码的书写也是需要注意,对于复杂的业务方面需要写入更多的注释,本系统前后开发二个月的时间,之前写的代码,回头再去看的时候已经发现不理解之前的思路了。
本系统虽然第一阶段开发完成了,但是由于对业务的不熟悉,很多的情况都没有考虑进去,比如学生手机登录进行考试没有开发,这些功能后面对本系统继续开发的过程中将会逐步的完善进去,只有不断地学习不断地突破自己才能取得最终的胜利。