




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、报表辅助系统的开发摘要现在报表的运用日益广泛,企业对报表的需求也逐日增长,能否快速开发出准确的报表并方便客户的查看也成了大家关心的问题。本课题研究的是报表开发过程中方便数据导入导出及报表查看的系统,采用的工具为MyEclipse8.5+Tomcat6.0+Firefox。系统分为两部分,一部分完成数据管理功能,采用的技术为JSP+Servelet+Jdbc,另一部分完成报表的管理功能。采用的技术为Extjs+SSI框架技术。在IE9,火狐以及谷歌上都可以正常运行,运行后会先进入一个主界面,从主界面可以进入到相应的功能模块进行报表的上传,管理以及查看,也可以对数据库里面的数据进行导入导出管理。关
2、键字:报表,Birt,报表管理,数据管理AbstractNow the use of report increasingly widespread, the enterprise demand for report is growing day by day, and developing accurate reporting quickly and convenient for customer to view also became a concern proble for many developer.This topic research is convenient in the pr
3、ocess of report development of import and export data and report to check the system, using tools for MyEclipse8.5 + Tomcat6.0 + Firefox.System is divided into two parts, part of the complete data management function, using the technology of JSP + Servelet + Jdbc, another part of the complete report
4、 management functions.Using the technology of Extjs+SSI.In Internet explorer, firefox and Google can run normally, after the operation will be into a main interface, can enter from the main interface to the corresponding function module to upload report management and view, also can undertake import
5、 and export of the inside of the database data management.Key words: Report, Birt ,Report Manage,Data Manage 目录摘要 Abstract1引言1.1课题背景意义 11.2报表介绍 11.3国内外现状分析 22系统分析 2.1可行性分析 32.2需求分析 33概要设计 44数据库设计 55详细设计及系统实现 5.1架构搭建 65.2命名规则 95.3模块设计 96系统测试6.1软件测试基础理论176.2软件测试目的176.3软件测试方法分类176.4报表辅助系统测试196.5测试报告216
6、.6软件安装227 总结 23致谢 24参考文献 251 引言1.1课题背景意义报表是信息管理,决策支持等系统必不可少的一项最基本但又最重要的内容。因为管理和使用信息,不仅仅是为了浏览和查询,还有更重要的内容:通过这些信息来提取和反映出更重要的内容,报表以特定的格式向用户反映高度浓缩的数据,使用户能够更清晰的看出繁杂的内容中更深刻更有价值的东西,为其决策提供支持。而这些有价值的信息的载体就是报表。随着信息技术的广泛应用,电子政务、电子商务得到迅猛发展,数据的采集、传输、展示、交互、安全等问题显得越来越重要。报表作为一种信息组织和分析的有力手段,是电子政务、商务智能、企业信息系统的重要组成部分,
7、是进行信息浏览、分析、输出的有利工具。随着Internet技术的推广和企业信息化程度的提高,越来越多的报表应用将在Web环境下开发和运行。而报表最大的用途就是直观的展示数据,所以充足的数据是报表开发的前提,而报表辅助系统就是方便报表的开发及查看而设计的系统。它主要分为两部分,其中一部分用于开发人员导入测试数据,另一部分用于客户查看报表。1.2报表介绍在用计算机管理和处理信息之前,人们都是利用手工的方式来得到想要的数据和结果。当计算机出现之后,人们利用计算机处理数据和界面设计的功能来生成、展示报表。计算机上的报表的主要特点是数据动态化,格式多样化,可以说,具有了上面公式中报表的特征,就可以称之为
8、报表。从报表的格式和样式来说,报表可以分为固定格式报表和可变格式报表。所谓固定格式报表就是它的样式,字体甚至每一个符号的位置必须是严格规定,不可改变的。比如则务报表、专用票据等等就是这类报表。而另外一类更注重数据的内容和结果的报表,在决策支持系统中,这种报表就更常见,因为能够快速提供准确的统计数据比样式更加重要。从报表的实现方式来分,可分为设计时报表和运行时报表,也就是通常所说的静态报表和动态报表。静态报表就是在程序设计阶段就将报表所要表现的数据通过程序编码来完成,将报表表现样式设定好。这种报表功能强大,也可以完成几乎所有可能想到的报表样式。缺点是数据的动态性和可控制性弱。而后者往往数据和报表
9、样式都可以在程序运行之后进行操作和改变。当然,它的表现样式就很难达到静态设计时能完成的那样完美。从报表的设计思想和基本的报表模型看,报表可以分为基于分带的报表和基于表格的报表。尽管表格千变万化,但只要仔细探究便会发现表格组成的一些有规律性的东西,这是人们在长期表格设计中所形成的经验,这是一种专门的知识,人们称为表格设计知识。通过对报表的分析可以对报表进行抽象,通常可以将报表抽象分解成为标题、表头、表体、表尾等几部分。标题和报表头主要用于标明报表内容信息、或者打印日期等附加信息的处理。表体就是报表的主体部分,也是报表的核心部分,通常是报表用户最关心的数据所在,本部分一般包括数据字段名称,数据主体
10、,小计等等的处理。报表尾一般就是报表日期,报表总计,打印日期等附加信息。基于这种设计模型的就是带状报表。1.3 国内外现状分析由于报表系统在信息系统中的基础性地位,报表统计的应用非常广泛。报表工具软件也引起了国内外一些软件公司的关注和重视。近年来,随着软件开发技术的日新月异,报表技术也不断成熟和完善,目前已经出现了一些优秀的颇具特色的报表工具软件。以下就从国外和国内两个方面扼要介绍一下报表系统的研究现状和进展。目前国内报表工具软件以用友华表公司的Cell软件为代表,其内核采用了类似微软的Excel的技术。另外,还有一些比较优秀的报表软件如:深圳明宇科技的如意报表(Ming-Web Report
11、)它是基于J2EE,XML及.NET等国际主流软件技术开发的,提供了较强的可视化报表设计器,可以实现多种复杂报表,它可运行于Windows,Unix,Linux等多种操作系统上,具备跨平台特性等特点。另外还有润乾报表,其技术核心是他们独创的非线性报表模型,在国内有一定的影响力。目前国外的商业化报表产品主要有Crystal Report和Active Report等,其中又以Crystal Report为代表。水晶报表由总部位于美国加州的帕罗奥多的Crystal Decisions公司开发。此公司的主要业务有:报告、分析、信息传递技术和服务等。水晶报表基本上可以认为是高效能报表系统的行业标准,微
12、软在其.NET开发平台上捆绑的便是水晶报表。在开源报表产品中比较有名的主要有BIRT和Jasper Report,Jasper Report的优点就是使用简单,输出方式多样,这样在实现客户的需要的时候痛苦会少一些, 缺点就是文档是收费的,有些东西就只能是靠自己琢磨和尝试。BIRT项目属于Eclipse项目下的商务智能子项目,发展迅速,是一种柔性的报表解决方案,一方面为基本用户提供了可视化的报表设计器,另一方面为高级用户提供了丰富的集成接口,提高了报表的重用性。2系统分析系统分析的主要活动是对软件的可行性进行评估,对软件的需求进行分析。这是软件开发的起始阶段也是非常重要的阶段。2.1可行性分析可
13、行性研究是在项目开发前期对项目的一种考察和鉴定,对拟议中的项目进行全面的、综合的调查研究,其目的是要判断项目可行与否,用最小的代价,在尽可能短时间内确定问题是否能够解决,它的目的不是解决问题,而是确定问题是否值得去解决,可行性从以下三个方面来考虑。本系统主要对数据库进行一些简单的操作,然后对报表进行一些管理,需要用到前端技术有JSP及ExtJs框架技术,后台技术有servelet,SSI框架及数据库连接技术,这些技术在java web开发中都比较常用,相关语法在很多书籍当中都可以搜索到,整体难度不大。所以技术上是可行的。由于系统较小,对电脑配置没有太高要求,并且所需时间也不多,几天就可以完成,
14、所以成本低廉,基本可以忽略不计。所以经济上是可行的。系统总共分为两部分总共六个界面,逻辑也不太复杂,对可能出现的一些异常我也做了处理,不需要进行学习,就可以直接操作。综上所述,技术上、经济上、操作上都是可行的,并且要求不高所以系统可以进行开发。2.2需求分析由于报表应用是越来越广泛,越来越多的企业需要用报表来进行各种业务分析,而报表开发本身需要的时间不会太长,所以一般企业不会专门招收报表开发人员进行报表开发,而是把报表外包到其它公司进行开发。但由于每个公司的数据十分保密,他们一般不会把数据泄漏给其它公司,顶多为了报表开发需要把数据库数据表表结构给外包公司的开发人员。而没有数据,又无法完成报表的
15、开发。所以开发人员必须亲自向数据库内导入所需数据。直接对数据库进行操作比较麻烦,容易出错,为了一劳永逸,有必要开发一个方便数据导入及修改的系统。开发人员可以使用MyEclipse工具进行报表开发,开发完毕以后也可以使用MyEclipse来查看报表。但客户大部分都不是程序员,他们一般不会用到开发工具,当然我们也不大可能去要求他们为了查看我们开发的报表而专门去安装一个开发工具,我们只能去适应他们的要求,开发一个可以脱离开发工具来查看报表的系统。而报表辅助系统正是为了实现以上两个功能而进行开发的,所以它的开发价值显而易见,它的开发需求也会随着报表应用的推广而不断增加。3概要设计经过系统分析阶段的工作
16、,系统必须“做什么”已经清楚了,现在是决定“怎样做”的时候。概要设计的基本目的就是回答“从总体上说,系统应该如何实现?”这个问题,按照“先逻辑,后物理”的原则来设计每个模块的内容。有了良好的设计后面的开发才不会走太多的弯路。系统总体流程图如下:图3.1 系统流程图4数据库设计数据库实际上就是一个由大量资料所组成的集合。但是这些资料不是杂乱无章的堆积在一起,而是按照一定的规律和规则存储在计算机中。数据库的优点是很明显的, 它具有结构化的存储方式, 最小的空间冗余,而且在数据库中处理事务的程序与被处理的事务资料是分开存储的,这种独立性能够更好的保持资料的完整性和程序的可扩展性。数据库系统为我们提供
17、了一种把我们的工作和生活紧密相关的信息集合在一起的方法,它还提供在某个集中的地方存储和维护这些信息的方法。数据库系统主要由三大部分组成:数据库管理系统(DBMS是专门负责组织和管理资料信息的程序), 数据库应用程序(它使我们能够获取,显示和更新由DBMS存储的资料), 数据库(按一定结构组织在一起的相关资料的集合)。本系统数据管理模块,主要是对数据库中现有的数据表进行操作,所以不需要建立数据表,而报表管理模块需要建立两个数据表分别来存储报表及报表类型的信息,数据表详情如下:4.1报表详情表此表用来记录报表的详细信息,其中birt_type外键关联于类型表的id。表4.1报表详情表字段名称字段类
18、型字段大小主键备注idint16Y报表idbirt_typeint4N报表类型statusint4N活动状态birt_namevarchar64N报表名称file_namevarchar64N文件名称descriptionvarchar256N描述uploadtimevarchar32N上传时间4.2报表类型表因为报表类型可会产生变动所以需要单独建立一张表。4.2报表类型表字段名称字段类型字段大小主键备注idint16Y类型idnamevarchar64N类型名称codevarchar16N类型编码descriptionvarchar256N描述5详细设计及系统实现5.1架构搭建本系统采用MV
19、C模式开发,将视图层、模型层及控制层分开,层次清晰方便系统的开发与修改。开发工具使用MyEclipse8.5。因为此系统两个功能模块虽然同为报表服务,但使用对象不同,为了保证每个功能模块的独立性,我将在4个project内完成。先建立一个空的Report Web Project,专门用来显示报表,因为报表所需的插件会自动加载到工程里面。然后再新建Web Project分别用来提供程序入口,完成数据管理功能及报表管理功能。5.1.1数据管理工程JDK采用jre1.6版本,先新建源文件夹config用来存放数据库配置信息,这样数据库信息一旦发生变化,就不需要改动代码,直接改配置文件就行了。再建一个
20、普通包org.study,然后后在此包下新建四个子包:(1)servlet:在里面新建ActionServlet类用来处理前台页面发送过来的请求。(2)dao:里面存放用来处理与数据库操作相关操作的业务逻辑的接口TableDao及实现类TableDaoImpl。(3)service:里面新建接口TableService及实现类TableServiceImpl,用来处理一般的业务请求。之所以把两个处理业务逻辑的类分开是因为数据库类型可能会发生变更,如果发生变更只需要改动TableDaoImpl里面的代码,其它的不需要变动,这样可以减少修改量。(4)util:里面存放一些工具类,如数据库连接的类D
21、BUtil,存放常量的类Constant,Excel文件操作类HSSFReadWrite需要引入的js文件为jquery-1.4.3.js,因为本系统需要用到ajax技术需要使用的jar主要有以下几种:(1)json包:commons-beanutils.jar、commons-collections.jar、commons-lang.jar、commons-logging.jar、ezmorph-1.0.6.jar、json-lib-2.2.3-jdk15.jar(2)MySql数据库驱动包:mysql-connector-java-5.1.8-bin.jar(3)Excel包:poi-3.
22、8-beta4-20110826.jar、poi-ooxml-schemas-3.8.jar、poi-ooxml-3.8-beta5-20111217.jar、excel-jxl.jar(4)文件上传的包:commons-fileupload-1.2.1.jar、commons-io-1.4.jar工程结构如下:图5.1 数据管理工程dbm结构图 5.1.2报表管理工程本系统采用MVC模式开发,前台页面用Extjs框架技术完成,服务器端采用SSI(Struts2+spring+ibatis)框架技术完成,数据库采用MySql数据库。(1)创建包:先新建工程birts,再创建一个父包org.st
23、udy,然后在里面创建两个子包birt及common,common用来存放工具类,birt里面再创建三个子包:a. action:里面创建类BirtAction用来处理发过来的struts2请求。b. service:里面新建接口BirtService以及实现类BirtServiceImpl用来操作数据库。c. model:里面存放实体类如Birt(报表类)及ObjType(报表类型类)以及ibatis配置文件BirtSQL.xml用来配置SQL语句。再新建一个源文件夹config,里面存放数据库配置文件perties,spring框架核心配置文件application
24、Context-base.xml,ibatis框架核心配置文件SqlMapConfig.xml以及struts2核心配置文件,再新建一个文件夹birt里面存放与实体类Birt相关的struts2及spring配置文件。(2)引入jar包:需要使用到的jar包主要有以下几种:a.spring框架包:cglib-nodep-2.1_3.jar、aopalliance.jar、aspectjweaver.jar、aspectjrt.jar、commons-logging.jar、spring.jar、struts2-spring-plugin-2.1.8.jar。b.struts2框架包:commo
25、ns-fileupload-1.2.1.jar、commons-io-1.3.2.jar、freemarker-2.3.15.jar、ognl-2.7.3.jar、struts2-core-2.1.8.jar、xwork-core-2.1.6.jar、struts2-json-plugin-2.2.3.jar。c.batis包:ibatis-77.jar。d.Json包:commons-beanutils.jar、commons-collections.jar、commons-lang.jar、commons-logging.jar、ezmorph-1.0.6.jar、json-
26、lib-2.2.3-jdk15.jar。e.MySql数据库驱动包:mysql-connector-java-5.1.8-bin.jar。f.文件上传的包:commons-fileupload-1.2.1.jar、commons-io-1.4.jar。(3)引入js框架包:extjs-4.2.0,这是版本比较新的一种包,使用此包最大好处就是不用设置太多的css样式,js语法也得到简化。工程目录结构如下:图5.2 报表管理工程birts结构图 5.2命名规则(1)名字不能用保留字和关键字,但如果保留字或关键字中有字母大写就不算保留字或关键字了。 开头字符能用字母、$或者_。 名字中不能用+、-&
27、#160;空格等字符。 部分易混的保留字关键字和非保留字关键字: null, native, goto,const,instanceof,default是关键字保留字 then , sizeof , main,Boolean,unsigned,java, Integer不是关键字保留字(2)常量的名字应该都使用大写字母,并且指出该常量完整含义。如果一个常量名称由多个单词组成,则应该用下划线来分割这些单词。(3)JSP包的名字都是由小写单词组成。但是由于Java面向对象编程的特性,每一名Java程序员都可以编写属于自己的Java包,为了保障每个Java包命名的唯一性,在最新的Java编程规范中,
28、要求程序员在自己定义的包的名称之前加上唯一的前缀。由于互联网上的域名称是不会重复的,所以程序员一般采用自己在互联网上的域名称作为自己程序包的唯一前缀。类的名字必须由大写字母开头而单词中的其他字母均为小写;如果类名称由多个单词组成,则每个单词的首字母均应为大写例如TestPage;如果类名称中包含单词缩写,则这个缩写词的每个字母均应大写,如:XMLExample,还有一点命名技巧就是由于类是设计用来代表对象的,所以在命名类时应尽量选择名词。 方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头。5.3模块设计5.3.1主界面该模块功能十分简单,只是为数据管理及报表管理功能提供两
29、个入口,所以实现起来也比较简单,界面如下图所示:图5.3 主界面对于许多开发人员来说,CSS样式是一大难点,因为会写java代码及js代码的人很多,但要想制作比较绚丽的界面一般需要专业的美工。对于本功能模块前端使用的是JSP技术,样式自然也成了一大难题。当然写CSS样式其实有一种比较简便的方法,就是去抠现有的时,现在js框架很多,我们可以借用JS框架里面的样式,或者我们在浏览网站时遇到自己想要的样式也可以拿过来使用。你可以在浏览器里面,将鼠标移到某个元素上面,然后右键查看元素,就能够看到该元素的html代码及css样式。如图所示:图5.4 CSS样式的获取对于样式要求不高的系统来说,这可以算是
30、一种比较简便的方法,可以轻轻松松获取大量样式。5.3.2数据管理模块(1)文件上传界面图5.5 文件上传界面此界面主要有一个上传控件,外加两个按钮,其主要功能就是Excel文件上传,对于Excel文件存在一些要求:a.文件里面必须要有数据,而且第一行为标题行,也就是数据字段名称,从第二行起才是要导入的数据。b.文件里面所有数据必须设置为文本格式,因为如果格式过于特殊,其数据受技术限制难以正常获取,为了保证导入数据的准确性,就不要使用特殊格式。c.标题行字段不要出现“+”这样的特殊字符,这样在数据传递过程可能出现错误,数据行没有限制,是可以出现特殊字符的。d.中间最好不要出现空行与空列,因为读取
31、数据时遇到空行及空列时就终止了,后面的数据就获取不到了。上传文件以后就可以点击“数据导入”按钮,提交文件,并且跳转到数据导入界面进行数据导入。如果没有上传文件就直接点击按钮“数据导入”可能会出现问题,所以这里要用js做一步验证,如果没有上传文件就不允许提交并弹窗提示“请上传文件”。导出数据是不需要上传文件的,因为它针对的只是数据库里面的数据表。(2)数据导出图5.6 数据导出界面图5.7 导出的Excel数据文件这个界面主要功能是将数据库里面的数据导出到Excel文件里面,左边的表格加载的是数据库里面所有的数据表,选择左边的数据表以后,后台就会根据选择的数据表表名,将该数据表里面的所有字段查询
32、出来,加载到右边的表格里面。然后就可以在右边的表格里面字段后面的选择框内勾选字段,将所需字段的数据导出,我还设置了全选按钮,勾选该按钮会将所有的选择框都选中,取消选择也会将所有选择框选择去掉。我把此方法封装成了一个通用方法,可以在多个地方使用。创建模板的功能是将所选择的字段导出到Excel文件里面,数据不会导出,你可以根据导出的Excel模板自己填写要插入的数据,然后再导入。而导出数据,不仅能将选择的字段作为标题行导出,还能将对应的数据导出到Excel表格,这样做的目的是可以将自己认为不合适的数据进行编辑再重新导入,如图5.5所示,为了使导出的数据看起来更加清晰,在数据写入Excel文件时,我
33、还设置单元格的边框及背景色等属性,第一行的标题为黄色背景,数据为白色背景,列标题按照英文字母排序。当然如果没有选择字段,是不能进行创建模板以及导出数据操作的。本页面的数据表都来自于现有的数据库,数据库连接信息可以在源文件夹config下面的配置文件perties里面配置。Url是指数据库的服务器地址,我们不但可以获取本地数据库的信息,也可以获取远程数据库的信息,当数据库发生变更时,修改一下url的值以及user(用户名)、password(密码)的值就行了,不需要改动程序,操作十分方便。Table_schema是指数据库对象名,同一个数据库会有许多个数据库对象,通过这个属性可以修改
34、数据库对象。driver是指数据库驱动类的位置,本系统只支持MySql数据库,所以驱动类一般不会产生变更。(3)数据导入 图5.8 数据导入界面 该界面的主要功能就是将Excel表格里面的数据导入到数据库相应数据表中。刚跳转到该界面时,Excel表格中所有字段加载到左边的表格中,数据库中所有的数据表会加载到右边的表格中,如果点击数据表,该表内所有字段会分页显示到右边表格内,如果数据量较大,就可以使用搜索及翻页功能,这里的搜索都是模糊搜索。右边的搜索框默认搜素数据库的数据表,当点击数据表以后,右边的搜索将搜索的的数据表里面的字段。因为Excel文件内的字段可以与数据表里面的不同名,所以在导入前必
35、须先匹配字段。匹配时,左右两边的字段个数必须相等,否则就会弹窗提示报错。匹配成功的字段会加载到下面的匹配表中,并且匹配过的字段不会重复在上面的表格里面显示,并且也搜索不到,以免重复匹配。 匹配表里面的选择框是用来选择数据表的主键来决定是更新还是插入,如果没有选择则默认插入,如果选择了主键,则根据该主键对应的数据进行更新。因为制作一张报表可能需要各种类型的数据,这样报表的测试才会更加准确,一些隐藏的问题,才能及早发现。而这个,插入及更新操作正好可以产生我们制作报表时所需的各种数据。导入时后台会有异常捕获,如果导入成功就会跳转到文件上传界面,如果导入的数据存在错误,则错误会反馈到前台,错误行及错误
36、原因都会显示到错误信息列表中。错误信息表,初始状态下是隐藏的,如果有错误才会显示出来。5.3.3报表管理模块与上一个模块不同,本模块采用的是Extjs技术,所以风格与上一模块会有较大的差别。使用Extjs最大的一个好处就是它集成了CSS样式文件,窗口、面板以及文本框都有现成的模板样式,不需要美工进行特别的美化就可以直接进行使用。当然它的缺陷就是加载速度慢,不够灵活。本模块的动态性,没有上一个模块强,所以采用此项技术较为合适。本功能模块主要功能就是,将已经开发好的报表上传到服务器中,然后可以直接在浏览器管理报表信息,并查看报表。(1)报表上传图5.9 报表上传页面此页面功能就是上传birt报表,
37、并且只支持rptdesign格式的报表,因为后面用到的报表引擎是MyEclipse里面的一个插件,所以此处上传的报表最好是在MyEclipse里面开发的报表,否则后面可能出现无法正常显示的异常。上面四个字段都为必填项,如果有一项没有填写是不允许提交的。报表类型数据来自于数据库中报表类型表,由于报表类型数据一般不会有太大变化,所以我没有专门为报表类型设置一个管理界面,如果此数据表数据产生变化,直接使用上面开发的数据管理系统修改或插入即可。如果数据填写错误,可以点击重置按钮,将填写的所有数据清空,重新填写。点击取消,可以关闭窗口。上传成功以后,会弹窗提示“上传成功”,并刷新界面。(2)报表管理图5
38、.10 报表管理页面此页面功能就是管理报表数据信息,它是一个树状结构的表格,按照类型把不同种类的报表分开显示,这样看起来更加清晰。点击报表名称,就会弹出报表信息编辑框,如果上传报表时报表信息输入错误,还可以在这里进行修改,在初始情况下,输入框默认不可编辑,当点击编辑按钮以后,才能进行编辑。点击报表后面的删除,就可以将报表信息删除。这里是逻辑删除,不是物理删除,删除后报表信息还在数据库,只是活动状态设置为0,列表数据加载时,只查询活动状态为1的数据,为0的是加载不出来的。之所以使用逻辑删除,是因为数据可能会被误删,如果是物理删除,重要的数据一旦被删除,将不可恢复,而逻辑删除,并非真正意义意思上的
39、删除,数据具有恢复性。点击上传报表按钮,可以跳转到报表上传界面。点击查看报表界面,就可以跳转到报表列表界面。(3)报表列表图5.11 报表查看列表这个界面与管理界面类似,区别在于管理界面用于管理人员修改报表信息,而这个界面用于一般人员查看报表,所以本界面去掉了一些用于报表管理的按钮。点击报表名称或者点击报表名称的单元格,都会触发点击事件,都可以查看到该报表,如下图所示:图5.12 报表页面上图即是前面上传的birt报表,这个报表就是在MyEclipse里面开发的,它是一张柱形图。此页面上的英文都是系统默认的,如果要修改,必须修改运行报表jar包viewservlets.jar,不过改成中文有可
40、能会乱码。运行报表时,执行的jar包比较多,所以运行速度会比较的慢,这也是本系统唯一对服务器性能有较高要求的地方。运行报表所调用的工程,就是前面所建立的空的Report Web Project。虽然我没有在工程中主动添加文件,但工程创建成功以后,执行报表所需的配置文件、jar包及jsp文件会自动加载进去。报表开发完成以后实际上就是一个rptdesign格式的配置文件,与xml文件有些类似,开发过程的各种设置会保存到这个配置文件。当报表运行时,会发送请求到报表引擎,然后报表服务器会读取配置文件内容,根据设置,在后台动态合成JSP文件,发送到浏览器进行显示。6系统测试6.1软件测试基础理论6.1.
41、1 软件测试定义软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例,并利用这些测试用例运行程序以及发现错误的过程,即执行测试步骤。软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码实现的最终审查,它是软件质量保证的关键步骤。6.1.2 软件测试基本概念(1)测试的含义所谓测试,首先是一项活动,在这项活动中某个系统或组成的部分将在特定的条件下运行,结果将被观察和记录,并对系统或组成部分进行评价。测试活动有两种结果:找出缺陷和故障,或显示软件执行正确。测试是一个或多个测试用例的集合。测试用例:所谓测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的
42、结果;测试用例是执行测试的最小实体。(2)测试的步骤测试步骤详细规定了如何设置、执行、评估特定的测试用例。软件生命周期:一个软件生命周期包括制定计划、需求分析定义、软件设计、程序编码、软件测试、软件运行、软件维护、软件停用等8个阶段。软件测试在软件生命周期中横跨两个阶段:单元测试阶段,即在每个模块编写出以后所做的必要测试;综合测试阶段,即在完成单元测试后进行的测试,如集成测试、系统测试、验收测试。6.2软件测试目的测试是程序的执行过程,目的在于发现错误;不能证明程序的正确性,除非仅处理有限种情况。检查系统是否满足需求也是测试的期望目标。一个好的测试用例在于发现了还未曾发现的错误;一次成功的测试
43、则是发现了错误的测试。只有进行了充足的测试,软件的准确性才能有效提高,用户使用时不会出现太多的问题,这样用户的满意度才能逐步提升。6.3软件测试方法分类软件测试技术按照不同的划分方法,有不同的分类:静态测试、动态测试;黑盒测试、白盒测试;单元测试、集成测试、回归测试、系统测试、验证测试以及确认测试。6.3.1 静态测试与动态测试按照软件测试分析与非分析方法而论,软件测试可以分静态测试和动态测试。(1)静态测试指不实际运行软件,主要是对软件的编程格式、结构等方面进行评估。静态测试包括:代码检查 、静态结构分析、代码质量度量等。它可以由人工进行,也可以借助软件工具自动进行。(2)动态测试动态测试方
44、法是指计算机必须真正运行被测试的程序,通过输入测试用例,对其运行情况即输入与输出的对应关系进行分析,以达到检测的目的。动态测试包括:功能确认与接口测试 ,覆盖率分析,性能分析,内存分析。6.3.2 黑盒白盒与白盒测试(1)黑盒测试按照软件测试用例的设计方法而论,软件测试可以分为白盒测试法和黑盒测试法。若测试规划是基于产品的功能,目的是检查程序各个功能是否能够实现,并检查其中的功能错误,则这种测试方法称为黑盒测试(Black-box Testing)方法。 黑盒测试又称为功能测试、数据驱动测试和基于规格说明的测试。它是一种从用户观点出发的测试,一般被用来确认软件功能的正确性和可操作性。黑盒测试主
45、要根据规格说明书设计测试用例,并不涉及程序内部构造和内部特性,只依靠被测程序输入和输出之间的关系或程序的功能设计测试用例。黑盒测试有两个特点:黑盒测试与软件的具体实现过程无关,在软件实现的过程发生变化时,测试用例仍然可以使用。黑盒测试用例的设计可以和软件实现同时进行,这样能够压缩总的开发时间。(2)白盒测试白盒测试又称为结构测试、逻辑驱动测试或基于程序的测试,一般用来分析程序的内部结构。白盒测试要求是对某些程序的结构特性做到一定程度的覆盖,或者说这种测试是“基于覆盖率的测试”。通常的程序结构覆盖有:语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,路径覆盖。6.3.3 测试类型按照软件测试的策略和
46、过程来分类,软件测试可分为单元测试、集成测试、系统测试、验证测试和确认测试。测试中的错误分类:A类错误:致命错误引起程序异常中断或死机的错误等。B类错误:功能错误业务功能实现错误、程序执行结果错误等。C类错误:功能缺陷功能操作不方便、缺少操作提示等。D类错误:界面缺陷界面设计不符合本系统的界面设计规范等。E类错误:测试正确正确的测试项、测试结果与预期的一致等。6.4报表辅助系统测试本系统各部分模块,采黑白盒测试。6.4.1 测试用例设计要求一个好的测试用例,应该包含以下信息: (1)软件或项目的名称。(2)软件或项目的版本(内部版本号)。(3)功能模块名。(4)测试用例的简单描述,即该用例执行
47、的目的或方法。(5)测试用例的参考信息(便于跟踪和参考)。(6)本测试用例与其他测试用例间的依赖关系。(7)本用例的前置条件,即执行本用例必须要满足的条件,如对数据库的访问权限。(8)用例的编号(ID),如可以是:软件名称简写-功能块简写-NO.。(9)步骤号、操作步骤描述、测试数据描述。(10)预期结果(这是最重要的)和实际结果(如果有BUG管理工具,这条可以省略)。(11)开发人员(必须有)和测试人员(可有可无)。(12)测试执行日期。6.4.2 登录系统模块测试用例表6.1 数据管理模块测试用例系统名称报表辅助系统程序版本V1.0功能模块数据管理模块编制人徐波功能特性将文件数据导入数据库
48、及将数据库数据导出到文件测试目的验证数据是否能正常导入导出测试页面测试用例期望结果实际结果测试状态index.jsp不上传文件直接点击按钮“数据导入”弹窗提示“请上传文件”弹窗提示“请上传文件”正常import.jsp左边输入框输入“d”搜索左边表格显示包含“d”及“D”的字段左边表格显示包含“d”及“D”的字段正常(续)表6.1 数据管理模块测试用例import.jsp右边输入框输入“_c”搜索右边表格显示包含“_C”及“_c”的字段右边表格显示包含“_C”及“_c”的字段正常点击搜索到数据表“d_category”右边表格加载该数据表的所有字段,表格标题变为“字段名称”右边表格加载该数据表
49、的所有字段,表格标题未变不正常右边输入框输入“es”搜索右边表格加载数据表“d_category”中包含“es”的字段右边表格显示“description”正常左边选择三个文件字段,右边选择两个数据表字段弹窗提示“两边字段个数必须相等!”弹窗提示“两边字段个数必须相等!”正常左右两边都选三个字段点击匹配匹配的字段出现在匹配列表匹配的字段出现在匹配列表正常左右两边都不选择字段,直接点击匹配弹窗提示“请选择要匹配的字段”弹窗提示“请选择要匹配的字段”正常Excel文件数据deptno=1001dname=rdLocation=wuhan正常方式导入弹窗提示导入成功跳转到“index.jsp”界面弹
50、窗提示导入成功跳转到“index.jsp”界面正常Excel文件数据deptno=testdname=rdLocation=wuhan正常方式导入错误信息列表内提示错误行“1”,错误信息“Incorrect integer value: 'test' for column 'deptno' at row 1”显示错误信息“Incorrect integer value: 'test' for column 'deptno' at row 1”正常(续)表6.1 数据管理模块测试用例import.jspExcel文件数据deptno
51、=1001dname=rdLocation=wuhan正常方式导入错误信息列表内提示错误行“1”,错误信息“错误信息列表内提示错误行“1”,错误信息“Incorrect integer value: 'test' for column 'deptno' at row 1”错误信息列表内提示错误行“1”,错误信息“错误信息列表内提示错误行“1”,错误信息“Incorrect integer value: 'test' for column 'deptno' at row 1”正常export.jsp先选择数据表“dept”,再选择数
52、据表“emp”右边先加载dept的字段再 加载emp的字段右边先加载dept的字段再 加载emp的字段正常不选字段,直接点击“创建模板”弹窗提示“请选择字段”导出一张空的Excel表格不正常选择字段点击“导出数据”成功导出数据,并且标题行为黄色背景,数据行为白色背景成功导出数据,并且标题行为黄色背景,数据行为白色背景正常选择字段点击“导出模板”成功导出模板文件,并且第一行标题为黄色背景成功导出模板文件,并且第一行标题为黄色背景正常使用导出的模板文件,重新录入数据,然后重新导入导入成功导入成功正常使用导出的数据文件,直接再重新导入导入成功导入成功正常表6.2 数据管理模块测试用例系统名称报表辅助
53、系统程序版本V1.0功能模块报表管理模块编制人徐波功能描述报表的上传,报表信息编辑修改及报表显示测试目的验证数据是否能正常导入导出测试页面测试用例期望结果实际结果测试状态birtUpload.jsp不填数据直接提交所有文本框边框变为红色波浪线所有文本框边框变为红色波浪线正常birtManage.jsp点击删除列表刷新,删除数据消失列表刷新,删除数据消失正常点击报表名称,修改后保存列表刷新,显示修改后的报表信息列表刷新,显示修改后的报表信息正常点击“查看”按钮跳转到报表查看列表界面跳转到报表查看列表界面正常点击“上传报表”按钮跳转到报表上传界面跳转到报表上传界面正常birtList.jsp点击报
54、表名称显示报表显示报表正常6.5测试报告本系统经过测试,各部分的功能基本正常,达到了预期的目的。通过对系统的全面测试,我学到了许多测试方面的知识,了解到测试方法、测试经验。通过本次设计,使我了解到测试的重要性。通过测试,可以使软件更适合用户的需求,更加稳定、可靠地运行,并能适应市场竞争,应用前景广泛。6.6软件安装 由于本系统采用了JSP、MySQL术,因此需要的软件包括有JDK、TOMCAT、MySQL。6.6.1 JDK的安装首先,JDK的安装配置。双击文件,装完之后,设置环境变量。右击“我的电脑” 选“属性”,选“高级", 选“环境变量”,在这个窗口中选最下面的“新建"变量名:javapath,变量值:C:Program FilesJavajdk1.5.0_05(这个是安装的默认路径),点击“确定”,创建环境变量。6.6.2 TOMCAT的安装其次,TOMCAT6.0的安装配置。Tomcat解压版以及安装版文件,都可以在官网上下载。建议使用安装版的服务器。下载以后,双击安装文件,安装过程需要修改用户名及密码,还可以设置端口号。安装完成之后,可以将其引入MyEclipse里面,启动服务器执行文件。如果已经产生可执行项目,可以将其复制到安装目录的Tomca
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《数理统计》第8章 正态总体均值的假设检验
- 异地采集指纹办理流程
- 中医诊断学培训课件
- 维修电工高级试题含答案(附解析)
- 计算机基础模拟考试题与参考答案解析
- 为老年人提供必要的医疗和健康服务确保他们得到及时治疗和关怀
- 2024年5月配电线路工专业试题+参考答案解析
- 5月1+x无损检测模拟试题与答案(附解析)
- 种子种苗遗传改良方法考核试卷
- 如何培养自律的孩子家庭教育
- HYT 235-2018 海洋环境放射性核素监测技术规程
- 校团委办公室干事竞选演讲稿
- DB32T3562-2019桥梁结构健康监测系统设计规范
- 当事人银行结算账户确认书模板
- 《糖尿病的预防》课件
- 酒店工伤预防知识培训课件
- 全媒体运营师-国家职业标准(2023年版)
- 中小学生心理健康诊断测验 MHT(附测试量表及评分细则)
- GLB-2防孤岛保护装置试验报告
- 职业生涯规划家庭教育课
- 文化与科技的融合传统与现代的碰撞
评论
0/150
提交评论