1、河北农业大学 本科毕业论文(设计) 题 目:常压危货罐车(罐体)检验报告审核系统(管理员模块) 摘 要在当今社会,互联网的发展,给人们的工作和生活带来了极大的便利和高效,信息化,电子化已经成为节约运营成本,提高工作效率的首选。当前罐车(罐体)检验管理尚处于手工作业阶段,不但效率低下,还常常因为管理的不慎而出现纰漏。因此为了管理需求,设计常压罐车(罐体)检验报告审核系统,以帮助管理部门管理办公自动化、节约管理成本、提高企业工作效率的目的。 常压罐车(罐体)检验报告审核系统主要对罐车(罐体)信息进行集中管理,方便管理部门建立一个完善的、强大的罐车(罐体)信息数据库,它是以SQL 2000数据库作为
2、开发平台。使用JSP编写程序,完成数据输入、修改、存储、调用查询等功能;并使用SQL 2000数据库形成数据,进行数据存储。 常压罐车(罐体)检验报告审核系统是单位科学、全面、高效进行人事管理的系统,参考大量中国人力资源管理理论,根植于国内管理的实际情况,实用而科学。在操作上集输入、查询、统计等处理为一体,简便灵活,自动化功能强大。关键字:常压罐车(罐体)检验报告审核系统 罐车(罐体) JSP SQLAbstract In todays society, the development of the Internet, has brought great convenience and eff
3、iciency, information to peoples work and life, electronic technology has become operational cost savings, improve the efficiency of choice. The tank (tank) inspection management is still in the stage of manual operation, not only inefficient, but also often because of careless management flaws. Ther
4、efore, in order to management needs, design of atmospheric tank (tank) inspection report audit system, to help management office automation, saving the cost of management, improve enterprise efficiency purposes. Atmospheric tank (tank) inspection report audit system mainly on the tank (tank) central
5、ized management of information, convenient management department to establish a perfect, powerful tank (tank) information database, which is based on SQL 2000 database as a development platform. The use of JSP programming, the completion of data entry, modification, storage, call the query function;
6、 and the use of SQL 2000 database to form data, data storage. Atmospheric tank (tank) inspection report audit system is a science, comprehensive, efficient personnel management system, reference to the large number of Chinese human resource management theory, rooted in the domestic management of the
7、 actual situation, practical and scientific. In the operation set input, query, statistics, processing as one, is simple and flexible, powerful automation.关键字:常压罐车(罐体)检验报告审核系统 罐车(罐体) JSP SQLKeywords: atmospheric tank (tank) inspection report audit system tank (tank) JSP SQL2000 目录引 言11.项目定义12.编写目的13
8、. 项目背景1第一章 可行性分析11.1技术可行性21.1.1Java的发展及特点21.1.2Jsp的介绍31.1.3SQL Server版本简介41.2经济可行性41.3操作可行性4第二章 需求分析52.1功能需求62.1.1系统目标62.1.2功能分析62.1.3系统层次模块图62.2系统性能要求72.3运行环境72.4数据流图8第三章 总体设计103.1系统代码架构103.2数据库结构设计10第四章 详细设计与实现164.1管理员登陆模块功能介绍164.2人员信息管理模块的设计与实现17第五章 系统测试以及软件安装205.1软件测试基础理论205.1.1 软件测试定义205.1.2 软件
9、测试基本概念205.2软件测试目的205.3软件测试方法分类215.3.1 静态测试与动态测试215.3.2 黑盒与白盒测试215.3.3 单元测试、集成测试、系统测试、验证测试和确认测试225.4系统测试225.4.1 测试用例设计要求225.4.2 系统模块测试用例225.5测试报告235.6软件安装235.6.1 JDK的安装235.6.2 TOMCAT的安装245.6.3 SQL SERVER的安装24结 论25谢 辞26参考文献27河北农业大学2014届本科生毕业设计(论文)引 言1. 项目定义在当今社会,互联网空的发展,给人们的工作和生活带来了极大的便利和高效,信息化,电子化已经成
10、为节约运营成本,提高工作效率的首选。当前罐车罐体检验与审核管理尚处于手工作业阶段,不但效率低下,还常常因为管理的不慎而出现纰漏。因此为管理部门需求,设计常压罐车(罐体)检验报告审核系统,以帮助管理部门管理办公自动 化、节约管理成本、提高工作效率的目的。 2.编写目的常压罐车(罐体)定期检验已经越来越重视。常压罐车(罐体)检验报告审核系统就是要做到对常压罐车(罐体)的信息进行增加,查询,删除,修改等相关操作。本系统就是为了信息安全访问,可以注册多个管理员对数据库进行管理操作,也就是进行访问控制。进行访问控制管理的最终目的是加强对信息的管理,防止无关人员对数据库的操作,同时可以对登陆人员信息可进行
11、增加,查询,删除,修改等相关操作,对不同的部门信息可进行增加,修改等相关操作,修改等相关操作,实现对常压罐车(罐体)检验报告审核信息的改动。3. 项目背景对罐车(罐体)定期检验我们要做很多事比如对罐车原始资料进行审查;产品合格证;产品质量证明书;罐车总图;罐体部件竣工图;制造监督检验证书或进口产品安全性能监督检验证书;罐体强度计算书;安全附件制造许可证;质量证明文件;汽车罐车使用证;罐车历次定期检验报告等一系列的管理工作可见如此繁琐。所以一个有效罐车(罐体)定期检验审核系统可以帮助管理部门进行有效的管理,所以罐车(罐体)定期检验审核系统管理是对于国内管理部门是很有必要的。第一章 可行性分析在当
12、今社会,互联网空的发展,给人们的工作和生活带来了极大的便利和高效,信息化,电子化已经成为节约运营成本,提高工作效率的首选。当前罐车罐体检验与审核管理尚处于手工作业阶段,不但效率低下,还常常因为管理的不慎而出现纰漏。因此为管理部门需求,设计常压罐车(罐体)定期检验报告审核系统,以帮助管理部门管理办公自动 化、节约管理成本、提高工作效率的目的。 常压罐车(罐体)定期检验报告审核系统主要对罐车(罐体)与检验者审核者的信息进行集中管理,建立一个完善的、强大的信息数据库,它是以SQL 2000数据库作为开发平台。使用jsp编写程序,完成数据输入、修改、存储、调用查询等功能;并使用SQL 2000数据库形
13、成数据,进行数据存储。 1.1技术可行性1.1.1 Java的发展及特点Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。用Java实现的Hot Java浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。另一方面,Java技术也不断更新。1991年,Sun公司的James Gosling。Bill Joe等人,为电视、控制烤面包机等家用电器的交互操作开发了一个Oa
14、k(一种橡树的名字)软件,他是Java的前身。当时,Oak并没有引起人们的注意,直到1994年,随着互联网飞速发展,他们用Java编制了HotJava浏览器,得到了Sun公司首席执行官Scott McNealy的支持,得以研发和发展。为了促销和法律的原因,1995年Oak更名为Java。Java分为三个体系JavaSE(Java2 Platform Standard Edition,java平台标准版),JavaEE(Java 2 Platform,Enterprise Edition,java平台企业版),JavaME(Java 2 Platform Micro Edition,java平台
15、微型版)。Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface、简称API)构成。Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。Java语言是一个支持网络计算的面向对象程序设计语言。Java语言吸收了Smalltalk语言和C+语言的优点,并增加了其它特性,如支持并发程序设计、网络通信、和多媒体数据控制等。主要特性如下:1.Java语言简单。Java语言的语法与C语言和C+语言很接近,使得大多数程序员很容易学习和使用Java。另一方
16、面,Java丢弃了C+ 中很少使用和难以理解的特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。2.Java语言是一个面向对象的。Java语言提供类、接口和继承等原语, Java语言全面支持动态绑定,而C+ 语言只对虚函数使用动态绑定。3.Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、 ServerSocket等。Java的RMI(远程方法激活)
17、机制也是开发分布式应用的重要手段。 4.Java语言是健壮的。Java的强制类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。 5.Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。 6.Java语言是体系结构中立的。Java程序在Java平台上被编译为体系结构中立的字节码格式, 然后可以在实现这个Java平台的任何系统中运行。 7.Java语言是可移植的。这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性。 8.Java语言是解释型的。如前所述,Jav
18、a程序在Java平台上被编译为字节码格式, 然后可以在实现这个Java平台的任何系统中运行。 9.Java是高性能的。与那些解释型的高级脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C+。 10.Java语言是多线程的。在Java语言中,线程是一种特殊的对象,线程的活动由一组方法来控制。 Java语言支持多个线程的同时执行,并提供多线程之间的同步机制。 11.Java语言是动态的。Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也
19、有利于软件的升级。1.1.2 Jsp的介绍Jsp是Java Server Page的缩写,是由Sun公司倡导、许多公司参与,于1999年推出的一种Web服务设计标准。Jsp是基于Java Servlet以及整个Java体系的Web开发技术,利用这一技术可以建立安全、跨平台的先进动态网站。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet 是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简
20、单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。Jsp技术的优势:(1)一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。 (3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。 (4)多样化和功能强大的开发工具支持
21、。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。Jsp技术的弱势:(1) 与ASP一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。(2) Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。从另一方面,它还需要硬盘空间来储存一系列的.java文件和.class文件,以及对应的版本文件。1.1.3 SQL Server版本简介SQL是英文Structured Query
22、Language的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。SQL Server 是一个关系数据库管理系统。它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Serve
23、r 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。Sybase 则较专注于SQL Server在UNIX 操作系统上的应用。 SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统,该版本继承了SQL Server 7.0 版本的优点,同时又比它增加了许多更先进的功能。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的笔记本电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。SQL Server 2
24、005 是一个全面的数据库平台,使用集成的商业智能 (BI) 工具提供了企业级的数据管理。SQL Server 2005 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。SQL Server 2008是一个重大的产品版本,它推出了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的SQL Server版本。1.2经济可行性本系统开发应用之后主要用于罐车(罐体)定期检验报告审核管理,便捷的操作,系统的管理模式,将为管理部门提高更多效率,提高经济效益。尽管前期的投入可能高一点,需要开发软件以及与数据库建立连接,但是在
25、过程和使用中会节省下来大量的人力和物力,而且JSP和SQL Server是免费的,有开发周期短和高效率等优点。因此该项目的开发成本很低,从这一点上来说,该系统经济上可行的。1.3操作可行性由系统分系可以看出本系统的开发在技术上具有可行性。首先系统对于服务器端和客户端所要求的软、硬件的最低配置现在大多数的用户用机都能达到。现有的开发工具和技术(JSP、SQL SERVER2000)完全能够实现。本系统对管理人员和用户没有任何的特殊要求,实际操作基本上以鼠标操作为主并辅以少量的键盘操作,操作方式很方便。因此该项目具有良好的易用性。第二章 需求分析当前罐车(罐体)定期检验报告审核管理尚处于手工作业阶
26、段,不但效率低下,还常常因为管理的不慎而出现纰漏。因此设计罐车(罐体)定期检验报告审核系统,以帮助管理部门办公自动化、节约管理成本、提高工作效率的目的。近年来,随着我国互联网应用的迅速普及和企业管理电子化的普遍开展,人们开始意识到系统管理的巨大威力,成为各个领域未来发展的必然趋势。在国内,各个领域原有的手工管理方式已不适应形势的新发展,为实现从静态管理到动态管理的转变,树立形象,必须应用计算机辅助管理,全面实行信息化管理,对信息实行动态监控,实现管理上档次、上水平。罐车(罐体)定期检验报告审核系统建设是与时俱进、谋求发展的必由之路。2.1 功能需求2.1.1系统目标罐车(罐体)定期检验报告审核
27、信息的电子化管理是管理部门管理信息系统的一部分,而正因为这种动态服务,才大大提高罐车(罐体)的使用者和管理者的沟通,交流。这种模式已经逐渐替代到过去的手工工作模式以及工作方式。本系统实现了人员以及报告信息的管理、查询、增加及删除,信息刷新管理等功能。本系统主要实现如下目标:管理员的管理功能:对人员(管理员、检查员、审核员)、报告信息的查询、更改、删除、增加等功能。对报告的批准处理以及对报告的存档维护。对个人信息的维护。检验员模块:添加报告以及各类信息。查看审核过的报考等。审核员模块:对报考进行审核处理。2.1.2功能分析开发软件首先做的是开发过程中最主要的就是系统的需求分析,需求分析同时也是软
28、件生存周期中关键的一步。根据软件工程学中开发软件的要求,对系统全部功能和相关的技术进行具体的分析,分析时采用结构化的分析方法,自顶向下、逐层分解问题。结合管理部门要求以及实际的具体分析,要求本系统具有以下功能:l 管理页面要求美观大方、个性化。l 各类信息(包括管理员、检验员、审核员)的增加、删除、改动和查询功能。l 信息刷新的处理功能。l 网站操作流程简单、方便,能够提高工作效率。2.1.3系统层次模块图总的系统模块主要包括:管理员的登陆;各种信息查看、修改、删除、增加;检验报告信息修改、删除、增加;总的系统功能结构图,如图2-1所示: 图2-1 总的系统层次模块图2.2 系统性能要求1、
29、安全性:系统应该有较强的安全性,对数据和相关信息有较强的保护性。2、 稳定性:系统应该在一定情况下稳定运行。3、 兼容性:能够与其它软硬件有良好的兼容性。2.3 运行环境硬件环境:l CPU:Intel(R) Core(TM)2 1.73GHzl 内存:2.5 Gl 硬盘:120Gl 显示:128MB独立显卡软件环境:l 操作系统:Windows 7 l 数据库:SQL server 2000l 浏览器:Microsoft Internet Explorerl 相关应用软件: Tomcat 7.0,JSP2.4 数据流图系统核心数据流图如2-2图所示:审核员审核报告检验员添加报告管理员批准报告
30、图2-2 系统数据流程图检验员添加常压罐车(罐体)定期检验报告,审核员审核发送给管理员,管理员对审核过的报告进行批准。系统管理员设计流程图如2-3图所示 图2-3 系统管理员设计流程图系统管理模块IPO图:输入:登录管理并输入用户名和密码,调用用户登录下的各功能处理:1)判断用户名与密码是否匹配2)调用各功能模块时判断用户是否已登录输出:1)登录成功或失败2)如已登录可直接调用其它功能第三章 总体设计基于JSP的罐车(罐体)定期检验报告审核系统,该系统的模块主要有用户登陆模块,管理员管理模块(实现人员信息的增加、删除、改动、查寻),对检验报告的查询,个人信息的维护。3.1 系统代码架构完成了系
31、统的需求分析之后,就进入了系统的设计阶段,在整个系统的开发时期中,设计阶段是最主要的阶段。按软件生存周期的划分,设计任务通常分两个阶段来完成。第一个阶段是概要设计,它的任务是建立软件的总体结构,即软件的组成,以及各组成成分(子系统或模块)之间的相互联系。第二个阶段是详细设计,其任务是确定模块的内部算法和数据结构,产生描述各个模块程序过程的详细设计文档。本系统采取了原型法,先根据需求分析设计出原型,然后在原型的基础上进行不断的测试和改进。在本系统的设计过程中采取了模块化的设计方法,化繁为简。3.2 数据库结构设计数据库的设计实际上是对项目设计的一个整体规划,因为数据库的设计要从全局的角度考虑,而
32、且数据库的设计要从全局的角度考虑,而且数据库中表的结构都是与程序紧密相关的,如果数据库设计如果没有到位,设计也会受到一定的影响。本系统采用SQL Server 2000 数据库,系统数据库名为WXPJYDB,数据库的设计的E-R图是一个数据库的重要部分,现将数据库中部分重要表格的关系反应如下几个E-R图所示。管理员能对人员信息进行增加、删除、查询和修改,E-R图如图3-1所示状态用户名管理员登陆密码姓名人员信息管理类型联系电话姓名登录名 图3-1 管理员与人员信息E-R图管理员能对报告进行存档维护、批准处理、以及查询,具体E-R图如下图3-2所示:用户名姓名管理员登陆密码报告证书管理批准安装许
33、可证编号检验员安装单位报告状态报告编号详细资料图3-2 管理员与报告E-R图审核员能对报告进行审核、查询,具体E-R图如下图3-3所示:用户名审核员登陆密码姓名报告证书管理审核安装许可证编号检验员安装单位详情查看报告编号审核结果图3-3 审核员与报告证书E-R图检验员添加、打印报告,具体E-R图如下图3-4所示:用户名检验员登陆密码姓名报告证书管理添加安装许可证编号安装日期查看报告信息报告编号图3-4 检验员与报告信息E-R图本系统采用SQL Server 2000 数据库,系统数据库名为WXPJYDB,数据库WXPJYDB中包括3个数据表。各个表的逻辑结构和相关信息如下:1.检验所基本信息表
34、(dbo.INFO_DEP)检验所基本信息表用来存检验所的基本信息。其中包检验所的编号、检验所的名称、资质证书编号。如表3-1所示:表3-1 dbo.INFO_DEP的结构字段名数据类型长度是否主键描述dep_idchar2是唯一标识dep_namevarchar50检验所名称dep_zzzsvarchar30资质证书编号 2. 用户基本信息表(dbo.INFO_USER)用户基本信息表此表主要用于存储管理员、检验员、审核员的相关信息,包括用户编号、用户名、登陆名、登陆密码、联系电话等字段等。表dbo.INFO_USER的结构如表3-2所示。表3-2 dbo.INFO_USER的结构字段名数据
35、类型长度是否主键描述user_idint4是用户编号user_dlmvarchar15用户登陆名user_pwdvarchar15登陆密码user_namevarchar10用户名user_typechar1用户类型user_telphonevarchar20用户联系电话user_lastdatedatetime8上次登陆时间报告 2. 报告基本信息表(INFO_REPORT)报告基本信息表此表主要用于存储报告相关信息,包括报告编号、使用单位名称、制造单位名称、车牌号等。表INFO_REPORT的结构如表3-2所示。表3-3 表INFO_REPORT的结构字段名数据类型长度是否主键描述repo
36、_idchar10是检验报告编号repo_companyvarchar50使用单位名称repo_cpzvarchar10车牌号码(牵引)repo_gcpzvarchar10车牌号码(挂车)repo_yyzph2varchar10营运证编号(挂车)repo_yyzphvarchar10营运证编号(牵引)repo_czjzvarchar50充装介质repo_hdzlint4核定载质量repo_zcrqdatetime8注册登记时间jbkq_zzdwvarchar50制造单位jbkq_jmxzvarchar20截面形状jbkq_gcxhvarchar50罐车型号jbqk_czvarchar30材质j
37、bqk_gtggcint4罐体长jbqk_gtggkint4罐体宽jbqk_gtgggint4罐体高jbqk_gcbhftnumeric9罐车封头jbqk_scbhnumeric9实测壁厚jbqk_scbhftnumeric9实测封头jbqk_gcbhnumeric9罐车壁厚jbqk-gcrjnumeric9容积jbqk_ljhgvarchar10底板与罐体链接是否合格28第四章 详细设计与实现4.1管理员登陆模块功能介绍管理员(属于批准类型)主要包括以下功能:l 为管理员进入后台提供一个入口。具体效果如图4-1所示: 图41 系统登陆页面l 当管理员输入正确用户名和密码时,进入系统。如图4-
38、2所示:图4-1 系统登陆页面图41 成功登陆页面4.2人员信息管理模块的设计与实现此页面负责显示人员信息的全部信息,同时提供增加、删除、改动、查询的超链接。管理主界面如图4-3所示:图4-3 人员信息管理主页面管理员添加用户界面如图4-4所示:图4-3 人员信息录入页面管理员对报告进行批准处理页面。如图4-4所示:图4-4 报告批准页面第五章 系统测试以及软件安装5.1软件测试基础理论5.1.1 软件测试定义软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例,并利用这些测试用例运行程序以及发现错误的过程,即执行测试步骤。软件测试就是在软件投入运行前,对软件需求分析
39、、设计规格说明和编码实现的最终审查,它是软件质量保证的关键步骤。5.1.2 软件测试基本概念1、测试的含义所谓测试,首先是一项活动,在这项活动中某个系统或组成的部分将在特定的条件下运行,结果将被观察和记录,并对系统或组成部分进行评价。测试活动有两种结果:找出缺陷和故障,或显示软件执行正确。测试是一个或多个测试用例的集合。测试用例:所谓测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果;测试用例是执行测试的最小实体。2、测试的步骤测试步骤详细规定了如何设置、执行、评估特定的测试用例。软件生命周期:一个软件生命周期包括制定计划、需求分析定义、软件设计、程序编码、软件测试、软件运行、软
40、件维护、软件停用等8个阶段。软件测试在软件生命周期中横跨两个阶段:单元测试阶段:即在每个模块编写出以后所做的必要测试。综合测试阶段:即在完成单元测试后进行的测试,如集成测试、系统测试、验收测试。3、测试的意义系统测试是管理信息系统的开发周期中的一个十分重要环节。尽管在系统开发周期的各个阶段均采取了严格的技术审查,但依然难免会留下错误,如果没有在投入运行前的系统测试阶段被发现并纠正,问题迟早会在运行中暴露出来,到那时要纠正错误将会付出更大的代价。系统测试占用的时间、花费的人力和成本占软件开发的很大比例。统计表明,开发较大规模的系统,系统测试的工作量大约占整个软件开发工作量的4050。而对于一些特
41、别重要的大系统,测试的工作量和成本更大,甚至超过系统开发其他各阶段的总和的若干倍。5.2软件测试目的测试是程序的执行过程,目的在于发现错误;不能证明程序的正确性,除非仅处理有限种情况。检查系统是否满足需求也是测试的期望目标。一个好的测试用例在于发现了还未曾发现的错误;一次成功的测试则是发现了错误的测试。5.3软件测试方法分类软件测试技术按照不同的划分方法,有不同的分类:静态测试、动态测试;黑盒测试、白盒测试;单元测试、集成测试、回归测试、系统测试、验证测试以及确认测试。5.3.1 静态测试与动态测试按照软件测试分析与非分析方法而论,软件测试可以分静态测试和动态测试。1、静态测试指不实际运行软件
42、,主要是对软件的编程格式、结构等方面进行评估。静态测试包括:代码检查 、静态结构分析、代码质量度量等。它可以由人工进行,也可以借助软件工具自动进行。2、动态测试动态测试方法是指计算机必须真正运行被测试的程序,通过输入测试用例,对其运行情况即输入与输出的对应关系进行分析,以达到检测的目的。动态测试包括:功能确认与接口测试 ,覆盖率分析,性能分析,内存分析。5.3.2 黑盒与白盒测试1、黑盒测试按照软件测试用例的设计方法而论,软件测试可以分为白盒测试法和黑盒测试法。若测试规划是基于产品的功能,目的是检查程序各个功能是否能够实现,并检查其中的功能错误,则这种测试方法称为黑盒测试(Black-box
43、Testing)方法。 黑盒测试又称为功能测试、数据驱动测试和基于规格说明的测试。它是一种从用户观点出发的测试,一般被用来确认软件功能的正确性和可操作性。黑盒测试主要根据规格说明书设计测试用例,并不涉及程序内部构造和内部特性,只依靠被测程序输入和输出之间的关系或程序的功能设计测试用例。2、黑盒测试的特点黑盒测试与软件的具体实现过程无关,在软件实现的过程发生变化时,测试用例仍然可以使用。黑盒测试用例的设计可以和软件实现同时进行,这样能够压缩总的开发时间。若测试规划基于产品的内部结构进行测试,检查内部操作是否按规定执行,软件各个部分功能是否得到充分使用,则这种测试方法称为白盒测试(White-box Testing)方法。3、白盒测试白盒测试又称为结构测试、逻辑驱动测试或基于程序的测试,一般用来分析程序的内部结构。白盒测试要求是对某些程序的结构特性做到一定程度的覆盖,或者说这种测试是“基于覆盖率的测试”。通常的程序结构覆盖有:语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,