目 录
第一章 绪 论
随着计算机及网络技术的飞速发展,Internet应用在全球范围内日益普及,信息系统的作用也越来越大。为了使人们能够在所居住的地方及时得到相应的信息,大量信息网也随着相应出现。本次毕业设计就是设计一个都市供求信息网站。在本系统中所做的工作是对招聘、房屋租赁、培训等信息的发布机展示,后台信息管理模块中公告管理模块,以及数据库管理模块的设计。
1.1 课题背景
社会的快速发展,网络的普及给人们带了意想不到的好处,尤其是在信息传递这方面尤为突出。为了让人们能够及时快速的查找到自己所需的信息,各种信息网随着出现,并且日臻成熟。随着网络和社会信息化的发展,人们可以通过网络发布和获取信息。人们日常生活,工作和学习也越来越多地依赖网络。包含大量的企业招聘,房屋租赁,培训等信息。
本次毕业设计实现以B/S(Brower/Server)结构、用SSH框架来搭建MVC(Model/Viewer/Controller)框架的设计。也就是以网上搜索信息的形式,搭建一个公共信息平台,为任何访问本网站的客户提供优质的商业服务、可靠的商业信息、最新的商业机会。
1.2 课题意义
课题研究的意义主要在于改变传统的信息查询模式,最大化的发挥网络信息服务的优势和特点。主要是为大量的个人用户及企业提供基本信息发布和查询,为个人与个人、个人与企业、企业与企业之间进行信息通信提供服务。既能实现传统意义上的业务服务,又能够体现信息时代所具有的跨地区、跨行业的特性。
在充分利用网络通讯服务的无地域差别的特点,能够为商品的快速流通,提高一定的效率;为人才流动以及劳动力寻找再就业和创业提高了成功率;同时也能够为人们旅游提供咨询帮助以及为旅行社的业务扩展提供平台。
为此,本课题依托于人力资源管理信息化、电子化的现状,设计了基于SSH框架的都市供求信息网。
1.3 开发目标
因本系统包括11个模块,鉴于分工合作的要求,不仅要设计及实现数据库管理模块、个人信息模块、商品与信息的搜索模块、后台的公告管理模块。同时要保障所设计的内容能够和其他两个组员设计的内容能够实现兼容,让整个系统能够正常的运行。
另外能够使用户在操作上感到方便易用。不会因初次登录本系统而无从下手。同时尽量使本系统所包含的信息足够的全面,能够满足用户查找信息的需求。
第二章 绪 论
2.1 Java 程序开发技术
java不仅是编程语言,还是一个开发平台,java技术给程序员提供了许多工具:编译器、解释器、文档生成器和文件打包工具等等。同时java还是一个程序发布平台,有两种主要的"发布环境",首先java运行时环境(java runtime environment,简称JRE)包含了完整的类文件包,其次许多主要的浏览器都提供了java解释器和运行时环境。目前Sun公司把java平台划分成J2EE、J2SE、J2ME三个平台,针对不同的市场目标和设备进行定位。J2EE是Java2 Enterprise Edition,主要目的是为企业计算提供一个应用服务器的运行和开发平台[6]。J2EE本身是一个开放的标准,任何软件厂商都可以推出自己的符合J2EE标准的产品,使用户可以有多种选择。
1、Java语言是简单的。Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C++ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。
2、Java语言是一个面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++ 语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。
3、Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、 ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
4、Java语言是健壮的。Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。
5、Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。
6、Java语言是体系结构中立的。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件), 然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。
7、Java语言是可移植的。这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。
8、Java语言是解释型的。如前所述,Java程序在Java平台上被编译为字节码格式, 然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。
9、Java是高性能的。与那些解释型的高级脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。
2.2 Apache Tomcat 6.0
Tomcat是一个小型的轻量级应用服务器,它是由Apache 软件基金会的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。目前较为稳定的版本是tomcat7。系统采用的正是Apache Tomcat7。
Tomcat是一个免费的开源的Serlvet容器,在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的JSP时,通常第一次会很慢,因为Tomcat要将JSP转化为Servlet文件,然后编译。编译以后,访问将会很快。另外Tomcat也提供了一个应用:manager,访问这个应用需要用户名和密码,用户名和密码存储在一个xml文件中。通过这个应用,辅助于FTP,你可以在远程通过Web部署和撤销应用。当然本地也可以。
Tomcat也具有传统的Web服务器的功能:处理HTML页面。但是与Apache相比,它的处理静态HTML的能力就不如Apache。我们可以将Tomcat和Apache集成到一块,让Apache处理静态HTML,而Tomcat处理JSP和Servlet。这种集成只需要修改一下Apache和Tomcat的配置文件即可[8]。
Tomcat确实是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性。如今,开源软件越来越收到人们的重视,Linux就是一个成功的典型。人们不再限于只使用软件,而且已经关心起软件的具体实现。
2.3 MyEclipse 2014
MyEclipse,是一个十分优秀的用于开发Java, J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开元产品的支持十分不错。利用它可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能。目前最新的版本为8.5,系统所使用的版本为6.5。
2.4 MySQL 5.5
MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司[1]。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一点,系统采用的是Mysql数据库。
第三章 系统分析
3.1 系统目标
系统设计的最终目的就是为了能够让用户方便的使用。因用户要想在网站上进行操作就需要进行一个用户创建步骤。那么在设计时,就需要完成创建普通用户的功能。同时系统还必须有管理员这类用户的存在,从系统的安全方面考虑,在这里系统不提供管理员创建的功能,而是根据需要在数据库中直接添加。但不论是普通用户还是管理员用户,管理员应该具有修改用户信息的权限。
管理员这类用户添加成功后,就要考虑它所能拥有的权限。在本子系统中主要考虑的是在公告管理模块中有拥有的权限,即发布信息、评论审核、信息审核、用户管理。而为了系统的管理安全,普通用户只能有查看公告、发布信息的权限。通过管理员发布信息及对普通用户发布信息的审核可以做到及时提醒用户网站的最新动态,提高网站的点击率。
3.2 系统界面设计
开发一个系统就是为了让用户使用,而本系统的用户可以分为个人用户、企业用户和管理员用户。不论哪种用户,在设计时都要尽可能从用户的角度出发。当用户在操作时,感到简单方便,无疑这个系统就已经成功了一半。所以在系统(子系统)设计的过程中,都要先把自己当成一个用户,其次是开发人员。只有在这样的前提下,才能够设计出一款符合实际情况的系统。一个完整的信息系统应该具有前台展示和后台信息管理的功能,下面分别对前台展示和后台管理做详细的设计。
3.2.1 前台展示设计
参考一般信息发布网站的信息范围,应包含生活中的方方面面,因此在本系统的前台应该有首页、招聘信息、培训信息、房屋信息、求购信息、招商引资、公寓信息、家教信息和出售信息等。在每个信息模块中,应区分出个人和企业的信息,其详细的模块设计图如图3.2.1所示:
图3.2.1 前台设计显示框架
对于每一条已经发布的信息,游客应当可以对内容进行评论,当通过审核后,其他游客可以看到评论的内容,这样会方便游客对网站信息的了解。
3.2.2 后台管理设计
后台部分主要是对信息的管理,本系统共包含两类用户,分别是个人用户、企业用户和管理员。个人用户和企业用户可以在前台展示页面点击注册按钮进行注册,也可以在后台由系统管理员添加。
管理员用户要包含四个模块,分别是评论审核、发布信息、信息审核和用户管理。评论和信息审核是对用户对某条信息评论及发布的信息进行审核,看看是否符合法律法规,防止网站被不法分子滥用。管理员也可以发布信息,同时也可以对用户进行管理。个人用户具有评论信息和发布信息的功能。企业用户具有评论审核、发布信息和信息审核的功能。详细设计分别如图3.2.2所示:
图3.2.2 后台设计显示框架
3.3 数据库设计
本系统使用MySQL数据库, MySQL是一个小型关系型数据库管理系统。其拥有众多特性:使用C和C++编写,并使用多种编译器进行测试,保证源代码的可移植性;支持多线程,能够充分利用CPU资源;支持Windows、Linux、AIX、Solaris、OS/2Wrap等多种操作系统;优化的SQL查询算法,有效地提高查询速度,既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余。而且由于MySQL是开放源码软件,因此任何人都可以再Genral Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。同时可以大大降低总体拥有成本。
在通过以上用例分析和活动分析的情况下,为这个子系统设计了数据库表,分别如下:
表3-3-1 系统表汇总
表名 |
功能说明 |
cimager |
图片表,用来存储上传的图片 |
cuser |
用户登录信息表,用来记录用户的登录信息 |
info |
信息表,用记录发布的信息 |
Infotype |
信息类型表,记录信息类型,如培训信息、招聘信息等 |
Review |
评论内容表,用来记录评论的内容、时间 |
Tmenu |
模块菜单表,用来三个角色的功能模块 |
Usermenu |
用户菜单表,记录登录用户的菜单类别 |
Usertype |
用户类型表,用来记录用户属于哪一类 |
表3-3-2 图片表
名 |
类型 |
长度 |
十进制 |
是否为空 |
注释 |
ImageId |
Int |
11 |
0 |
否 |
主键 |
ImageFilePath |
varchar |
20 |
0 |
是 |
上传路径 |
ImageRelativePath |
varchar |
20 |
0 |
是 |
图片相关路径 |
表2-9用户登录信息表
名 |
类型 |
长度 |
十进制 |
是否为空 |
注释 |
UserId |
Int |
11 |
0 |
否 |
主键 |
UserLoginName |
varchar |
20 |
0 |
是 |
用户名 |
UserPass |
varchar |
20 |
0 |
是 |
密码 |
UserIDCard |
varchar |
20 |
0 |
是 |
身份证号 |
UserAge |
Int |
10 |
0 |
是 |
用户年龄 |
UserInfo |
varchar |
30 |
0 |
是 |
用户信息 |
UserTypeId |
varchar |
10 |
0 |
是 |
用户类型号 |
IsDelete |
varchar |
20 |
0 |
是 |
是否删除过 |
表3-3-3发布信息表
名 |
类型 |
长度 |
十进制 |
是否为空 |
注释 |
InfoId |
Int |
11 |
0 |
否 |
主键 |
InfoTypeID |
varchar |
20 |
0 |
是 |
信息类型 |
ReviewID |
varchar |
30 |
0 |
是 |
评论ID |
ImageID |
varchar |
0 |
0 |
是 |
发布时间 |
UserId |
Int |
11 |
0 |
否 |
用户号码 |
IsAgree |
Int |
10 |
0 |
是 |
是否通过 |
InfoTime |
datetime |
10 |
0 |
是 |
发布日期 |
ReadCount |
varchar |
20 |
0 |
是 |
阅读次数 |
Price |
varchar |
20 |
0 |
是 |
价格 |
InfoTitle |
varchar |
20 |
0 |
是 |
信息标题 |
InfoContent |
varchar |
200 |
0 |
是 |
信息内容 |
表3-3-4 信息类型表
名 |
类型 |
长度 |
十进制 |
是否为空 |
注释 |
InfoTypeId |
Int |
11 |
0 |
否 |
主键 |
InfoTypeName |
varchar |
20 |
0 |
是 |
信息类型名 |
表3-3-5信息评论表
名 |
类型 |
长度 |
十进制 |
是否为空 |
注释 |
ReviewId |
Int |
11 |
0 |
否 |
主键 |
UserId |
varchar |
20 |
0 |
是 |
用户ID |
ReviewContent |
varchar |
20 |
0 |
是 |
评论内容 |
IsAgree |
varchar |
20 |
0 |
是 |
是否通过 |
UserName |
Int |
10 |
0 |
是 |
用户名 |
ReviewTime |
Datetime |
30 |
0 |
是 |
评论时间 |
InfoId |
varchar |
10 |
0 |
是 |
信息ID |
表3-3-6菜单表
名 |
类型 |
长度 |
十进制 |
是否为空 |
注释 |
Id |
Int |
11 |
0 |
非空 |
主键 |
IconCls |
varchar |
10 |
0 |
空 |
图标 |
Text |
varchar |
10 |
0 |
空 |
内容 |
URL |
varchar |
20 |
0 |
空 |
跳转链接 |
Pid |
varchar |
20 |
0 |
空 |
身份标识 |
表3-3-7用户菜单表
名 |
类型 |
长度 |
十进制 |
是否为空 |
注释 |
UserMenuID |
Int |
11 |
0 |
非空 |
主键 |
UserType |
varchar |
10 |
0 |
空 |
用户类型 |
MenuID |
varchar |
10 |
0 |
空 |
菜单ID |
表3-3-8用户类型表
名 |
类型 |
长度 |
十进制 |
是否为空 |
注释 |
UserTypeId |
Int |
11 |
0 |
非空 |
主键 |
UserTypeName |
varchar |
10 |
0 |
空 |
用户类型名 |
第四章 系统设计与实现
本系统是用SSH框架的设计,而根据系统的需求分析,本系统设计了两种用户,分别是系统管理员、个人用户和企业用户。在个人用户中,仅涉及到信息发布模块,而企业用户则涉及到评论审核、发布信息和信息审核三个模块。对于管理员用户,还需要在企业用户的基础上增添一个用户管理模块,用户对各类用户的管理。在系统架构的基础上对负责的这四个模块的功能,设计所用到的技术、解决思路及实现过程进行详细描述。
4.1 前台页面展示信息模块(有问题)
前台页面的主要功能是对发布信息的一个展示,按照设计要求,共设置八个模块,分别是招聘信息、培训信息、房屋信息、求购信息、招商引资、公寓信息、家教信息和出售信息,为了使导航便捷,额外添加了一个首页按钮。点击菜单项后,跳转到对应的信息展示页面。首页显示如图4.1.1所示:
图4-1-1 首页展示页面
在首页的右上侧,有登录、注册、返回首页、网站地图、关于我们和联系我们等六个选项。所有用户都可以点击登录进入后台管理。如果是游客,则需要注册后才能登录,注册时,需要按照提示填入自己的信息,注册界面如图4.1.2所示:
图4-1-2 注册页面
菜单栏下册是一个用于推广的产品展示,这个位置一般用于广告出租,以此来赚取维持网站正常运转所需的部分资金。中间是一个宣传的轮换图片,两端是推广信息的标题,如图4.1.3所示:
图4-1-3 推广展示界面
推广界面下方即为各类发布的信息,每类信息均分为个人和企业信息,这样极大的方便了游客和用户查找信息。点击某条信息跳转到详细展示界面,会显示出信息标题、发布人、发布时间、发布内容,还可以显示出图片和评论内容,如图4.1.4所示:
图4-1-4 推广展示界面
点击评论,可以对这条信息进行评论,游客也可以发表评论内容。如果是企业信息,评论内容由企业用户审核通过后,其他人才能看到;如果是个人信息,则需要系统管理员审核。点击评论,会弹出评论窗口,可以添加文字、表情、图片等内容,如图4.1.5所示:
图4-1-5 推广展示界面
4.2 后台信息管理模块
后台分为两类用户,分别是管理员和普通用户,为了管理方便,普通用户又分为个人和企业用户两种。他们使用同一个登录入口,后台会根据他们的类别判断自动跳转到对应的权限页面,登录界面如图4.2所示:
图4.2 登录界面
4.2.1管理员界面
管理员界面的右侧为导航栏,管理员有四个功能,分别是评论审核、发布信息、信息审核和用户管理。点击菜单栏后,在右侧显示出对应的功能展示,并可以对其进行操作。
评论审核是审核游客对信息的评论内容,检查其内容是否符合法律法规,有无歧视等。管理员可以根据有无审核过对评论内容进行查询,同时也可以对评论内容进行删除,如图4.2.1.1所示:
图4-2-1-1 评论审核界面
管理员可以通过点击发布信息菜单进行信息发布,且无需再进行审核。发布信息时,点击增加即可。同时管理员还可以对已经发布过的信息进行编辑、删除、取消编辑等操作。在信息类型里选择信息类别,点击查询可以精确查找到发布过的类别信息。功能展示如图4.2.1.2所示:
图4-2-1-2 评论审核界面
信息审核主要是对个人和企业用户发布的信息进行审核,点击详细后即可查看到信息的详细内容,如果不处理则表示信息没有通过;选中信息后,点击通过后,信息就会在前台展示出来,如图4.2.1.3所示:
图4-2-1-3 信息审核界面
在用户管理菜单中,有两个查询框,前面的是对用户名的模糊查询,右边的是按用户类别进行查询。如果点击所有按钮,则查询出所有用户。作为系统管理员,可以对一切类型的用户进行增加、删除、修改,如图4.2.1.4所示:
图4-2-1-3 用户管理界面
4.2.2个人用户管理界面
在本系统的三种类型的用户中,个人用户的权限最小,仅有一个发布信息的功能。同管理员界面相同,左侧显示导航菜单栏,右侧显示出对应的功能信息。选择已经发布信息的类别,点击查询可以精确查询到对应的信息。在发布信息时,点击增加按钮,按照提示填入标题、内容、信息类型,系统会根据登录信息自动录入发布时间、信息发布者编号和信息发布者。个人用户也可以对已经发布的信息进行编辑、删除、保存等操作,如图4.2.2.1所示:
图4-2-2-1 用户管理界面
4.2.3企业用户管理界面
企业用户有三个功能菜单,分别是评论审核、发布信息和信息审核。页面布局同管理员和个人用户相同,左侧是导航菜单栏,右侧是功能展示操作,右上角为安全退出按钮。
在评论审核中,可以查看到游客对发布信息的评论内容并进行审核。通过点击所有评论和待审核按钮,可以查询到已通过和未通过审核的评论信息,也可以删除评论,如图4.2.3.1所示:
图4-2-3-1 评论审核界面
发布信息同管理员发布信息相同,按照提示进行操作,并且无需通过审核,点击保存后可以自动通过审核,如图4.2.3.2所示:
图4-2-3-2 信息发布界面
在信息审核中,可以对个人用户发布的信息进行审核。选中信息后,点击通过即可使信息展示在前台界面上,如果不操作则表示信息没有通过审核,如图4.2.3.3所示:
图4-2-3-3 信息发布界面
6.1 软件测试的目标
软件测试的目的就是为了发现程序中的错误而执行程序的过程,这是一种以反向思维的方式来验证程序正确性的办法,就是测试各种情况而未发现错误,可认为该软件是基本可用的。软件测试从不同的角度出发有两种不同的测试原则:
(一)从用户的角度出发,希望通过软件测试流程可以充分暴露软件中存在的缺陷和问题,从而确认是否可以接受该产品;
(二)从开发者的角度出发,希望通过测试可以表明软件产品不存在错误,并且已经能够满足用户的需求、正常使用,以此来确立用户对该软件质量的信心。
这两种观点都是人们处在不同位置时正常的心理反应,除了这些主观的因素外,正确的认识软件测试目的是十分重要的,因为目标的确定可以直接决定测试方案的设计,最终影响到测试结果和对软件正确性的评价。
6.2 软件测试的方法
系统测试的任务是尽可能彻底的检查出程序中的错误,提高软件系统的可靠性,其目的是检测系统“做得怎样?”。这阶段又可分为三个步骤:模块测试,测试每个模块的程序是否有错误;组装测试,测试模块之间的接口是否正确;确认测试,测试整个软件系统是否满足用户功能和性能的要求。该阶段结束应交付测试报告,说明测试数据的选择,测试用例以及测试结果是否符合预期结果。测试发现问题之后要经过调试找出错误原因和位置,然后进行改正。
本系统采用的是黑盒测试技术。先是系统进行了功能测试,即测试了本系统的功能是否与系统需求用例相符。在功能测试的过程中,对各个模块(用户注册模块、审核模块、搜索模块)中检测到的问题进行了跟踪处理;其后进行了界面测试,以确保用户界面的美观度、统一性、易用性等方面的内容。 最后对测试出现的问题进行了总结,然后在同小组其他成员所遇到的问题进行综合。能够进一步的完善系统,能够使系统更加稳定。
对于软件而言,如果要查找出所有的错误,所作的测试应尽可能全面:一方面通过测试来检查软件每个功能的执行情况;另一方面,详细测试软件执行的内部过程是否完全按照规格说明书上的规定正常运行。两方面的测试分别称为黑盒测试和白盒测试。白盒测试法是通过分析程序内部的逻辑与执行路径来设计测试用例,并对用例进行测试的方法因此也称作结构测试或逻辑驱动方法。黑盒测试法是根据输入/输出数据条件来设计测试用例,查看程序的功能是否正确或满足要求,不需要考虑程序的内部结构与执行路径如何,因此也称作功能驱动或数据驱动测试方法。两种测试方法的侧重点不同,分别应用于测试的不同阶段,基本上能够覆盖用户需求及代码实现,从而保证测试的完全性和彻底性。
软件的白盒测试法是对程序的执行细节进行测试,通过设计测试数据,验证程序模块的每个路径的执行情况。执行路径包括所有的逻辑判定、循环的边界条件和界限内条件等,当程序的逻辑相对简单时,基本能够保证验证所有路径。但是,当遇到多重选择或多层循环嵌套时,不同的路径组合后数目是十分庞大的,无法实现完全的验证。因此,对于测试数据的选择就很关键,它对路径的覆盖程序直接影响测试的效果。
黑盒测试法是把软件看成一个黑盒子,完全不考虑程序的内部的框架结构和处理过程。它只检查软件的功能是否能按照规格说明书的内容正常实现,程序接收输入数据能否产生正确的输出信息,并且还可以保持外部信息的完整性 [10]。黑盒法设计程序测试用例的方法有三种,分别是错误推测法、边界值分析法和等价类划分法,它们的主要目的是设法以少量的测试数据子集来测试出软件系统尽可能多的错误。
6.3 软件测试的步骤
1.单元测试。单元测试也称模块测试,是针对软件设计的最小单元程序模块进行测试的工作。其目的是发现模块内部的错误,修改这些错误使其代码可以正确运行。其中,多个功能独立的程序模块能够进行并行测试[11]。
2.集成测试。集成测试也称为组装测试,它的任务是按照特定的策略对要进行单元测试的模块进行组装,同时在组装过程中能够进行模块接口与系统功能测试。
3.确认测试。确认测试也可以称为有效性测试,它的主要目的是验证软件的有效性,就是验证软件的性能和功能及其他特性是否与用户要求一致[11]。软件的功能和性要求参照软件需求说明书进行测试。
4.系统测试。经过了前面一系列测试,软件的功能已经能基本符合要求,之后进行系统测试的主要目的是为了测试软件当被安装到实际应用的操作系统中后,是否可以与系统的其余部分进行协调工作,以及在系统运行可能出现的各种情况的处理能力。
6.4 测试用例
1.系统登录模块
测试数据:用户名111与密码111,用户名222与密码222,用户名333与密码333。
测试结果:当用户名与密码正确时,进入系统进行操作。用户分为系统管理员与普通用户,系统管理员可做管理操作,而普通管理员则只可进行一些权限内的基本操作。
2.添加模块
测试数据:输入与界面提示的相关信息,并遵从提示,进行操作。
测试结果:输入的内容部分不能为空或者错误内容,并且可以将要添加的内容保存到数据库中。
3.删除模块
测试结果:当进行删除操作时,检查要删除的数据是否在存数据库中移除。若数据消失,删除操作就成功了;反之,此操作就失败了。
4.修改模块
测试结果:当进行修改操作时,可以对当前内容进行修改,并且更新数据库中的内容。如果数据库中的内容更新了,则修改操作成功,否则操作失败。
5.查询模块
测试结果:输入查询条件,能显示出要查询的内容。在数据库中存有数据的前提下,当输入查询条件时,显示正确的查询结果,则操作成功,否则操作失败[12]。
通过系统测试,可以知道刚设计完成的系统总是存在着各种预知不到的错误。尤其在细节上的问题是层出不断,可是这又是不可避免的,这就凸显了系统测试的重要性和必要性。如果系统不进行测试,就直接交付给用户投入使用,那么用户将会随着系统的使用对系统的满意度将会不越来越低。而设计人员也不在这个系统的开发设计中得到很大的成长。
尽管已经测试了很多问题,但所掌握的技能还不够全面和技术不够成熟,在系统的设计方法仍存在着一些缺陷。这就要求在随着技术和技能的全面提升下,在接下来的时间内去不断的完善整个系统。
经过几个月的设计和开发,基于SSH的都市信息供求网系统开发完毕。其功能基本符合用户需求。对于数据的一致性的问题也通过程序进行了有效的解决。但是该系统还有许多不尽如人意的地方,今后有待进一步改善,通过这次毕业设计真切地体会到毕业设计的目的并不止于自己单纯任务的完成,而不在于学习新的知识并掌握具体的方法,并如何具体使用和具体应用所学所用的知识。从而获得一种本领:就是融会贯通所学的知识。回首整个开发生及过程,学到了很多书本上学不到的东西。比如以前开发软件的时候一般做的就是编码工作,实现比较简单的功能。但是这次毕业设计,不但要做好自己分到的模块,更要和小组的其他成员做好沟通。毕竟这个系统是三个人来完成的,哪怕出现一点不一致的地方都有很大的可能导致系统开发无法继续进行下去。同时在每个设计阶段都能学到一些新知识,对自己动手能力提高很大。在在整个毕业设计过程中,基本上完成了任务模块的功能,
对我们来说,能够设计出这样一个功能基本齐全的系统已经算很不容易。虽然它不是很完美,但也是我们用这四年来所学到的知识和心思去做的。在做系统的过程中,使我们受益非浅,虽然不能与其他人相比,但也能慰籍我们的一片小小心灵。由于我们所学的知识水平有限,所以本系统还有些地方不是很完善,还有待改进,望大家多多见谅与包含,而我会努力去学习更多的知识来充实自己,完善自我,相信我以后会做的更好、更理想。
参考文献
[1] 吴吉义.MySQL原理与Web系统开发[M].清华大学出版社.2009,8:25-88
[2] 迪布瓦.MySQL Cookbook-(中文版)[M].电子工业出版社.2008,3:34-148
[3] 刘明.基于Struts+Hibernate框架的研究[J].国家级期刊硅谷.2010
[4] 申兵,巩青歌.基于Lucene的PDF文档文本解析的实现[J].信息与电脑.2009,11
[5] 严良达.基于Lucene搜索引擎的设计和实现[J].宁波职业技术学院学报.2009
[6] 白坤,耿国华.基于Lucene/Heritrix的垂直搜索引擎的研究与应用[J].计算机应用与软件.2009,1
[7] 李颖,李志蜀,邓欢.基于Lucene的中文分词方法设计与实现[J].四川大学学报(自然科学版).2008,5
[8] Mark Fewster,James McManus. Software Test[J].Comptuer.2008,7
[9] 彭新.基于Ajax的OA系统设计与应用[J].学问.2009,第20期
[10] 张云苑.JavaScript在动态网页设计中的应用[J].科技信息.2007,5
[11] 陈华.JavaScript中常见错误分析[J].中国科技信息.2007,18
[12] 张迪.基于Ajax框架和MVC设计模式的Web应用研究[D].华东师范大学.2008
[13] Joseph Raynus.Software Process Improvement With[J].ACM Transactions on Multimedia Computing Communications and Applications.2008,4
[14] 田小霞.Struts架构技术在Web上的应用[J].电脑学习.2008,4
[15] 饶永生,王影.基于FCKeditor多在线文本编辑器的设计[J].电脑知识与技术. 2008,第24期
[16] 杜勇前.基于MVC模式的Web OA系统设计[J].重庆工学院学报(自然科学版). 2007,11
[17] Ron Patton,Software Testing[J].Journal of Spectral Theory.2007,6
[18] 陈洋,孙棣华.基于Struts框架和ActiveX控件的Web GIS实现技术研究[J].计算机工程与设计.2007,1
[19] 于波.Struts框架的应用研究[J].安徽大学学报(自然科 学版).2007,6
[20] 埃克尔.Java编程思想[M].机械工业出版社.2007,8:11-217
致 谢
为期四年的大学本科的学习生活即将结束,在此,感谢我的家人,是他们的支持和鼓励使我有了四年美好的大学时光。我要感谢所有曾经教导过我的老师和关心过我的同学,感谢他们在我学习成长过程中所给予我的帮助。
这次毕业设计能成功完成,要特别感谢我的指导老师XXX老师,感谢老师对我们的作品提出的建议和指导。在这个设计阶段,老师在我们有困难的时候细心为我们指导,给了我们很大的帮助。在论文完成之际,谨向我尊敬的导师表示诚挚的谢意,感谢刘老师对我们的关心和帮助。在整个系统的开发过程中,同学和朋友给了我很大的帮助,感谢给予我帮助的同学和朋友们,他们在我的整个设计过程中给我提供了大量的技术指导和实践机会。
衷心的感谢你们!