基于JavaWeb学生成绩查询系统设计与实现(论文+源码)_kaic

摘  要
根据开发需求,该系统主要应用于教育系统,完成日常教育工作中学生成绩档案的数字化管理。该系统的开发可以使大学教职员工减轻工作压力,对教学管理,教学服务和信息管理更加系统化,同时可以减少劳动力的使用,加快查询速度,加强管理,以及国家部门对信息的步调,使管理更加规范。目前,学校工作繁杂,资料繁重,尽管各种管理信息系统已经进入大学,但尚未普及,而对于学生成绩管理,目前还没有一个完整,统一的系统。因此,有必要开发一个合适的,具有良好兼容性的流行系统。该系统在开发过程中,要注意使其与业务流程的运作相一致,力争使该系统全面,通用,以便该系统不仅适用于教育机构。在开发方法的选择上,选择生命周期方法和原型方法,并按照四个主要阶段的系统研究,系统分析,系统设计和系统实施进行设计,并在具体设计上,采用进化原型,随着对用户和系统的使用的加深理解,在一部分或几部分中进行分析,设计和实现。本文主要介绍系统分析,系统设计,系统实现和使用。
关键词:学生成绩管理信息系统;信息化;数据库;Asp.net 

Abstract
According to the development needs, the system is mainly applied in the education system, to complete the daily education work of students' records of digital management. The development of this system can make the university staff to reduce the work pressure, teaching management, teaching services and information management more systematic, at the same time can reduce the use of labor force, speed up the inquiry, strengthen the management, as well as the state department of information pace, make the management more standardized. At present, the school works multifarious, the data is heavy, although each kind of management information system has entered the university, but has not popularized, and regarding the student result management, at present has not had a complete, unified system. Therefore, it is necessary to develop a suitable popular system with good compatibility. During the development of the system, it is necessary to make it consistent with the operation of the business process, and strive to make the system comprehensive and universal, so that the system is not only applicable to educational institutions. On the choice of development methods, choose life cycle method and prototype method, and according to the four main stages of system research, system analysis, system design and system implementation, and on the specific design, USES the evolutionary prototype, with the deepening understanding of the use of the user and the system, in part or sections were analyzed, and the design and implementation. This paper mainly introduces system analysis, system design, system implementation and use.
Key words: Student achievement management information system; Informatization; Database; Asp.net

目录
1 绪 论    1
1.1论文背景    1
1.2现有系统存在问题的分析    1
1.3系统开发目标与意义    2
2关键技术的介绍    3
2.1系统开发工具    3
2.1.1 集成开发环境My Eclipse    3
2.1.2 web应用服务器 Tomcat    3
2.2 JAVA技术    4
2.3 SQL Server技术    5
3 学生成绩管理系统分析    6
3.1需求分析    7
3.1.1 系统设计分析    7
3.1.2 系统功能分析    7
3.2 系统的可行性分析    7
3.2.1 技术可行性分析    8
3.2.2 经济可行性分析    8
3.3 系统的开发环境    8
4 学生成绩管理系统的设计    9
4.1系统设计业务目标    9
4.1.1系统设计目标概述    9
4.1.2系统技术性能要求    10
4.2系统结构    11
4.3数据库设计    12
4.3.1概要设计    12
5 学生成绩管理系统详细设计    14
5.1 登录模块的实现    14
5.2 主页功能的实现    15
5.3 成绩管理管理模块的实现    16
5.4 查询管理模块的实现    17
5.5 课程管理模块的实现    18
6 系统的测试    19
6.1系统测试概述    19
6.2系统的测试    19
6.2.1测试的重要性及目的    19
6.2.2测试的步骤    20
6.3界面测试    20
6.4系统测试内容及方式    21
7 结论    22
参考文献    23
谢辞    24

1 绪 论
1.1论文背景
    随着计算机技术的发展,特别是计算机网络技术和数据库技术的发展,人们的生活和工作方式发生了很大变化。网络技术的应用使计算机可以进行通信和共享信息,而数据库技术的应用为人们提供了诸如数据存储,信息检索和信息分析之类的功能,从而使工作效率更高。数据库始于1960年代,经过40多年的发展,现已形成理论体系,成为计算机软件的重要分支。数据库技术体现了当代先进的数据管理方法,使计算机的应用真正渗透到国民经济的各个部门,在数据处理领域中发挥着越来越重要的作用。互联网技术的出现进一步丰富了人们的生活。数字生存已经走进我们的生活和工作。 Internet技术与数据库技术的结合,对计算技术在人类生活中的应用产生了巨大影响。行业信息化,管理现代化,科学化已成为行业发展的重要课题,这不仅是企业提高自身竞争能力,乃至国家提高综合国力的重要手段,也是国家繁荣的重要手段。教育是影响建立的重要产业,随着改革开放和市场经济的发展,根据中国特殊的国情发展,教育得到了国家的大力支持和社会各界的高度重视。各行各业,使教育朝着标准化和现代化高速发展的方向发展,但与发达国家相比,我国教育行业信息技术的应用水平仍然很低,仅在大城市发展起来,较大的大学在早期运作中对我们来说规模很大在计算机方面,从各个方面提高工作效率,都取得了良好的社会和经济效益。一些较新的,规模较小的教育机构并没有全部具备此功能。因此,随着中国教育的飞速发展,信息技术的应用将更加广泛和深入。
1.2现有系统存在问题的分析
在我国,学校中各种信息管理系统并不是一个新话题,但是有些学校没有任何信息管理系统,所有工作几乎都是由人工操作完成的。计算机技术在飞速发展,但是有些学校,特别是西部贫困地区的学校,这种学校管理方式仍然是由人工操作来完成的,这是非常落后的,效率很低,成本非常大,而且极其异常错误。随着社会的发展,信息化是社会进程的必然趋势,学校管理只能迅速,准确,准确地发挥其价值。因此,机器替代人力是历史发展的必然趋势,只有领导者的关注和支持才能改变。手动操作到计算机自动化系统。手动操作将由计算机代替。虽然有些学校使用计算机,甚至使用管理系统,但仍然存在很多问题,一天的问题没有解决,效率不是一天。此外,有些系统如此不完善,以至于它们充满了漏洞,可以说,它们充满了漏洞。这样不完善的系统不能保证管理。
1.3系统开发目标与意义
该系统是现代化的计算机技术与传统的教学,教学管理工作的结合,根据学院的工作流程设计完成。为了使该系统在高校管理中发挥更大的作用,实现工作流程的计算机化,提高工作效率和质量,提出了以下系统开发目标:(1)该系统应具有实用性,可靠性和适用性,并应同时进行升级;(2)态管理每个数据库以防止混乱。(3)能够根据用户选择的不同条件进行简单和复合的查询;(4)能够对查询结果进行分类和汇总,实现报表打印;(5)注意数据的安全性,具有数据备份和恢复功能。

2关键技术的介绍
2.1系统开发工具
2.1.1 集成开发环境My Eclipse
My Eclipse主要支持java,web,移动互联开发,对开源的软件支持非常的良好,其中主要集成了Code review、Green UML等插件。My Eclipse演化了Java EE 5和Spring功效部件,加强EJB3.0工程项目的灵活度,从数据库模式直接孕育bean,联结sys base开发工具Power Designer生成实体bean[12]。另外My Eclipse支持AJAX的开发和测试,RAD WEB开发具备Matisse4MyEclipse可视化Swing设计器[6]。项目自行设计和启用,结合指令的调节和运作模式,自动配置;在此之前自动停止运行的服务器;并且在已具备的应用程序中重新配置,My Eclipse Tomcat 6 服务器就地集成,自动进行JDBC连接,因此My Eclipse是一款能够快速开发实验室成绩级应用的软件。
2.1.2    web应用服务器 Tomcat
    Tomcat的顶层是由service控制整个Tomcat生命周期的集成。Service是由一个container和一个connector组成,container和connector形成一个单独的控制单元,用来提供服务。Tomcat将Engine,Host,Context,Wrapper统一抽象成Container。Tomcat中的connecter中的许多组件都有生命周期,这些组件的生命周期具有一些相同点,因此Tomcat中将具备共同特点的组件抽象为lifecycle接口,借控件的生命周期,通过事务机制传递容器之间的信息[10]。Standard Server,Standard Service,Connector以及其他组件均可实现Lifecycle接口。Tomcat的pipeline valve机制,valve拿到输入的数据,处理完成之后,会将输出数据返回给调用方[11]。在pipeline上遵循配置次序加载各valve,并通过pipeline完成各valve之间的调用,从而实现具体的应用逻辑。一个pipeline包含多个Valve,这些阀共分为两类,一是通过get Basic、set Basic方法调用的基础阀;一是通过add Valve、remove Valve调用的普通阀[13]。另外管道也包存于容器,因此有get Container和set Container方法。一个管道正常有一个基础阀,0到多个普通阀。当管道中的所有阀门都支持异步时,则返回true,反之false。
2.2 JAVA技术
Java语言具有跨平台、多线程等特征。其中跨平台是指用java语言开发的程序,不受硬件和操作系统的限制,可以在任何平台上进行移植[6]。跨平台的优点主要归功于java的虚拟机.其中java虚拟机是java源代码的运行环境,不同的操作系统和平台java有不同的版本,java虚拟机充当了一个中间层,因此java代码可以在不同的操作系统之间进行移植。Java的面向对象是具有封装、继承、多态等特性的不同的实体抽象[1]。Java的安全性主要体现自java语言是一种强类型语言,变量的使用要有严格的定义,并且必须是先定义在使用,变量的值与类型是相对的,否则不可使用。Java编程语言是一种面向对象、通过提供基本方法以完成指定任务的语言。Java的自动垃圾收集及大地简化了程序设计者内存管理工作的程序[6]。多线程技术具有优先特点,运行与优先级成正比,这样就防止了cup的阻塞。Java语言具有十三项核心技术JDBC、JNDF、EJB、RMI、Servlet、JMS、JTS、JAF等其中JDBC是java的数据库连接java Data Base Connectivity的简称是由一组由java类与接口的构成的,可以为多种关系数据库提供统一的语句,而数据库厂商根据数据库的实现提供JDBC的驱动,JDBC的出现使java连接数据库变得更加的简单与稳定,JDBC对java程序提供了操作数据库的接口,使java程序的开发人员不用操作复杂的数据库系统,同时提高了java程序的健壮性[8]。EJB是java EE的服务器组件模型,将java的类,整合在一起在服务器上运行,对于分布式的操作系统具有重要的作用,java提供RMI包。RMI 指的是利用本地调用远程类的方法,使java本地类在某个Java虚拟机上的对象调用另一机器的方法,用此方法调用的对象须实现该远程类所定义的接口[2]。调用时,其参数为“MarShalled”并将其从本地虚拟机发送到远程虚拟机(该远程虚拟机的参数为“unmarshalled”)上。该方法终止时,将编组来自远程机的结果发送到调用方的虚拟机。如果方法调用导致抛出异常,则将指示给调用方[3]。Java的servlet是java服务器编程的控制台,在servlet中存在do get和do post方法用于接收表单传来的数据经过do get或do post传递到数据库或JSP显示的页面。Java的JTS是一个组件监听器具有透明的事务传播,容器与线程相关联等特性能够节省系统资源[4]。
Java语言拥有自己的核心技术与其它语言迥异的运行机制使得JAVA语言在性能上要远远高于其它语言所编写的程勋尤其是在web、与移动互联的方面Java拥有大量的第三方的类库在解析html等方面更加的快捷的同时java的拥有许多的成熟的框架,这在开发的方面具有极大的优势如Spring、Struts、Hibernate、Tomcat[5]。
 2.3 SQL Server技术
SQL Server是一个精简的数据库操作系统,它具有强大的功能和丰富的API。SQL Server是多用户、多线程的数据库服务器。SQL Server是一个b/s布局,由一个服务器程序和多个客户程序构成[7]。
SQL Server的SQL接口是接收用的操作指令,经过数据库后返回相应的结果。解析器是SQL语句在传递过程中会被解析器解析,解析器是由LEX和YACC实现的数据脚本。他们能将QSL语句解析成为关系数据结构,并将这个数据关系处理并且传递给优化器,倘若在解析的过程中出现错误或者无法解析成为优化器所识别的数据,则证明这个SQL语句存在语法拼接错误,优化器是接收到解析器传输过来的数据进行选择,投影,和连接,从而达到优化查询数据速度的目的。如果查询语句没有拼写错误的话,SQL语句会在相应的查询缓存中取出查询结果。缓存是由多个小的缓存构成的,包括,表缓存,记录缓存,主键缓存和视图缓存等相关一系列的缓存, Memory存储引擎可以使用内存中的数据来创建数据表,由于它的数据是放在内存中的因此一旦服务关闭,数据就会发生丢失的状况。

3 学生成绩管理系统分析
3.1 需求分析
自二十一世纪以来,人类经济飞速发展,人们日新月异,特别是计算机在各个领域的经济和社会生活中的应用和普及。 原始的旧管理方法越来越不适合当今社会的发展。 许多人陷于旧的手动操作中。 这极大地阻碍了人类经济的发展。 为了适应现代社会人们高度强烈的时间观念,学校信息管理系统软件为学校办公室带来了极大的便利。
3.1.1 系统设计分析
系统设计分析本系统适用于中小学,其功能是主要分为六类:用户管理:用于添加用户,分配不同的权限以及修改和查询用户课程管理:用于每学期打开和修改课程课程成绩管理:用于输入,修改,总结和年级排名学生信息管理:添加,删除,修改学生信息等教学信息管理:添加和维护教学教师,课程号,学时,班级等信息学生信息查询:查询方法模糊且具有多条件组合的功能。学生成绩统计:本科课程总成绩和平均成绩信息的统计。阀杆性能力求易于使用,混凝土具有高膨胀性和可维护性。
3.1.2系统功能分析
权限功能:系统具有动态的权限分配功能,可按用户权限对用户进行分组。可分为普通用户,一般用户,超级用户。普通用户只是查询不能修改,一般用户只能对授权范围内进行相应修改及删除,超级用户能修改、删除所有信息。
录入功能:为一般用户提供相应的录入功能,为超级用户提供对所有信息的录入功能。
查询功能:为所有用户提供查询的功能,可查询允许范围内的所有信息。
维护功能:为一般学生提供查询及相应的修改,删除功能,为超级用户提供对所有信息的修改删除功能。
退出功能:结束并关闭系统。
3.2系统的可行性分析
3.2.1技术可行性分析
一般对于可行性分析的研究方案,首先从三个方面入手来分析学生成绩系统的进步,比如从技术、经济、社会方面,从这几方面的研究可以躲避投资的失误,并且保证学生成绩系统的成功开发设计,在较短的周期内确定能不能以最小的成本获得解决是可行性研究的目之一。
   从技术可行性方面来说,此次设计的学生成绩系统主要采取HTML5、JAVA和MYSQL数据库进行组合,然后进行设计与开发。JAVA通常是服务器端的脚本环境中运行,它是一个需要创建以及运作动态的Web服务器的程序语言。如今,很多系统都是用HTML5在前台实现的。JAVA的语言兼容性高,安全性高,容易操作数据库,面向对象的学习很容易,所以HTML5在系统应用中很常见。因此,对于技术方面来说,此次开发是可行的。
3.2.2经济可行性分析
首先从经济可行性方面来说,关键是评价项目的经济效益、发展的系统不需要额外的硬件成绩,资金用于开发人员或系统应用人员是能够接受的,和该系统的实现能够更好的完成销售工作,避免对农民造成的成本问题传统的学生成绩展示,帮助农民实现信息管理,所以这个系统的开发在经济上是可行的。。
3.3系统的开发环境
因各种条件的限制,学生成绩管理系统是用个人电脑设计的参数如3-1所示。
表3-1 软硬件参数表
配置    参数
CPU    Intel酷睿i7
主频    3.7GHZ
内存    8GB
硬盘    1TB
操作系统    Windows7  windows server 2008
开发环境    Myeclipse Android studio
数据库    SQL Server

4 学生成绩管理系统的设计
4.1系统设计业务目标
4.1.1系统设计目标概述
    成绩管理信息系统的业务总体目标是建立一个先进、高效、安全、可靠的能被有效和应用于学生成绩管理的信息化数据库管理系统。该系统基于B/S结构,即采用浏览器/服务器模式,服务器端由运行ASP.Net的Web应用程序及运行Microsoft SQL Server2000的数据库服务器组成,客户端可以Internet Explorer,FireFox访问系统。本信息系统体现了学生成绩管理的业务逻辑行为、大大简化了相关工作的烦琐流程,同时为管理层提供有力的决策支持。
管理功能结构图:


教师功能结构图:


4.1.2系统技术性能要求
学生成绩管理信息系统的技术总体目标是应用先进的计算机网络与数据技术为教学工作中的成绩管理提供稳定、安全、可靠信息化服务,具体技术上将达到如下要求:
(1) 先进性
采用先进、成熟的计算机软硬件技术,保障系统能够最大限度的适应今后技术和业务发展的需要。软件结构应实现层次化、模块化、平台化,统一规范,同时采用先进的现代管理技术,以保证系统的科学性。
(2) 开放性
系统将采用具备优良性价比的开放式软硬件平台;网络体系结构支持多种通讯协议、数据库;采用C#等通用开发语言工具;对用户操作平台采用主流的B/S结构。
(3) 可靠性
可靠性包括系统的稳定性和数据的可靠性。系统的稳定性需求包括:满足7*24小时的运行需要,发生局部硬件、网络和软件故障时有相应的旁路技术和容错技术,任意单点故障都不影响整个系统的运行。
数据可靠性需求包括:保证本地备份数据和实时交易数据的一致性,发生局部故障时,数据不损失,发生重大事故时,备份数据可以在规定的时限内恢复。
(4) 高效性
系统的设计要具有大规模的业务并发处理能力,数据的处理和传送也可采用批量处理的形式。即使在日终数据备份和批量处理的时候也可以照常办理业务。
(5) 可用性
可用性包括系统正常情况下的可用性和系统发生改变时的可用性。正常情况下应用软件应安装简单、易于操作、界面友好,数据处理工作简单、方便、快捷。业务流程清晰,符合习惯,系统维护方便,备份及数据恢复快捷简单。同时要在对硬件、软件及应用进行调整时不影响原有业务的实现。 
(6) 可扩展性
高可扩展性指两方面:一方面通过扩充主机、CPU、磁盘、内存等硬件可以提高性能指标,通过扩充网络可以排除阻塞、拥挤和超时;另一方面通过系统开放式体系架构、模块化、参数化以及组件技术,对业务量、业务种类的扩展、与其他机构连接的扩展、系统功能扩展等都能提供足够的支持,缩短系统实施周期。
(7) 可管理性
高可管理性包括正常情况下的可管理性和系统发生改变时的可管理性。可管理性指系统应具备对主机、网络、数据库、应用等情况进行监控、管理和调度;对系统自身所有的和流经系统的信息、参数、文件进行统一的管理和控制。。
4.2系统结构
本系统从功能上划分可分为以下几大模块:功能模块管理,组权限管理,学生信息管理,课程信息管理,学生成绩管理,授课信息管理,学生信息查询,学生成绩统计等几大模块。以下将对各子模块进行说明。
功能模块管理:将系统功能模块保存到数据库中以便于动态地进行不同用户组权限的分配等操作。本模块包括功能模块的添加,删除,修改等。
组权限管理:对用户进行分组,并将权限设置到不同的用户组。
学生信息管理模块:输入学生基本信息,并可以对学生信息进行添加、查询、修改、删除。还可以关键字查询并从数据库里调出的学生基本信息.输出学生基本信息,学号、班号、姓名查询的信息结果。
课程信息管理:设置课程号,课程名,先修课等课程信息。
成绩信息管理模块:输入成绩信息,并可以对成绩信息进行添加、查询、修改、删除。还可以用关键字查询并调出数据库里的学生基本成绩信息的修改、删除等。输出查询的学生成绩信息。
授课信息管理:对教师授课信息的调度,安排等信息的管理。
学生信息查询:本模块是可对学生成绩进行查询,可按学号,姓名,年龄,所在院系,入学年份等不同条件独立查询或进行模糊查询。
学生成绩统计:对学生成绩总分,平均分等进行统计。。


 


  
添加用户    修改用户    删除用户    退出系统
添加学生信息    修改学生信息    删除学生信息    查询学生信息
添加授课信息    修改授课信息
添加成绩信息    修改成绩信息    删除成绩信息    查询成绩信息

  

图4-1 系统模块图
4.3数据库设计
4.3.1概要设计
    数据库表的实体模型如下:
1.管理员的实体图详见图4-2

图4-2管理员实体图
本实验室成绩管理系统中相关数据库表结构设计举例如下:
(1)学生人员信息表Employee,保存主键、学号、姓名、行别等信息,表结构如表4-1所示。

表4-1 学生信息表信息表Employee
字段    类型    是否为空    注释
ID
Name
Age
REX
  CLASS
State    int(10)
char(255)
char(255)
int(10)
int(10)
char(255)    No
No
No
No
No
No    学号
姓名
年龄
性别
所属院校
班级名

(2)成绩表,保存成绩的信息,表结构如表4-2所示。
表4-2成绩信息表
字段    类型    是否为空    注释
ID
Name
Chengji    int(10)
char(255)
char(255)    No
No
No    学号
课程
成绩

5 学生成绩管理系统详细设计
5.1 登录模块的实现
学生成绩管理系统具有密码找回的功能,可以通过邮箱找回。具体实现效果如图5-1所示。

图5-1 登录功能界面
登录功能的部分核心代码如下所示。
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.test.dao.UserDao;
public class LoginServlet extends HttpServlet {
 UserDao userDao=new UserDao();
 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
 }
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  String userName=request.getParameter("userName");
  String password=request.getParameter("password");
  boolean flag=userDao.getSelect(userName, password);
  if (flag) {
   request.getRequestDispatcher("index.jsp").forward(request, response);
  }
  else
   response.sendRedirect("error.jsp");
 }
 }
5.2 主页功能的实现
在主页模块中共分为学生管理模块、班级管理模块、添加教师管理模块、管理学生信息模块、添加课程模块、查询等模块具体实现效果如图5-4所示。

图5-4 主页功能界面
主页功能的部分核心代码如下所示。
public class LoadNameAction extends ActionSupport{
    private Map<String, String> idcard_map;
    private Map<String, String> car_map;
        public Map<String, String> getIdcard_map() {
        return idcard_map;
    }
    public void setIdcard_map(Map<String, String> idcardMap) {
        idcard_map = idcardMap;
    }
    public Map<String, String> getCar_map() {
        return car_map;
    }
    public void setCar_map(Map<String, String> carMap) {
        car_map = carMap;
    }
    @Override
    public String execute() throws Exception {
        idcard_map = new LoadDaoImpl().selIdcard();
        car_map = new Factory().car_map();
        return super.execute();
    }
5.3 成绩管理管理模块的实现
成绩管理,可以检索成绩的详细信息和新增加成绩和检索成绩实现效果如图5-5、图5-6所示。

图5-5 检索成绩页面
成绩查询功能的部分核心代码如下所示。
public class LoadInsAction extends ActionSupport    
    public String execute() throws Exception {
        String flag = "error";
        date = new Factory().YmdToDate(year, month, day);
        int rs = new LoadDaoImpl().upd(idcard, date, name, car);
        if(rs==1){
            flag = "success";
        }
        return flag;
    }
}
5.4 查询管理模块的实现
通过成绩查询,能够查看课程、分数、考试时间、考试类型等信息,具体信息具体如图5-7所示。

图5-7 查询功能界面
查询功能的部分核心代码如下所示。
    @Override
    public String execute() throws Exception {
        String flag = "error";
        date = new Factory().YmdToDate(year, month, day);
        int rs = new RemoveDaoImpl().ins(idcard, goods, "1", date, name);
        if(rs==1){
            flag = "success";
        }
        idcard = new RemoveDaoImpl().selIdcard();
        return flag;
    }
5.5 课程管理模块的实现
通过课程,能够查看课程、学时、编辑、删除、考试类型等信息,具体信息具体如图5-7所示。

图5-7 课程管理界面
课程功能的部分核心代码如下所示。
    @Override
    public String execute() throws Exception {
        String flag = "error";
        date = new Factory().YmdToDate(year, month, day);
        int rs = new RemoveDaoImpl().ins(idcard, goods, "1", date, name);
        if(rs==1){
            flag = "success";
        }
        idcard = new RemoveDaoImpl().selIdcard();
        return flag;
    }


6 系统的测试
6.1系统测试概述
随着web应用的增多,新的模式解决方案中以web为核心的应用也越来越多,很多公司各种应用的架构都以B/S及web应用为主,但是有关WEB测试方面的内容并没有相应的总结,因此,在开发空警管理系统时,对web应用程序的测试方法和采用的测试技术进行总结。测试方法尽量涵盖web程序的各个方面,测试技术方面在继承传统测试技术的技术上结合web应用的特点。因为它需要覆盖系统运作所需的所有功能和硬件成绩,以下是一些一般的系统测试部分:
功能测试:所谓功能测试是指,在系统系统开发完成后,或者完成一个功能后进行的测试,主要是测试明确软件是否存在潜在问题,并找到并纠正它们以保障系统的正常运作,功能测试的目的是为了检验程序是不是与用户的需要不一样或者有矛盾存在,功能测试用于建立一个完整的测试缺陷记录库。
性能测试:系统运作占用的内存,实现某一功能的时间,系统可以承担的压力,还有数据库连接完成后,时候可以马上恢复常态。
模块测试:一般在好的系统的开发设计公司中,公司成员要对各个不同的模块下的子模块进行测试,而且各个模块的子模块相互之间不受影响。因此,每个模块能够单独测试,这将使检测每个子函数的正确性变得更容易,并且它也将使查找错误变得更容易和更快。
回归测试:验证错误是否正确
6.2系统的测试
6.2.1测试的重要性及目的
    在软件生命周期中,软件的测试十分重要。在传统的开发模型中,软件测试在当前仍处于运行维护的关键时期。近年来,软件工程中出现了一种新观点,认为软件每一阶段中的生命周期都理应该包含阶段测试,因此使用检查本阶段的成果能不能接近预期的结果目标,进而尽早发现到错误并且改正,如果测试不是在早期阶段进行的,那么错误会扩大到整个程序,最后常常会导致成品测试面临巨大的困难,甚至从头再来。 
对于软件来说,系统中仍然会出现意外的错误。采取新型的开发方式、稳定的开发语言、完备的开发过程,可以最大程度的降低错误,但还不能完全的发现软件中潜在的错误,这需通过测试来检测。
测试是所最基本的元素,是软件开发的重要部分。有数据表明,在具有明显特点的软件开发项目中,软件测试的工作量占软件开发总工作量的比例超过40%。而在软件开发的总成本中,测试开销则占据30%~50%。
6.2.2测试的步骤
系统开发的过程中测试工作的过程也需分步进行并一脉相承。大型系统软件包括若干的子系统,每个子系统又由若干个小模块构成。因此,大型系统软件的测试分为以下步骤:
(1)模块测试:检查子模块在编码和数据结构上发生的错误。
(2)系统测试:整体测试软件检查是否完成了需求规格说明书所需要的功能,并且在模块调用的过程中是否发生问题,数据的计算是否正确。
(3)验收测试:是否完成了所有的功能,所有的数据是否能够传输成功。
6.3界面测试
很多人认为这是测试中最不重要的部分,但是恰恰相反界面测试是相当重要的确。
方法上可以根据设计文档,然后根据这个可以页面人员可以生成静态的HTML,CSS等甚至生成几套不用的方案来进行。
主要包括以下几个方面的内容:
站点地图和导航条位置、是否合理、是否可以导航等内容布局布局是否合理,是否正确背景/色调是否正确、美观,是否符合用户需求;页面在窗口中的显示是否正确、美观(在调整浏览器窗口大小时,屏幕刷新是否正确)表单样式大小,格式,是否对提交数据进行验证(如果在页面部分进行验证的话)等连接连接的形式,位置,是否易于理解等。页面元素的容错性列表、页面元素清单、页面元素的容错性是否存在、页面元素的容错性是否正确、页面元素基本功能是否实现、页面元素的外形、页面元素是否显示正确。注:页面元素清单(为实现功能,是否将所需要的元素全部都列出来了,如按钮、单选框、复选框、列表框、超连接、输入框等等) 
6.4系统测试内容及方式
系统测试主要包括对配置的测试,页面布局的测试还有性能的测试主要对以下模块进行性能的测试,首先是用户的登录以及注册功能,其次是用户能不能对学生成绩信息的修改、删除、增加、查询全部的内容,包括文字和图片以及安全性测试[4]。
通常我们在系统开发设计中,如果开发完成后要对整个系统系统进行测试,那么通常用的有两种测试系统的方法:
(1)黑盒测试:所谓黑盒测试是指系统系统已知的功能中,测试各个功能是否达到客户的需求。黑盒测试是指在编写的接口上进行的测试,通常也叫做功能性的测试。黑盒测试是在软件的基础上进行的,以明确系统是否满足以前用户的需要。正确输入预期内容,看看功能是否能正确实现。而输入过程保证了外部信息的完整性。
(2)白盒测试:白盒测试是指对软件进行更详细的检查。这个方法与黑盒测试正好相反。通过这种方式,测试人员能够看到内部信息并使用内部信息来选择新的测试。通过设置不同的测试用例来检查系统,白盒测试也被人叫做驱动测试,还有一种叫法叫做构成测试。

7 结论
从开始进行此设计到现在已将近一学期,学生成绩信息管理系统的设计即将完工。从刚开始对系统设计的迷茫、无从下手到有点想法进入状态,再到拨开迷雾、思路清晰,在这整个过程中我收获了很多的新知识,也学到了很多。
毕业设计初期的构思是一个痛苦的过程,恰好才思敏捷并不是我的能力,所以前期需要查阅很多书籍,从书本的学习中找寻思路。虽然刚开始并未收获预期效果,但是对于大致的软件运用有了进一步的了解。网上查询和书籍上的例子给我带来了巨大的收获,我开始有了一些好的构思,整个系统的架构也就出来了。
中期,我开始尝试将知识线连接起来初步设计一个基本框架,真是应了那句“绝知此事要躬行”。实践起来发现原来的构思属于理想型,而现实是存在差距的,只好改变策略,重新规划,最后理想型遗憾收场。系统重要的一部分,数据库的建立,在这个过程中也是亲身感受到了实践和错误是一件多么重要的事情。MySQL之前是用DOS窗口建立数据库的,但是那样建立的表处理上不方便,不能直观的查看删除和添加、修改,需要查看、删除、添加、修改时又过于复杂,要输入相应的指令才能实现,Tomcat的配置时查阅资料上显示配置之后能打开网址就是成功,但是一直打不开网址,尝试几遍都无用功一般。这真是令人头大,于是我请教了同学,才知道原来我关掉DOS窗口再去打开网址是不对的,那样相当于我关闭了服务器。设计过程中对于CSS以及JSP、Java的技术并不熟练,但是通过例子、模板一点一点的查询资料之后,慢慢修改、尝试、调试,最终也算是初见成效,系统的前端和后端功能模块也就逐渐成形了。
最后在系统登录之后有些功能不能实现,经查阅与请教发现原因是浏览器不兼容,需要使用系统自带的IE浏览器。系统调试中遇404错误但在改掉错误的路径配置之后便解决了。
设计过程中让我懂得了知识是无穷尽的,学会从实践中找到解决问题的方法。一时的错误是好事,它能让我们发现自己的不足,并针对它而改变,这是一种能力的提升过程。

参考文献
[1] 耿祥义,张跃平.JAVA程序设计实用教程[M]. 北京:人民邮电出版社,2016
[2] 陈海山.深入JAVA Servlet网络编程[M].北京:清华大学出版社,2017.
[3] (美)埃克尔,陈昊鹏.JAVA编程思想(第4版)[M]. 北京:机械工业出版社,2015
[4] 李兴华.JAVA开发实战经典(名师讲坛)[M]. 北京:清华大学出版社,2015.8.
[5] 柏亚军.JSP编程技巧[M].北京:机械工业出版社,2015
[6] 李刚.疯狂JAVA:突破程序员基本功的16课[M]. 北京:人民邮电出版社,2016.5.
[7] 王珊,萨师煊,数据库系统概论(第5版).北京:高等教育出版社,2017.12.
[8] W.Clay Richardson , Donald Avondolio 等著.黄湘情,黄亚葵(译).Java高级编程(JDK6版). 北京:北京人民邮电出版社,2016.
[9] 朱玉超,鞠艳,王代勇.ASP.NET项目开发教程.北京:电子工业出版社,2016.
[10] Christian Wenz. Programming ASP.NET AJAX. 南京:东南大学出版社,2018.
[11] 金秀,冯沃辉,施鸿翔.ASP动态网页培训教程.北京:冶金工业出版社,2017.
[12] 沈精虎.Dreamweaver中文版基础培训教程.北京:人民邮电出版社,2016.
[13] McLaughli,Pollice&West.Head,First Object-Oriented Analysis&Design[M],O'R
eilly Media,Inc.2015,4
[14] Kathy Sierra. Head First JAVA[M]. 北京:中国电力出版社,2016.
[15] E.Horowitz and S.Sahni, Fundamentals of Data Structures, by Pitmen Publishing Limited,2015.
[16] P.J.Baron and L.G..Shapiro,Data Structures and their Implementation, by Van Nostrand Reinhold Company,2017

谢  辞    
此次的毕业设计的完成,首先要感谢的是,当然是老师,这篇论文是在老师的指导下修改完成的。通过这次毕业论文设计中,我从慧艳老师那里学到了很多对于我们毕设过程中存在的问题老师也耐心的对我们指正,在我的心里老师就是一个上帝,对于我的任何问题,任何事情,在我遇到的所有困难到了老师那里都会迎刃而解,这是一个很好的老师,我要谢谢老师对我那么的有耐心。她在理论和实践上都给了我极大的帮助,给了我很大的进步。在这段时间里,我不仅从她那里学到了很多专业知识,还觉得她在工作上很认真。此外,她严谨的研究态度和敬业精神值得学习。
其次,我还要感谢我的老师在这四年里和我的同学们的教导。而这四年我接触到的每一位学院的老师都是为人师表的典范,他们教给我的除了丰富的专业知识,还教会我如何做人,如何在社会中立足,给我留下了纯洁的友谊和许多美好的回忆。
最后,我不断前进的道路上充满的是父母默默的支持以及付出,他们的关爱让我明白家庭永远是我的港湾,谢谢父母的包容与理解。此外还要感谢在大学四年的这段时间给予我的支持,他们为我的方案提供了许多思路以及启发,让我对自己的方案理解的更深入透彻。没有他们对爱和支持的关心,我将没有机会在这样的场合对他们说一句感谢的话。我非常感激他们对我学习和生活的支持。

猜你喜欢

转载自blog.csdn.net/weixin_39563171/article/details/133254453