蔻丹同学甲菜品分类以及菜品信息管理模块_第1页
蔻丹同学甲菜品分类以及菜品信息管理模块_第2页
蔻丹同学甲菜品分类以及菜品信息管理模块_第3页
蔻丹同学甲菜品分类以及菜品信息管理模块_第4页
蔻丹同学甲菜品分类以及菜品信息管理模块_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

网络订餐系统一、课题背景(一)本课题研究的意义人类的文明始于饮食,俗话说民以食为天。可见饮食在人生活扮演着重要的角色。离开饮食我们将无法生存,当然也就谈不上社会的发展和进步。人类的饮食文明,经过生食、熟食、烹饪三个阶段。随着餐饮业的发展,食物种类的丰富,生活水平的提高,人们已经开始注重食物的色、香、味、形。并形成了“苏菜、鲁菜、川菜、粤菜、浙菜、湘菜、闽菜、徽菜八大菜系,餐饮业已作为一个行业存在于现代文明社会中,成为国民经济的重要组成部分。传统的电话订餐已经不能满足社会的快速发展,所以开发一套方便快捷的网络订餐系统已经是势在必行了。基于B/S架构的网络订餐系统是应用于网络购物领域的系统,其优点主要在于以下几点:(1)方便顾客订餐,极大满足顾客订餐的需要。以往人们订餐必须通过电话订餐,遇到吃饭时间,打电话线路忙成为一大难题,这严重影响了顾客订餐的时间。甚至会出现到亲自到餐厅订饭,然后打包带走的现象。这不仅浪费顾客的时间,也影响了商家的收入。实施本系统后,可以节省广大顾客的宝贵时间和大量的精力体力,提高社会的整体工作效率。(2)节约了大量的社会财富。采用网上订餐的方式,可节约大量的社会劳动时间,以及往返餐馆交通费用,以及打电话的电话费用。(3)便捷性:本系统最大的优点就是方便快捷,用户只要在家里使用本系统,足不出户就可以享受到最优质的服务,无需等待。(二)国外研究现状在国外,多年前就有许多知名品牌餐馆就已经开始了网上订餐的服务。如今该服务得到了顾客的认可,很多商家都在积极开启使用网上订餐系统。人们只需要一台能上网的电脑,一张网上银行卡,就可以实现全天订餐。再引入专业的物流配送公司,为传统供应商提供配送服务,消费者只要点中网上餐饮店提供的任一一种菜品,就可以由配送公司专门配送,网上订餐被国外的许多家庭所认可。(三)任务概述1.系统目标在计算机上,利用现有的软件,开发一套具有开放体系结构的、易扩充的、易维护的网上订餐系统。(1)完备的订餐功能系统设计的前台功能模块,首页、在线订餐、特殊菜谱、饮食文化、关于我们、注册、登录、菜品分类等功能,实施起来简单快捷,便于用户操作。(2)人性化的操作界面一个网站,能否吸引顾客的经常光顾,界面的美观也显得非常重要。本系统通过专业美工的精心打造,让网站的设计充分体现软件的时尚、大众化。(3)完善的安全机制独立的密码校验功能,确保用户和网站的数据有较好的安全性。2.系统特点(1)界面设计简洁、友好、美观大方;(2)操作简单。快捷方便、容易理解;(3)数据计算尽量自动完成,减少人工干预;(4)工作流程简化的同时,尽可能多的考虑实际情况。二、系统概述(一)开发环境本系统的开发对开发环境要求很低,只需要一台window电脑和可以接通的网络。服务器的选购,可以选一个比较好的服务器,因为当大量用户访问本系统的时候,不至于服务器倒掉。处理器:InterPentium4.3.08GX或更高内存:2G以上硬盘空间:50GB显卡:SVGA显示适配器(二)可行性分析本系统开发是一项复杂的系统工程。为了保证系统开发成功,必须采用工程化的系统开发方法,并研究出一些符合工程化标准的开发方法。这些方法旨在指导开发者进行工程化的系统开发,从而加快系统开发的速度,保证质量以及降低开发成本。工程化的系统开发方法确实在开发实践中取得了一定的效果1.技术可行性此次开发使用JAVA作为开发语言,采用SSH做为项目框架,jsp作为显示页面。MySql作为数据库。Tomcat6.0作为Web服务器。在技术方面表之间互相关联是一个难点,要做到表与表之间很好的关联起来,又不会有冗余字段出现,这就要求在需求分析和表空间建立的时候要多做工作。(1)JAVA语言简介Java是由Sun公司于1995年5月推出的Java程序设计语言和Java平台的总称。Java语言有以下特点:Java语言是简单的。Java语言是一个面向对象的。Java语言提供类、接口和继承等原语。Java语言是健壮的。Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。Java语言是可移植的。这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性。Java语言是多线程的。Java语言是动态的。Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。(2)MYSQLMYSQL是一个关系型数据库管理系统,由瑞典MYSQL公司开发,目前属于Oracle公司。MYSQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MYSQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MYSQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MYSQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。(3)MYECLIPSEMYECLIPSE企业级工作平台,是对MYECLIPSE的扩展,利用它我们可以在数据库和JAVAEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JAVAEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。MyEclipse是一个十分优秀的用于开发Java,J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持Java,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。2.经济可行性该系统的成本主要集中在管理系统的开发和维护上,所以,一旦此系统投入使用,不仅可以电话订餐所带来的费用,而且大大解决了电话订餐时打电话人多造成人工坐席忙等无法连接的问题,减少了餐馆人员的工作量,极大方便了广大的用户。因此,从经济的角度看,该系统可行。3.操作可行性系统采用菜单式,实现用户与数据库的交互,界面设计十分亲切,功能标题醒目,各种功能的实现简单容易,易于理解,系统管理人员经过培训,是完全能够使用本网站管理车票相关信息的。三、需求分析(一)系统分析的任务与步骤1.系统分析的任务软件开发过程的第一个重要环节就是获取需求。在开发本系统之前,首先需要弄清楚整个系统的需求,并采用适当的工具辅助描述需求。本阶段对订票系统的应用情况全面调查,以确定系统目标,并对系统所需要的基础数据以及数据处理要求进行分析,从而确定用户的需求。2.系统分析的步骤(1)描述网站,在详细调查的基础上,用一定的图标、文字描述。(2)分析用户新的要求,改进现行模型,形成新系统的逻辑模型。(3)编写系统分析说明书。(二)网站项目范围网络订餐系统从用户角度进行功能划分。1.会员部分:(1)注册登陆:游客访问本系统之后,只能浏览本网站信息,无法进行订餐操作,游客点击左侧注册按钮,系统跳转到注册页面,录入相应数据之后提交注册,成为本系统会员。(2)我的账户:普通用户登录到本系统之后,点击我的账户即可查询修改本人信息。(3)我的购物车:用户点击购物车会跳转到购物车详细页面,会显示购物车里的数据,可以选择继续选购,或者更新数量等。(4)我的订单:用户可以查看我的订单的情况。(5)菜品分类:可以进行分类查看菜品。(6)购物指南:用户可以点击购物指南查看具体网上订餐的操作步骤。2.管理员部分:(1)注册会员管理:管理员可以删除会员信息,可以查看会员信息(2)咨询信息管理:管理员可以添加删除咨询分类信息,可以添加删除咨询信息管理。(3)快餐菜品管理:管理员可以对菜系进行增删改查操作,可以对菜品进行增删改查操作。(4)订单信息管理:管理员可以查看订单详细,可以打印订单,可以处置订单。可以删除订单。(5)关于我们管理:管理员可以查看并且修改关于我们的信息(6)购物助手管理:管理员可以查看并且修改购物助手的信息3.总体功能:本系统总体功能图如3.1所示网上订餐管理系统管理员网上订餐管理系统管理员游客会员信息管理咨询信息管理快餐菜品管理订单信息管理分类查看菜谱注册浏览主页会员修改个人信息登录关于我们购物助手管理查看站内动态查看关于我们图3.1总体功能图(三)数据流图数据流图对整个系统开发起着绝对关键性的作用,数据流图有利于那些不懂得信息技术的人员更好的了解系统内容,数据流图是系统分析人员与用户进行交流的有效手段,也是系统设计的主要依据之一,其基本组成:外部项、加工、数据存储、数据流等。管理员添加菜品分类的数据流图如图3.2所示图3.2添加菜品分类据流图管理员添加菜品信息是本系统主要模块之一,是在添加菜品分类基础下进行的第二次操作。该数据流图如图3.3所示:图3.3总数据流图(四)用例图用例图是系统开发不可缺少的一个环节,用用例建模的最主要功能就是用来表达系统功能性需求和行为,用例图是由软件需求分析到最终实现的第一步,也是最关键的一步,它们描述了人们是如何使用一个系统,是外部参与者所能观察到的系统功能的模型图,该模型图呈现了一些本系统的参与者和一些用列,以及参与者与用例之间的关系描述,主要用于对系统、子系统或类的功能行为进行建模,用画图的形式将该行为展现给人们看。菜品分类模块是将菜品信息分类管理,便于信息统一管理,同时也给会员在订餐过程中提供了方便。其用例图如图3.4所示。图3.4菜品分类模块用例图菜品信息管理模块是本系统主要的功能模块之一,该模块操作人员有管理员和会员,管理员有对菜品信息管理的增删该查操作,会员只有浏览操作。其用例图如图3.5所示。图3.5菜品信息用例图四、总体设计(一)建立功能模型1.识别参与者(1)参与者(会员、管理员、游客)(2)会员:经过有效验证身份,之后进入网站内部,对网站进行相应的操作。(3)管理员:经过有效性验证,才能进入网站内部,对网站进行相应的操作。(4)游客:无需验证身份,直接访问首页,查看网站信息。2.网络订餐功能模块图网络订餐系统功能模块图主要用于描述系统模块以及子菜单,系统功能模块图能有效的帮助使用者清晰的认识本系统所能实现的功能,即使不是专业计算机人员也一样能做到。网络订餐管理系统网络订餐管理系统注册会员管理快餐菜品管理查看会员信息删除会员信息咨询信息管理咨询分类理咨询信息新增分类删除分类排序分类新增信息删除信息修改信息菜品分类菜品信息新增分类删除分类排序分类新增信息删除信息修改信息订单信息管理查看订单信息受理订单信息删除订单信息编辑关于我们编辑购物助手图4.1网络订餐模块图(二)网站的数据库设计1.概念设计在概念设计阶段中,从用户的角度看待数据及处理要求和约束,产生一个反映用户观点的概念模式。然后再把概念模式转换成逻辑模式。将概念设计从设计过程中独立开来,使各阶段的任务相对单一化,设计复杂程度大大降低,不受特定数据库管理系统的限制。利用ER方法进行数据库的概念设计,可分成三步进行:首先设计局部ER模式,然后把各局部ER模式综合成一个全局模式,最后对全局ER模式进行优化,得到最终的模式,即概念模式。(1)设计局部ER模式①实体和属性的定义菜品信息表(菜品ID、菜名、菜品介绍、特色、原料、购买次数、价位、会员价位、是否新菜、添加时间、菜品分类)菜品信息表主要用来保存菜品信息其E-R图如图4.2所示:菜品信息表菜品信息表菜品ID菜名简介会员价位购买次数是否新菜添加时间特色原料菜品分类正常价位图4.2菜品信息实体与属性的定义菜品分类信息表(菜品分类ID、菜品分类名称、描述、菜品分类排序),该实体里主要存储菜品分类信息。其实体图如图4.3所示:菜品菜品分类信息表分类ID分类名称分类描述分类排序图4.3菜品分类实体与属性的定义图片信息表(图片ID、图片原名、图片新名、图片大小、上传时间、菜品ID),该实体里主要存储菜品图片信息。其实体图如图4.4所示:图片信息图片信息表图片ID菜品ID图片原名上传时间图片大小图4.4菜品图片实体与属性的定义②实体关系定义ER模型的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。若有联系,进一步确定是1:1、1:N、M:N的关系。还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系。(2)设计全局ER模式所有局部ER模式都设计好了后,接下来就是把它们综合成单一的全局概念结构。全局概念结构不仅要支持所有局部ER模式,而且必须合理地表示一个完整、一致的数据库概念结构。①确定公共实体类型为了给多个局部ER模式的合并提供开始合并的基础,首先要确定各局部结构中的公共实体类型。一般把同名实体类型作为公共实体类型的一类候选,把具有相同键的实体类型作为公共实体类型的另一类候选。②局部ER模式的合并合并的原则是:首先进行两两合并;先合并那些现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入独立的局部结构。③消除冲突冲突分为三类:属性冲突、结构冲突、命名冲突。设计全局ER模式的目的不在于把若干局部ER模式形式上合并为一个ER模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受的统一的概念模型。④全局ER模式的优化在得到全局ER模式后,为了提高数据库系统的效率,还应进一步依据处理需求对ER模式进行优化。一个好的全局ER模式,除能准确、全面地反映用户功能需求外,还应满足下列条件:实体类型的个数要尽可能的少;实体类型所含属性个数尽可能少;实体类型间联系无冗余。

网络订餐的ER模式如图4.5所示。图4.5网络订餐ER图(三)建立数据库模型数据库表设计在整个开发过程中起到举足轻重的作用。数据库是需求的直观反映和表现,隐藏设计时务必要符合用户的需求,需要多次与用户沟通交流细化需求,将需求中和每一次的变化都要一一体现到数据库设计中,如果需求不清晰,就要分析不确定因素,设计表时也要预先留出可变字段。本系统数据库表经过详细熟虑之后最终确定以下表所示菜品分类表记录了菜品分类的详细信息,其字段如下表4.1所示:表4.1菜品分类信息表列名数据类型长度主键否允许空功能描述idint20是否主键namevarchar50否否分类名称remarkvarchar5

否否分类描述seqvarchar50否否分类排序菜品信息表里记录菜品的详细信息其表字段如下表4.2所示:表4.2菜品信息表列名数据类型长度主键否允许空功能描述idint20是否主键namevarchar50否否菜品名称aboutvarchar50否否菜品介绍shtickvarchar50否否特色materialvarchar50否否原料hotint50否否点击次数pricedouble50否否价钱memberpricevarchar50否否会员价isnewvarchar50否否是否推荐senddatevarchar50否否发布时间dishSort_idint20否否分类主键图片信息表里记录菜品的图片其字段如下表4.3所示:表4.3图片信息表列名数据类型长度主键否允许空功能描述idint20是否主键namevarchar50否否图片原名newnamevarchar50否否图片新名sizevarchar50否否图片大小uploadtimevarchar50否否上传时间dish_idint50否否菜品主键五、详细设计(一)系统首页1.网络订餐系统首页展示系统首页是进入本系统的入口,也是给会员顾客展示的第一个页面,所以该页面必须符合页面的美观简洁,易操作等特性。本网站首页如图5.1所示:图5.1网站首页2.网络订餐系统首页说明首页中拥有显示进入各个模块的导航按钮,用户可以直接点击进入相应的模块。下表是主页以及相关模块入口中的几个主要功能按钮:表5.1网站首页导航功能导航按钮说明首页网络订餐系统首页在线订餐会员网络订餐特色菜谱会员查看特色菜品饮食文化会员查看饮食文化关于我们游客注册我的账户我的订单购物车购物指南会员查看关于我们游客注册本网站会员查看修改个人信息会员查看我的订单信息会员查看购物车信息会员查看购物指南(二)各功能模块介绍1.菜品分类管理图5.2菜品分类页面菜品分类页面用于管理员管理菜品分类信息,本页面具体实现功能点有菜品分类新增、菜品分类删除、菜品分类描述、菜品分类分页查询以及菜品分类编辑等。图5.3菜品分类添加页面该页面实现菜品分类信息的添加,本页面包括分类名称以及分类描述。管理员点击左侧菜单快餐菜品管理下的子菜单菜系分类管理链接进入到菜品分类页面,根据页面左下侧的按钮进行操作即可。菜品分类添加流程图如图5.3所示。图5.3管理员添加菜品分类流程图实现菜品管理模块代码分前台页面和后台业务逻辑处理两部分,其主要代码如下:<tablewidth="100%"border="0"cellpadding="2"cellspacing="1"class="tableData"><spring:bindpath="dishS"><tr><tdwidth="20%"height="25"class="fieldName">名称:</td><tdwidth="80%"bgcolor="#f8f8f8"><inputname="name"type="text"size="20"class="inputText"onfocus="this.className='inputText_focus'"onBlur="this.className='inputText'"value="<c:outvalue="${status.value}"/>"></td></tr></spring:bind><spring:bindpath="dishSort.remark"><tr><tdheight="25"class="fieldName">说明:</td><tdheight="25"bgcolor="#f8f8f8"><textareaname="remark"rows="6"cols="70"><c:outvalue="${status.value}"/></textarea></td></tr></spring:bind><tr><tdheight="30"class="fieldName"> </td> <tdheight="30"bgcolor="#f8f8f8"><inputtype="image"src="../images/ok_bt.gif"width="44"height="20"onmouseover="this.src='../images/ok_bt_over.gif'"onmouseout="this.src='../images/ok_bt.gif'"class="image_button"><imgsrc="../images/list_bt.gif"width="44"height="20"onmouseover="this.src='../images/list_bt_over.gif'"onmouseout="this.src='../images/list_bt.gif'"class="image_button"onClick="location.href='<c:urlvalue="/admin/dish/dishSortList.jspx"/>'"></td></tr></table> protectedModelAndViewonSubmit(HttpServletRequestrequest, HttpServletResponseresponse,Objectcommand,BindExceptionerrors) throwsException{Stringmethod=ParamUtil.getString(request,Constant.ACTION,Constant.NEW); DishSortdishSort=(DishSort)command; if(Constant.NEW.equalsIgnoreCase(method)){ this.getDishSortFacade().insertDishSort(dishSort); } if(Constant.EDIT.equalsIgnoreCase(method)){ this.getDishSortFacade().updateDishSort(dishSort); } returnnewModelAndView(getSuccessView()); }publicvoidinsertDishSort(DishSortdishSort)throwsDataAccessException{ this.getHibernateTemplate().save(dishSort); }2.菜品信息管理图5.4菜品信息录入页面此模块主要是为本网站的管理员提供录入菜品信息功能,通过该模块可以添加不同种类的菜品,从而为网站菜品信息维护提供了保障。如果没有该菜品的分类,则可以在菜品分类管理模块新添加一个。管理员管理菜品信息模块流程图如图5.5所示。图5.5菜品信息录入流程图管理员添加菜品信息主要实现代码如下:<tablewidth="100%"border="0"cellpadding="2"cellspacing="1"class="tableData"> <spring:bindpath=""><tr> <tdwidth="20%"height="25"class="fieldName">菜名:</td><tdwidth="80%"bgcolor="#f8f8f8"><inputname="name"type="text"id="name"size="50"class="inputText"onfocus="this.className='inputText_focus'"onBlur="this.className='inputText'"value="<c:outvalue="${status.value}"/>"></td></tr></spring:bind> <spring:bindpath="dish.price"><tr><tdheight="25"class="fieldName">价格:</td><tdheight="25"bgcolor="#f8f8f8"><inputname="price"id="price"type="text"size="10"class="inputText"onfocus="this.className='inputText_focus'"onBlur="this.className='inputText'"value="<c:outvalue="${status.value}"/>"></td></tr></spring:bind><spring:bindpath="dish.memberprice"><tr><tdheight="25"class="fieldName">会员价:</td><tdheight="25"bgcolor="#f8f8f8"><inputname="memberprice"id="memberprice"type="text"size="10"class="inputText"onfocus="this.className='inputText_focus'"onBlur="this.className='inputText'"value="<c:outvalue="${status.value}"/>"></td></tr></spring:bind><tr><tdwidth="20%"height="25"class="fieldName">类别:</td><tdheight="25"bgcolor="#f8f8f8"><spring:bindpath="dish.dishsort.id"><selectname="dishsort_id"> <c:forEachvar="dishSortItem"items="${dishSortList}"> <optionvalue="${dishSortItem.id}"<c:iftest="${status.value==dishSortItem.id}">selected</c:if>>${dishSortI}</option></c:forEach></select></spring:bind></td></tr> <spring:bindpath="dish.isnew"><tr><tdheight="25"class="fieldName">推荐:</td><tdheight="25"bgcolor="#f8f8f8"><inputname="isnew"type="radio"value="Y"<c:iftest="${dish.isnew=='Y'}">checked</c:if>>是 <inputname="isnew"type="radio"value="N"<c:iftest="${dish.isnew=='N'}">checked</c:if>>否</td></tr></spring:bind><spring:bindpath="dish.senddate"> <tr><tdheight="25"class="fieldName">日期:</td><tdheight="25"bgcolor="#f8f8f8"><inputname="senddate"type="text"size="20"class="inputText"onfocus="this.className='inputText_focus'"onBlur="this.className='inputText'"value="<c:outvalue="${status.value}"/>"></td> </tr></spring:bind><spring:bindpath="dish.material"><tr><tdheight="25"class="fieldName">原料:</td><tdheight="25"bgcolor="#f8f8f8"><TEXTAREANAME="material"ROWS="6"COLS="70">${status.value}</TEXTAREA></td></tr></spring:bind> <spring:bindpath="dish.shtick"><tr><tdheight="25"class="fieldName">特色:</td><tdheight="25"bgcolor="#f8f8f8"> <TEXTAREANAME="shtick"ROWS="6"COLS="70">${status.value}</TEXTAREA></td></tr></spring:bind><spring:bindpath="dish.about"><tr><tdheight="25"class="fieldName">菜品介绍:</td><tdheight="25"bgcolor="#f8f8f8"><TEXTAREANAME="about"ROWS="6"COLS="70">${status.value}</TEXTAREA></td></tr></spring:bind>3.菜品分类查询菜品分类查询功能主要体现在网站前台,位于网站首页左侧,以及导航栏处特色菜谱链接,其数据项是时时更新的,由管理员在后台来维护。其作用是为了给顾客按分类查找菜品提供方便。其页面如图5.6所示:图5.6菜品分类查询页面本功能模块可以为普通用户和注册用户提供菜品信息分类查看菜品分类下的菜品信息查看功能,用户可以通过点击导航菜单上的特色菜谱,也可以通过导航菜单下的搜索按钮查看菜品信息,该查询按照菜品名称字段模糊查询。查询结果页面显示了菜品基本信息,菜名、价格、原料、特色以及做法,详细页面如图5.7所示。图5.7菜品查询结果页面六、系统测试(一)测试的目的系统测试的目的是为了发现尽可能多的缺陷不是为了说明软件中没有缺陷,成功的测试在于发现迄今尚未发现的软件缺陷,防止软件在正式环境下运行时出现问题而造成不必要的损失,尽量提高软件的质量。提高软件的安全性。(二)测试的方法软件测试方法种类繁多,记忆起来比较容易混淆,所以一般把软件测试按测试设计方法进行分类,用的比较多的有黑盒测试、白盒测试、灰盒测试。如果按照测试方法是以手动还是自动来分类的话,软件测试分为手动测试、自动化测试。对于项目而言,不论是什么类型的测试都同等重要。都是保障软件软件质量的方法,目前软件测试行业以手动测试和自动化测试相结合为主,因为大部分的测试无法做成自动化测试,很多的复杂业务逻辑很难实现自动化,所以自动化测试无法取代手动测试。黑盒测试:黑盒测试也叫功能测试,英文名称Blackbox它是通过测试来检测每个功能模块是否能够正常运行,在测试中,把软件系统看看做一个不能打开的黑盒子,在完全不清楚其内部结构和内部特性的情况下,在程序接口处进行测试,该测试只能检测出该程序是否按照需求说明书的规定正常使用。只考虑程序的外部结构而不理会其内部的逻辑结构。白盒测试:白盒测试也叫结构性测试,英文名称Whitebox它与黑盒测试恰好相反,其主要测试软件的内部结构,并且使用软件的内部知识来指导测试数据以及方法的选择。其测试重点在软件系统的逻辑路径。通过在不同点检查程序的状态,最终确认软件是否与预期的一样。灰盒测试:英文名称Graybox灰盒测试介于白盒测试和黑盒测试之间,可以这样理解,灰盒测试更关注的是输出对于输入的正确性。(三)测试计划1.测试方案软件的测试方案从软件的需求分析阶段就已经开始考虑,我认为做为测试方案至少应该包括以下几个关键因素:范围、时间、资源以及质量,不同的行业产品,测试方案应该相应地进行对这几个关键引述进行分解和调整。对于软件测试方案,我想主要应该包括:测试需求分析,测试策略,测试资源,测试计划,项目风险和质量,如果我们能够明确以上这些因素,这样的测试方案就一定能够有效地指导我们测试设计和执行。在软件进行系统测试的时候,应该专门有测试人员收集、汇总与保存有关系统测试的记录,具体如下:需求分析阶段列出的系统的每个功能都是要求是“可测试”的;设计阶段每个具体功能模块的实现都是要考虑到其测试用例的设计;编码实现阶段对每个模块都要进行单元测试,然后集中做压力测试。2.测试方法和步骤(1)系统的测试方法针对本系统各个模块的功能集中于对数据库的处理,以及对用户交互界面的设计,系统内部并没有设计复杂的算法和数据结构,因此制定的测试方法是以注重测试功能的黑盒测试为主。(2)系统的测试步骤对于系统的每个模块都要写测试用例,然后分别进行单元测试,白盒测试,黑盒测试,最后进行集成测试,压力测试。确保程序不论从内部业务逻辑,还是外部构造都是万无一失的。提高软件的安全性。3.测试过程(1)添加菜品分类模块测试测试1:添加菜品分类:测试管理员在后台添加菜品分类是否正确、合理。对于添加成功的数据系统将页面跳转到菜品分类列表页面,并位于第一行显示新插入的数据。对于插入失败的进行正确的处理。表6.1添加菜品分类测试表测试说明管理员添加菜品分类测试测试目的测试管理员添加菜品是否成功,并正常显示。测试方法输入合理的菜品分类名称以及分类描述点击确定按钮之后:到数据库数据比较是否有新插入的数据,并且系统是否自动跳转到菜品分类列表页。预期结果1.输入数据均合法,则系统跳到菜品分类列表页面2.如果其中有一个不正确就会提示错误测试结果输入信息与数据库数据相比较,正确则进入菜品分类列表界面分类名称为空的时候点击确定按钮,则会提示菜品分类不能为空测试2:添加菜品测试:首先测试当正确输入合法数据时,系统能否给出正确的处理;还需要测试当其中会员价大于原价,能否给出正确处理;最后测试当菜名为空时,能否给出正确的处理。表6.2添加菜品测试表测试说明添加菜品测试测试目的管理员是否能够成功添加菜品信息测试方法分别输入合理数据,不合理数据以及空数据。预期结果1.输入数据均合法,则系统跳到菜品列表页面2.如果数据不合法则提示错误测试结果符合预期结果测试3:查询菜品分类测试:用户登陆后点击“特色菜谱”就可以查询到管理员在后台新录入的菜品信息,该查询支持模糊查询,是按照菜名模糊查询。表6.3菜品信息查询测试表测试说明模糊查询菜品测试测试目的前台页面是否能够成功显示新添加菜品信息测试方法输入菜品名称点击搜索按钮。预期结果1.输入部分想要查询的菜名名称,点击查询按钮,符合该菜名的数据将显示出来测试结果符合预期结果(2)系统的单元测试单元测试是指对一个可执行的程序单元进行测试。这样的程序单元可以是一个构件、一个类、一个对象、一个方法。单元测试是在程序实现阶段进行的。通过单元测试来确定程序员完成的程序单元是否正确。网络订餐系统中我负责的模块中的单元测试可以分以下几个方法进行:黑盒测试:黑盒测试主要验证程序单元的外观行为是否正确,其主要侧重于软件的功能需求。例如功能遗漏、界面错误、程序初始化和终止错误等。例:添加菜品类别的单元测试如表6.3所示。表6.3添加删除菜品分类测试用例单元测试类DishSortDao里的insertDishSort(Dishsortdishsort)方法类DishSortDao里的delDishSort(intid)方法测试用例管理员添加菜品分类信息管理员删除菜品分类信息前台页面显示删除之后剩下的数据选中数据点击删除数据成功删除,页面显示删除之后的数据。期望输出前台页面能显示新录入的数据测试数据测试结果菜品分类:“川菜”分类描述:香辣可口数据库有新数据生成,页面显示新插入的数据。添加菜品信息的单元测试如表6.4所示。表6.4添加修改菜品测试用例单元测试类DishDao里的insertDish(Dishdish)方法类DishDao里的delDish(intid)方法测试用例管理员添加菜品信息管理员修改菜品信息前台页面显示修改之后的数据菜品名称:小鸡炖蘑菇菜品类别:川菜….数据修改成功,页面显示修改之后的数据。期望输出前台页面能显示新录入的数据测试数据测试结果菜品名称:小鸡炖蘑菇菜品类别:东北菜….数据库有新数据生成,页面显示新插入的数据。如果测试结果与期望值不符,则可以确定该单元存在的问题,把测试过程中发现的问题及时记录,等待下一步的修复。(3)系统的集成测试系统集成测试是在单元测试基础上,将所有模块按照设计要求组装其,设计成子系统进行测试活动。集成测试分为非渐增式和集成渐增式集成两种模式,该两种模式大体可概括为自顶向下集成,自底向上集成。4.回归测试回归测试是指在修改了存在问题的代码之后,重新又进行系统测试,以确保后改的代码没有影响到其他代码。自动回归测试是测试的最后环节,能够大幅降低系统测试、以及维护升级等阶段成本。回归测试做为软件生命周期的一个组成部分,在整个软件测试过程中占了很大的工作量。软件开发的各个阶段都要进行无数次的这样的测试。在迭代开发中,新版本的连续发布使回归测试进行的更加复杂,而在极端变成方法中,更是要求每天都进行很多次的回归测试。所以,通过选择合理的回归测试策略来改进回归测试

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论