周一至周五 | 9:00—22:00

期刊论文网 > 管理论文 > 科研管理论文 > 科研管理论文写作格式 科研数据统计和管理系统

科研管理论文写作格式 科研数据统计和管理系统

2018-11-16 15:37:13来源:组稿人论文网作者:婷婷

  摘要

  科研数据是高校科研的主要依据与来源,但目前为止的大多数高校中,很少存在专门针对科研数据的管理系统,很多都是和其他信息系统夹杂在一起,但随着电子网络科技的持续发展,这种形势已经不能满足当前高校的科研需求,所以为高校科研定做一个轻量级B/S架构的信息管理系统成了一个必然的趋势。

  本系统以西北大学科研数据统计管理为背景,采用JSP开发语言,数据库采用MySQL,开发平台采用MyEclipse,对基于B/S模式的高校科研信息管理系统进行设计与实现,目的是提高高校科研信息系统实时性、精确性和易管理性。

  本课题结合先进的管理方法和网络技术,采用Web框架Struts实现不同用户类型(普通科研成员,院系管理员,总管理员)的登录,科研成果管理,论文管理,科研人员获奖管理等模块功能。

  论文的叙述过程大概如下:

  叙述科研管理当前的研究现状和背景;

  分析JDBC,JSP等技术;

  介绍MVC和Struts框架的基本思想和体系结构;

  4. 详细设计

  关键词:科研管理; Struts; B/S模式

  1前言

  1.1研究背景

  Web应用发展至今,国内外很多公司都有一套完整的web编程语言和工具,比如Microsoft公司的C#和.NET技术,Oracle公司的以数据库为主的Web平台等等,这些技术都是支持客户端-服务器类型的Web编程技术。但是针对于校级科研信息管理的系统,为了实现方便性、有效性、稳定性等特点,设计与实现一套B/S架构的轻量级信息管理系统是目前大多数高校管理科研数据的最佳途径。

  随着校园网络的进一步推进和科研力度的进一步加大,科研人员、学科种类、科研项目等的不断增多,除此之外,科研成果所涉及的范围也越来越广,在一定程度上为高校科研带来更大优势的同时也面临着更大的挑战,所以基于高校科研数据统计与管理的这样一个方向,开发与实现教师管理个人的科研信息,院系管理员与总管理员对科研数据进行管理和统计的这样一个系统,同时构建完整的可科研平台,通过科研管理信息平台,能够实现对用户的管理和对用户科研成果,用户的科研项目的有效管理,能准确、快速的对相关的科研信息进行查询、统计,实现科研的信息化管理。

  1.2 研究现状

  在大多数的高校中,科研信息管理没有独立的系统,大多是和其他管理系统混合在一起,现针对这样的现状作如下分析:

  科研数据的录入难以满足实时性,所以很难做到系统数据与实际数据的统一,存在这样的延迟性不方便后台管理人员的管理与统计,进而影响高校科研数据的准确性。

  缺乏对外交互的平台。在普通的信息管理首页上存在有一些课题、项目的介绍,但大多是静态的的,其实现方法基本上也都是页面的跳转,没有实现与数据库的连接,随着科研范围的不断扩大,应该有一个Web形式的交互平台,基于后台数据库的连接,有一个动态的信息展示,实现与用户的交互响应。

  数据交换形式落后。科研信息管理系统所涉及到的部门、院系、科研人员和管理员之间都有着千丝万缕的关系,科研资料或者报表都是通过一级一级往上提交,并且有很多高校是以手工形式完成这一过程,然后由后台管理员手动录入,在一定程度上加大了管理员的工作量,随着电子技术的不断发展,这样的数据获取方式已经远远不能满足当下的高校科研要求。

  1.3 研究内容及主要功能

  从设计开发高校科研管理系统的基本点出发,高校科研管理信息管理系统是比较典型的信息管理系统,本系统以JSP语言为编程语言基础,对MySQL及Tomcat 服务器工具的具体使用进行了研究,在MyEclipse平台设计完成对科研信息的管理工作。

  本系统的主要功能如下:

  对科研人员进行简便的管理。

  对科研信息的管理。管理员可以对科研数据进行管理,科研人员可对个人的科研成果进行增加,删除,修改等操作。

  提供简便的数据库操作方案。在连接后台数据库的基础上,当前用户可以根据关键词进行搜索以达到查询的目的。

  1.4 本文的组织结构

  本文是基于B/S模式的高校科研管理系统,对需求和技术进行了详细的介绍与研究,主要分为4个部分:

  第一部为第一章,主要讲述了研究课题的背景,研究现状和主要内容。

  第二部分为第二章和第三章,主要阐述了Struts应用模式的概念、原理以及优势,除此之外,介绍了本系统应用到的其他技术,比如JSP,JDBC,B/S结构等技术。

  第三部分为第四章,主要概述了本系统的需求分析,概要设计、详细设计,系统组织结构。

  第四部分分为第五章和第六章。进行系统模块设计、数据库设计和系统模块实现。

  2.相关技术简介

  2.1 JSP技术简介

  JSP(Java Server Pages,Java服务器页面),其根本是一个简化的Servlet设计,有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件中插入Java程序段和JSP标记,从而形成JSP文件。用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。JSP是一种动态页面设计技术,其目的主要是为了将表示逻辑从Servlet中分离出来。

  页面相关的技术主要是通过HTML文件完成的,而Servlet技术主要是处理客户端提交的请求数据,或者是响应客户端的数据。在Web开发中,页面相关设计和美化工作都是由前端完成,Java开发人员主要完成后台的Java程序,前端给出的页面并不能满足后台开发人员的需求,这时就需要后台开发人员在Servlet中使用Response获取输出流,拼接前端页面需要的HTML片段,这样会导致Servlet中的Java代码十分的臃肿,而且不利于前端人员维护页面。导致前后人员之间合作出现问题。针对这些问题,Sun公司设计出JSP技术来解决。

  JSP的主要功能:可以直接在JSP文件中书写HTML代码,但是JSP文件最后会被翻译成对应的Java代码。这个翻译工作不需要开发人员做任何的事情,而直接由Java对应的机制完成。这样就可以保证前端工程师可以直接针对JSP文件进行页面设计和修改,后台人员可以在JSP页面中添加对应的业务程序。后台人员不用再在Servlet中通过response输出大量的HTML片段。大大的减少了开发人员的工作量,也使前端人员和开发人员之间的沟通更加轻松和简单。

  2.2 JDBC技术

  JDBC和ODBC实际上功能呢个是一样的,只不过ODBC是基于C++语言,与面向对象不一致,所以才出现了JDBC。

  JDBC,全称Java Database Connectivity,即Java数据库连接,是一种可用于执行SQL语句的Java API(Java Application Interface,应用程序设计接口),它是由一些Java写的语言类和界面组成。JDBC给数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序接口,使开发人员可以使用纯Java语言开发完整的数据库应用程序。JDBC技术可以很方便的将SQL语句传送给数据库,对数据库进行访问与处理。通过使用JDBC,开发人员可以很方便的将SQL语句传送到任何一种数据库,也就是说,开发人员不必为访问SQL Server数据库专门写一个程序,访问Oracle数据库又专门写一个程序,或为访问Inform-ix数据库又编写另一个程序等等,程序员只需调用JDBC驱动接口写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行。Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。

  简单来说,JDBC主要完成三件事情:

  同一个数据库建立连接

  向数据库发送SQL语句

  处理数据库并返回结果

  2.3 B/S结构分析

  B/S(Browser/Server)结构即浏览器/服务器架构,是Web兴起后的一种网络结构模式,取消了C/S(Client/Server)对客户端浏览器的强制要求,更趋向于轻便的形式,使用户可以直接通过浏览器访问和实现。在这种架构中,有很少部分的事务逻辑实现在前端,将核心部分的事务逻辑在服务器端实现。这样就大大降低了客户端的硬件与软件负荷,简化了系统的开发、维护和使用过程中的工作量。客户机上只要装了无论是哪种类型的浏览器,就可以通过与数据库的交互完成数据的访问与实现,相较于C/S架构的网络应用,B/S有着灵活、开发简单、维护成本低且共享性强等优势,在系统性能方面,采用异地浏览器也能够很方便的获取到用户的数据,任何时间、任何地点、任何系统只要有浏览器就可以使用B/S架构的终端。

  对B/S而言,开发维护等工作都集中在服务器端,所以当需要实现系统的维护与升级时,只需要更新服务器的软件集就可以了,并不影响用户在客户端对数据的访问,所以针对用户数据的安全性,对服务器得性能和负载有较高的要求。

  3 Struts模式简介

  3.1 MVC框架简介

  MVC(Model View Controller,模型-视图-控制)本来是存在于Desktop程序中的一种设计模式,M指数据模型,V指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分开,从而能使同一个应用程序有不同的表现形式,

  比如一批统计数据你可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。它使应用程序强制性的将数据的输入,处理和输出分开。它们各自独立的处理对数据的响应与服务

  3.1.1 视图

  视图(View)是用户所看到的并可以与之交互的界面。负责格式化数据,就是显示给用户的数据。只包含表示逻辑,没有业务逻辑,当视图格式化处理完模型返回输出数据时,它就会把执行权交给控制器,接下来,控制器会把执行权限交给发出该调用的终端用户。

  3.1.2 模型

  用户请求的业务逻辑封装在模型中,该模型会执行业务逻辑,并且把执行结果返回给控制器,模型会使用标准的接口来返回向终端用户显示的数据。表示企业数据和业务规则。

  3.1.3 控制

  当用户向基于MVC的的应用程序发出一个请求时,这个请求会被控制器截获,控制器充当着交通警察的角色,会检查用户请求,然后调用必要的业务逻辑以执行所请求的动作。控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。

  3.2 MVC模式的Struts实现

  基于Struts的应用程序的处理流程如下:

  假设终端用户浏览某Web页面,这个页面是一个静态的HTML页面或JavaServer Page,包含用户希望应用程序执行的各种动作。这些动作也许包含单击某超链接或者图片以切换到另一个页面,或者提交一个应用程序处理的在线表单,需要Struts框架处理的所有动作都有唯一的URL映射或者文件扩展名。简言之,基于Struts开发框架的一个典型的Web界面将包含如下内容:

  一个动作,表示当处理用户请求时即将被执行的代码。Web页面中每个动作将准确的被映射到struts-config.xml文件中定义的一个<action>元素。终端用户调用的一个动作将被嵌套于HTML或JSP页面中,或者被嵌套于<form>标签作为action的一个属性。

  一个<action>元素,定义哪个ActionForm类将被用于验证终端用户提交的表单数据。它也会定义使用哪个Action类来处理终端用户的请求。

  一个Action类,可以使用一个或者多个转发。转发的目的是告诉ActionServlet,哪个JSP页面应该用于渲染终端用户请求的答复。转发被定义为<action>元素中<forward>元素。可以使用一个<ActionMapping>元素来定义多个转发。

  3.3 为什么使用Struts

  当开发团队没有适当的把应用程序分成不同不同独立的层次(也就是表示层、业务层和数据逻辑层)时,应用程序就被混杂在一起,类似于大泥潭,根本无法区分表示层、业务层和数据逻辑层的处理代码。尽管诸如J2EE的开发平台能够帮助开发者把应用逻辑分解到不同的层次,但是应用程序的设计方法最终决定应用层次的定义是否合适,技术永远无法替代良好的设计和规范化的编码意识。

  在MVC框架中,终端用户发出的所有请求都会通过控制选择路由,该控制器类决定用于执行该请求的业务对象。用户请求的数据以及对应的的业务对象被认为是该框架的模型部件,在业务对象处理用户请求之后,控制器会把结果转发给框架的视图部件,然后将用户的请求结果展示在或者传递给终端用户。应用程序开发者可以完全更新这部分代码以显示不同的表示层接口,或者在不必修改应用程序源代码的情况下应用不同的业务逻辑。所以Struts在当下的Web开发中应用中相当广泛。

  4 系统分析

  4.1 功能分析

  此系统有着良好的的可维护性、可靠性以及低成本性。并且非常易于用户进行理解和操作。可维护性包括了可测试性、可读性等含义。可靠性包括数据的准确性和软件的健壮性。在开发过程中,可以在各种矛盾的目标之间进行权衡,并在一定的限制的条件下(经费、时间、可用的软、硬件资源等),使上述各方面最大限度的得到满足。

  本系统的主要功能模块如下:

  1. 用户的功能设计

  用户运用该科研成果管理系统,对个人科研论文、学术著作、个人信息的添加、修改、删除等功能:

  (1) 用户登录模块

  由于本系统是面向全校各系老师的,因此只有输入正确的用户名和密码才能登录系统,登录系统后进入用户权限的操作界面。

  (2) 用户注册模块

  用户在此页面完成自己相关信息的填写并完成注册,从而成为该系统用户中的一员并获得相应的访问和使用权限。

  (3) 科研申报模块

  主要是对科研项目进行申报,科研管理人员审核是否通过。

  (4) 论文管理模块

  主要完成论文的添加、修改、删除,用户在此页面可添加、修改、删除自己个人的科研论文的相关信息,而无权限在他人科研论文添加、修改、删除信息。

  (5) 学术著作管理模块

  主要实现对学术著作的添加、删除、修改、查询,科研人员在此页面可添加、删除、修改自己个人学术著作方面的相关信息,而没有权限在其他的科研人员的学术著作中进行任何操作。

  (6) 个人信息的修改模块。

  主要完成对个人基本信息的修改包括个人密码的修改。

  2. 主管理员的功能设计

  本系统的管理员登录该科研成果管理系统后,具有对所有人员科研成果信息的添加、修改、删除、查询,对用户的添加、删除及修改,科研成果信息的导出等功能。

  (1)所有人员论文、获奖信息、学术著作、个人信息信息的添加、修改和删除。

  (2) 对用户的添加、修改、删除、查询。

  4.2 可行性分析

  4.2.1 操作可行性

  本系统采用B/S架构模式历时2个月完成的一套轻量级的管理系统,不管是在功能上还是性能上都比较适合高校使用,前端主要由JSP页面完成,后端的服务代码主要使用MVC框架使用java代码编写完成。界面简单,易于使用且维护成本低,所以在技术上是可行的。

  4.2.2 技术可行性

  该管理系统主要基于局域网,利用现有的技术已经基本上可以达到预定的目标。系统采用的是JSP语言,易于学习和掌握。目前B/S开发模式也相当的成熟,所以在技术上基于如此B/S模式,加上其他技术应用,比如Struts框架。在系统的开发期间还有着指导老师在技术上的指导,故在技术上是完全可行的。

  4.2.3 经济可行性

  本系统的经济投入只需要一次性的投入,在开发系统的期间需要开发人员1人,计算机1台。

  开发时间为2个月左右,在系统的运行阶段需要一台计算机作为服务器,然后还需要其他一些小型网络设备等。在系统的日常使用中所应该用到的维护费用包含系统维护人员的工作费用和设备的硬件和软件升级的维护费用。因此在经济上是绝对可行的。

  4.3 系统的实现目标

  在系统的开发前期进行了充分的调研与需求功能分析,其目的是为了明确系统的开发目标,因为它是建立在对系统进行可行性研究的基础上。系统的规模和系统的大小是依照高校科研处的规模来定位的。系统的最终目标提高科研管理的工作效率,降低工作量,使科研管理朝着规范化、效率化的发展。

  4.4 系统的组成结构

  在系统功能分析的基础上,做系统功能模块图如下图:

  4.5 主控流程图

  进入系统开始主要的流程演示如下4.5.1图所示:

  5 详细设计

  5.1系统模块设计

  系统的概要设计中最重要的就是系统的模块化。模块化是指解决一个复杂问题时自项向下逐层把软件系统划分成若干个模块的过程。每个模块完成一个特定的功能,所有的模块按某种方法组织起来,成为一个整体,完成整个系统所要求的功能。

  将系统划分为多个模块是为了降低软件系统的复杂性,提高可读性、可维护性,但模块的划分不能是任意的,应尽量保持其独立性。也就是说,每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单,即尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础[7]。

  在系统的概要设计中采用结构化设计以需求分析阶段产生的数据流图为基础,按一定的步骤映射成软件结构。首先将整个系统化分为几个小问题,小模块。然后,进一步细分模块,添加细节。

  5.2 数据库设计

  5.2.1 数据库设计原则

  数据库是一个系统的核心和基础。没有数据库对数据的存储和调用,系统的功能将毫无意义。它能够将大量的数据按照一定的模型组织起来,可以进行检索数据、存储数据的功能。使系统能方便、准确、及时地从数据库中获得所需的信息。一个信息系统的各个部份能否紧密地结合在一起以及如何结合,关键在数据库[8]。因此只有对数据库进行合理的逻辑设计和有效的物理设计才能开发出完善而高效的信息系统。数据库设计是信息系统开发和建设的重要组成部分。

  5.2.2 数据流程图

  5.2.3 数据库E-R图设计

  1. 科研人员信息实体

  科研人员信息实体包含的属性有:科研人员姓名、邮箱、年龄、登记时间、备注、电话号码、联系住址、性别。其实体图如图5.2.3.1所示。

  2. 论文信息实体

  论文信息实体包含的属性有:论文名称、ID、发表时间、发表刊物、论文简介、上传时间。其实体图如图5.2.3.2所示。

  3. 著作信息实体

  著作信息实体包含的属性有:著作名称、ID、发表时间、发表刊物、著作简介、上传时间。其实体图如图5.2.3.3所示:

  5.2.3.2 学术著作信息管理E-R图

  4. 获奖信息实体

  获奖信息实体包含的属性有:ID、获奖项目名称、获奖证书、获奖时间、颁发单位、简介、上传时间。其实体图如图5.2.3.4所示:

  5.2.3.4 获奖信息管理E-R图

  5. 系统总体E-R图

  E-R模型的组成元素有:实体、属性、联系。通过实体属性图以及我们对各个功能之间联系的分析,我们得出了以下如图5.2.3.5的系统总体 E-R 图

  5.2.3.5 系统总体E-R图

  5.2.4 数据库表设计

  关系数据库中的数据是保存在表中的。通过设定表中的主键来确定表中数据的唯一性。之后可以建立索引以及保证引用的完整性。根据系统的需求分析,现展现几张主要的表如下:

  用户信息表(表名admin)主要用于存储用户信息,该表的结构如表5.2.4.1所示。

  5.2.4.1 用户信息表

  管理员信息表(表名adminlog)主要用于管理员详细信息,该表的结构如表5.2.4.2所示。

  5.2.4.2 管理员信息表

  系统公告信息表(表名affiche)主要存储系统公告详细信息,该表的结构如表5.2.4.3所示。

  5.2.4.3 系统公告信息表

  用户详细信息表(表名pmember)主要存储用户的详细信息,该表的结构如表5.2.4.4所示。

  5.2.4.4 用户详细信息表

  论文管理信息表(表名lw)主要用于论文管理详细信息,该表的结构如表5.2.4.5所示。

  5.2.4.5 论文管理信息表

  6 系统实现

  6.1 登陆界面

  一个完整的系统,在实现功能的基础上还需要界面美观易用可操作性强,可以让用户清晰直观的了解系统的操作和使用系统。

  管理员登录界面是管理员进入系统所使用的界面,这里设置了管理员账户和管理员密码登录文本框,如果不设置非法的用户随意的使用管理员的身份进入了系统,破坏了系统所保存的数据或者移用数据会对高校造成巨大的损失。所以防止非法的用户进入系统,对使用者加一定的限制,增加系统的保密性和安全性是非常必要的并且这有着利于维护系统和管理系统。并且只有合法的管理人员输入合法的账户和正确的密码才能进入系统管理用户的信息,如果账户和密码是错误的将提示输入错误,弹出警告框询问是否重新输入。

  6.2 增加管理员模块

  管理模块是需要对应的科研管理人员登陆操作的一个模块,所以在安全方面包括了管理人员对密码的修改,可以定期的修改密码,确保登陆的安全性。进而增加系统的保密性和安全性,能够方便于控制系统和管理系统。

  6.3 科研信息管理模块

  科研人员需要填写想要申报的科研具体信息,填写完成后进行申报,在管理员界面可以对申报的科研进行审批,如6.3.1图所示

  6.4 著作信息管理

  在这个模块中主要是对科研人员所编写著作的管理,实现对著作的增加、修改、查询、删除的功能,在后台管理员同样可以查看科研人员的这些信息,对科研人员申请奖项、作为依据。如6.4.1图所示:

  6.5论文信息管理

  这个模块主要是实现对科研人员论文信息的管理功能。如图6.5.1所示:

  6.6 获奖信息管理模块

  作为科研管理信息系统中的信息管理模块,获奖信息管理这个模块主要实现对获奖信息的增加、修改、删除与查询功能。科研人员可以方便的查看自己所有的获奖信息,同时管理员也可以看到相应的科研人员所获得的各种奖项,有利于科研管理人员对科研人员成就的掌握,如图6.6.1所示:

  6.7 系统公告管理模块

  这个模块是管理员添加公告信息的模块,可以在这里查询是那个管理员发布了新的公告信息。公告信息有两种模式分为显示和不显示在首页,显示在首页所有人员都可以看见,不显示在首页只能是管理员之间所能看见的公告信息。

  6.8 注册用户管理

  因为此系统是用户自行申请用户的,所有后台必须有对注册用户进行管理的模块,此模块可以展示注册用户的登陆次数,上次登陆的时间和上次登陆的ip地址,如果用户是非法用户,可以对注册用户进行冻结。

  7 系统调试和测试

  7.1 程序调试

  在设计系统的过程中,存在一些错误是必然的。对于语句的语法错误,在程序运行时自动提示,并请求立即纠正,因此,这类错误比较容易发现和纠正。但另一类错误是在程序执行时由于不正确的操作或对某些数据的计算公式的逻辑错误导致的错误结果。这类错误隐蔽性强,有时会出现,有时又不出现,因此,对这一类动态发生的错误的排查是耗时费力的。

  7.2 程序的测试

  7.2.1 测试的重要性及目的

  1、测试的重要性

  对于软件来讲,不论采用什么技术和什么方法,软件中仍然会有错。采用新的语言、先进的开发方式、完善的开发过程,可以减少错误的引入,但是不可能完全杜绝软件中的错误,这些引入的错误需要测试来找出,软件中的错误密度也需要测试来进行估计。测试是所有工程学科的基本组成单元,是软件开发的重要部分。自有程序设计的那天起测试就一直伴随着。统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40%以上。而在软件开发的总成本中,用在测试上的开销要占30%到50%。如果把维护阶段也考虑在内,讨论整个软件生存期时,测试的成本比例也许会有所降低,但实际上维护工作相当于二次开发,乃至多次开发,其中必定还包含有许多测试工作。

  在实践中,软件测试的困难常常使人望而却步或敷衍了事,这是由于对测试仍然存在一些不正确的看法和错误的态度,这包括:

  认为测试工作不如设计和编码那样容易取得进展难以给测试人员某种成就感;

  以发现软件错误为目标的测试是非建设性的,甚至是破坏性的,测试中发现错位是对责任者工作的一种否定;

  测试工作枯燥无味,不能引起人们的兴趣;

  测试工作是艰苦而细致的工作;

  对自己编写的程序盲目自信,在发现错误后,顾虑别人对自己的开发能力的看法;

  这些观点对软件测试工作是极为不利的,必须澄清认识、端正态度,才可能提高软件产品的质量。

  测试的目的

  如果测试的目的是为了尽可能多地找出错误,那么测试就应该直接针对软件比较复杂的部分或是以前出错比较多的位置。

  软件测试是为了发现错误而执行程序的过程;

  测试是为了证明程序有错,而不是证明程序无错误;

  一个好的测试用例是在于它能发现至今未发现的错误;

  一个成功的测试是发现了至今未发现的错误的测试;

  这种观点可以提醒人们测试要以查找错误为中心,而不是为了演示软件的正确功能。但是仅凭字面意思理解这一观点可能会产生误导,认为发现错误是软件测试的唯一目,查找不出错误的测试就是没有价值的,事实并非如此。

  首先,测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。同时,这种分析也能帮助我们设计出有针对性地检测方法,改善测试的有效性。其次,没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。

  7.2.2 测试的步骤

  与开发过程类似,测试过程也必须分步骤进行,每个步骤在逻辑上是前一个步骤的继续。大型软件系统通常由若干个子系统组成,每个子系统又由若干个模块组成。因此,大型软件系统的测试基本上由下述几个步骤组成:

  模块测试 在这个测试步骤中所发现的往往是编码和详细设计的错误;

  系统测试 在这个测试步骤中发现的往往是软件设计中的错误,也可能发现需求说明中的错误;

  验收测试 在这个测试步骤中发现的往往是系统需求说明书中的错误;

  7.2.3 测试的主要内容

  为了保证测试的质量,将测试过程分成几个阶段,即:代码审查、单元测试、集成测试、确认测试和系统测试。

  单元测试

  单元测试集中在检查软件设计的最小单位—模块上,通过测试发现实现该模块的实际功能与定义该模块的功能说明不符合的情况,以及编码的错误。

  集成测试

  集成测试是将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的问题。如一个模块与另一个模块可能有由于疏忽的问题而造成有害影响;把子功能组合起来可能不产生预期的主功能;个别看起来是可以接受的误差可能积累到不能接受的程度;全程数据结构可能有错误等。

  确认测试

  确认测试的目的是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是确认测试的任务,即软件的功能和性能如同用户所合理期待的那样。

  系统测试

  软件开发完成以后,最终还要与系统中其他部分配套运行,进行系统测试。包括恢复测试、安全测试、强度测试和性能测试等。

  单独对系统的测试主要从以下几方面入手:

  功能测试:测试是否满足开发要求,是否提供设计所描述的功能,是否用户的需求都得到满足。功能测试是系统测试最常用和必须的测试,通常还会以正式的软件说明书为测试标准。

  强度测试及性能测试:测试系统能力最高实际限度,即软件在一些超负荷情况下功能实现的情况。

  安全测试:验证安装在系统内的保护机构确实能够对系统进行保护,使之不受各种非常的干扰。针对本系统主要是对权限系统的测试和对无效数据、错数据、和非法数据干扰的能力的测试。

  总结与展望

  当前我国经济形势不容乐观,国有企业的改革有待深入,如何坚持一个中心?……规范市场秩序,避免无序竞争,尽可能的实现由无序竞争向有序竞争的过渡,最终实现经济的迅猛发展。

栏目分类