首页 百科知识 信息系统实施与评价

信息系统实施与评价

时间:2022-07-04 百科知识 版权反馈
【摘要】:导入语系统实施是一个非常重要的阶段。进入系统实施阶段,也就真正进入了系统的应用软件开发阶段。系统实施的主要内容分为两个部分:一是程序设计,二是系统的测试和转换。

导入语

系统实施是一个非常重要的阶段。此阶段工作是否顺利,直接关系到整个系统的前期投入是否成功。进入系统实施阶段,也就真正进入了系统的应用软件开发阶段。这个阶段的工作以程序开发人员和软件测试人员的工作为主。系统实施的主要内容分为两个部分:一是程序设计,二是系统的测试和转换。对程序设计方法的开展研究并加以应用是解决软件危机的有效手段之一,结构化程序设计和面向对象程序设计是目前常用的两种基本程序设计方法。当然,随着提高代码的重用性以及程序开发的效率呼声日益升高,组件技术和应用框架技术成为了程序设计方法发展的新方向,软件项目即使能按预定日期完成,结果也不一定能尽如人意,软件开发和使用的历史已经留给了我们很多由于软件缺陷而导致的巨大财力、物力损失的经验教训,因此在软件投入使用之前必须采取强有力的测试手段来检测未发现的隐藏的软件缺陷。系统实施的最后一步就是新系统的试运行和新老系统的转换,它是系统测试工作的延续,这个环节很容易被人忽视,但对系统最终使用的安全、可靠、准确性来说,它又是十分重要的工作。

学习本章,应掌握以下主要内容:

●了解“软件危机”的概念、产生的原因以及目前用来解决“软件危机”的方法;

●了解结构化程序设计的控制结构并重点掌握模块化程序设计方法;

●理解面向对象程序的设计思想,掌握面向对象程序设计的基本特征;

●掌握四种软件测试基本类型的概念、测试内容、测试方法及其自动化测试工具;

●掌握测试用例设计的两种重要方法——黑盒测试和白盒测试的具体内容;

●了解并掌握系统切换的四种方式的具体内容和应用特点;

●掌握系统评价指标的分类及各自包含的具体内容。

11.1 程序设计方法

11.1.1 软件危机

软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。“软件危机”的概念是在1968年原西德的加密施召开的国际软件工程会议上首次提出来的,随后被人们普遍认识,并在计算机界广为流传。软件危机的具体表现如下:

(一)软件成本日益增长

20世纪50年代,软件成本在整个计算机系统成本中所占的比例为10%-20%。但随着软件产业的发展,软件成本日益增长。相反,计算机硬件随着技术的进步、生产规模的扩大,价格却不断下降。这样一来,软件成本在计算机系统中所占的比例越来越大。到20世纪60年代中期,软件成本在计算机系统中所占的比例已经增长到50%左右。而且,该数字还在不断地递增。

(二)开发进度难以控制

在软件开发过程中,用户需求变化等各种意想不到的情况层出不穷,令软件开发过程很难保证按预定的计划实现,给项目计划和论证工作带来了很大的困难。

(三)软件测试工作体系极不完善

在早期的软件开发过程中,由于缺乏工程化思想的指导以及受“重开发,轻维护”思想的影响,软件测试工作体系极不完善。

(四)软件维护十分困难

随着软件产业的高速发展,软件规模愈来愈大,造成软件的复杂性也急剧地增加,加上软件开发监理和审计体系的不完善,使得软件维护工作进展困难。

为了摆脱“软件危机”的困扰,在软件开发过程中,人们不断采用更为先进的组织形式、程序设计方法和开发工具提高软件开发效率、开发质量和系统功能,以求解决摆在他们面前更新、更大和更复杂的问题。

11.1.2 程序设计方法

(一)程序设计方法的发展

程序设计方法是随着计算机软硬件技术的不断发展而发展起来的。

20世纪40年代末到50年代中期,是计算机硬件技术逐步发展的时期,而计算机软件则主要是采用机器语言或汇编语言编写程序,因此,程序设计方法的重点是如何尽可能地使用一些编程技巧,以节省内存空间,提高运算速度。

20世纪60年代,随着计算机系统的应用领域的扩展,出现了一些规模较大的应用软件,这些软件均采用一些高级语言编写,如C语言。这个时期的程序员要考虑的主要问题是如何编写出结构清晰、容易阅读、容易修改、容易验证的程序。要实现这一点,原有的程序设计方法就行不通了,需要采用新的策略和方法进行程序设计,于是软件界提出了工程化的程序设计方法,即所谓的“软件工程”概念。软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法去进行软件的开发和维护的学科。主要包括两方面内容:软件开发技术和软件项目管理。

20世纪60年代末到70年代初,随着计算机硬件技术和计算机应用范围的进一步深入发展,一些大型的软件系统,如操作系统、数据库管理系统等相继出现。而一个大的系统的开发周期较长,工作量需要几百人年到几千人年,由于传统的程序设计方法的局限性,开发出来的软件系统会存在许多错误,给软件的使用和维护带来很大的困难。一方面客观上需要研制大量的软件,另一方面按照原有的方法研制软件周期长、可靠性差、维护困难。为了从根本上解决这些问题,需要对程序设计方法、程序的可靠性等问题进行系统的研究,于是展开了对程序设计方法的讨论和研究。目前,在软件界应用比较广泛的程序设计方法有很多种,主要包括结构化程序设计方法、面向对象的程序设计方法、组件开发技术等,其中每一种方法又是一个庞大的体系,包括了更为丰富的内容。

(二)结构化程序设计

结构化程序设计是一种组织和编制程序的方法,按照这种方法设计出来的程序将大规模的复杂的流程图转化成一种标准的形式,使得他们能够用几种标准的控制结构(顺序、分支和循环)通过循环和嵌套来表示。按照结构化程序设计的要求设计出的程序设计语言称为结构化程序设计语言。利用结构化程序设计语言,或者说按照结构化程序设计的思想编制出来的程序称为结构化程序。结构化程序设计方法体系主要应掌握下面三个方面的内容:

1.程序的控制结构

1966年,IBM的G.Jacopini和C.Bohm从理论上证明:任何程序逻辑结构都可以用顺序、选择和循环三种基本程序结构表示。

(1)顺序结构

顺序结构是一种最基本、最常用的程序结构,它按照程序中语句的先后顺序逐条执行。赋值语句和输入输出语句就是常用的顺序执行语句。

(2)选择结构

一般情况下,应用程序在进行数据处理时需要根据不同的条件采用不同的操作,选择结构是根据给定条件成立与否,转向执行不同的程序路径的结构。选择结构分为双分支选择结构和多分支选择结构。

①双分支选择结构

若条件表达式的值为真,则执行命令C1,否则执行命令C2。

②多分支选择结构

在解决一些复杂的实际问题时,如果需要判断的条件不止一个,而是要进行多个条件的判断时,利用双分支结构就无法解决。这时候可以使用多分支选择结构,多分支选择结构可以使程序结构清晰、格式整齐、容易编写,防止程序的无规则转移。

(3)循环结构

循环结构是对程序中的某段代码重复执行若干次,直到循环的条件不满足时为止。循环结构分为当型循环结构和直到型循环结构。

①当型循环

当条件成立时,就执行循环体C,否则退出循环,执行该循环结构后面的程序。在当型循环结构中,循环体C有可能一次也不执行。

②直到型循环

直到型循环与当型循环的不同之处是,循环体至少要执行一次。与当型循环一样,在循环体C中,应该要有改变条件的语句,否则将会造成死循环。

2.模块化程序设计

在结构化程序设计中,通常将一个比较复杂的应用程序通过模块化设计,分解为若干大模块,大模块再细分为小模块,每个小模块完成一个基本功能;然后在主控模块的控制下,调用各个功能模块实现系统的各种功能操作。

模块化程序设计的主要优点:

●将一个复杂的程序按大小规模分解为一个个独立的模块,使得程序容易实现、容易阅读、容易修改和调试,也容易扩充。

●将一些重复出现的或能单独使用的程序片断设计为一个个独立的模块,可以在整个应用程序得到复用,使得程序设计的效率得到很大的提高。

模块化程序设计的主要步骤:

●按功能分解模块,使得各模块的功能尽量单一,各模块之间的联系尽量少;同时,使各模块具有很好的可读性和可理解性。

●按层次组织模块,在模块的层次关系中,处于上层的模块一般只描述“做什么”,而只有最底层的模块才会精确地描述“怎么做”。

3.自顶向下、逐步求精的开发策略

自顶向下、逐步求精的开发策略的指导思想是对于任何一个复杂的应用程序,首先将程序的整体结构分解和细化成由若干模块组成的层次结构;然后逐步地、一层一层地将每一个模块的功能分解细化为一系列的处理步骤,直到某种程序设计语言的语句或某种机器指令。自顶向下、逐步求精的开发策略是结构化程序设计思想的另一种体现,它符合人们解决复杂问题的普遍规律,可以显著提高程序设计的效率。

(三)面向对象的程序设计方法

面向对象的程序设计方法模拟人类习惯的解题方法,把程序需要处理的问题分解成许多对象,不同对象之间通过发送消息向对方提出服务要求,接受消息的对象主动完成指定的功能。程序中的所有对象分工协作,共同完成整个程序的功能。与面向过程的思维方式不同的是面向对象(Object-Oriented,OO)的思维方式是模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题的问题空间(问题域)与实现解法的求解空间(求解域)在结构上尽可能一致。

关于面向对象的设计方法及一些相关基本概念,可参见前面第八章的相关内容。

从20世纪80年代到今天,面向对象的编程语言获得了长足的发展。目前市面上可供选择的面向对象语言有很多,主要分为两大类:一类是纯面向对象语言,如早期的Smalltalk语言和现在非常流行的Java语言等,纯面向对象语言着重支持面向对象的方法研究和快速原型的实现;另一类是混合型面向对象语言,如C++语言等,混合型面向对象语言一般既支持面向过程的程序设计方法,也支持面向对象的程序设计方法。

C++语言是从C语言上改良而来的。C++语言全面支持数据抽象、数据封装渗数化抽象、继承性和多态性,同时又充分保留了C语言的简洁性和高效性。是目前应用得最广泛的面向对象语言——Java语言是1996年Sun公司发布的,该语言继承了C++语言的优点,克服了C++语言“过度设计(over engineering)”的缺点,从而使可移植性和安全性有了很大提高。Java是目前WWW应用领域中最好的面向对象语言,因而在Internet环境得到了广泛的应用。

(四)组件技术和应用框架

1.组件技术

随着互联网和低端pC机的进一步发展,分布式网络计算已变得十分流行,新的分布式网络计算要求软件的开发和运作能够实现跨空间、跨时间、跨设备和跨用户的共享,从而导致软件开发在规模和复杂度上日益增长,迫使软件开发要向异构协同工作,各层次上集成,可反复重用的工业化道路上前进。面向对象技术虽然已达到了类级重用,它以类为封装的单位,但是这样的重用粒度还太小,不足以解决异构互操作和效率更高的重用。组件技术是目前最为流行的软件复用技术,可以为软件系统提供强大而灵活的功能及架构支持,以增强系统的处理能力和可扩展性,并提高系统的安全性和稳定性。

组件将抽象的程度提到一个更高的层次,它是具有一定的功能,能够独立工作或能同其他组件装配起来协调工作的程序体。具有以下特点:

●组件是预先构建的,不是在编译之前组装的,而是在编译之后。

●组件只能通过其接口进行访问,其他组件只有通过这个明确的定义的接口,才能与该组件连接。

●组件是可以分离的,它能够从目前的应用环境中分离出来,并在另外一个应用环境中使用。

目前比较成熟的组件模型有微软的ActiveX/COMDCOMCOM+、OMG的CORBA和SUN公司的EJB。

2.应用框架

与面向对象技术和组件技术不同的是,应用框架是系统可重用层次上的概念,是整个或部分系统的可重用设计。一个框架就是一个可复用的设计组件,它规定了应用的体系结构,阐明了整个设计、协作组件之间的依赖关系、责任分配和控制流程,表现为一组抽象组件及组件实例间交互的方法,是可被应用开发者定制的应用骨架。应用框架的主要功能是把握许多相似应用程序的结构,为运行一批对象提供一个有组织的环境;组件不再相互调用方法,而是通过框架调用方法;不仅组件可以与别的应用程序分享,而且框架本身也可以被其他应用程序分享。目前,基于应用框架的开发已成为软件生产中最有效的重用方式之一。市场权威研究机构。著名的信息技术分析公司Gartner Group的一项调查表明:“到2003年,至少70%的新应用将主要建立在如软件组件和应用框架这类‘构造块’之上;应用开发的未来就在于提供一开放体系结构,以方便组件的选择、组装和集成。”

早期一些框架系统多采用传统的面向过程语言实现,现在面向对象语言为软件和设计的重用提供了更强有力的支持。Java语言由于具有平台独立性以及轻量级的链接过程、自动垃圾回收、简单语言结构、标准软件包、面向对象等特性,因此可以说Java是进行框架构筑的合适语言。现在市场上已出现了许多采用Java语言编写的框架系统:如LEC India Software Centre pvt.Ltd.公司研制的面向EJB 组件的应用框架系统,能在EJB组件的开发中解决稳定性以及其他一些企业级的特性等问题;pacific技术服务公司开发的一套多层框架,能用来开发Web应用服务器;Jcorporate公司开发的Expresso Framework是一使用java来建造分布式、重用、基于组件的安全的Web应用程序的应用框架。

11.2 软件测试

今天,在软件比较发达的国家,软件测试已经成为一个独立的产业,一些著名的软件公司纷纷建立独立的测试队伍研究测试技术并开展测试工作。中国的软件产业起步较晚,而且重开发轻测试的管理思想在软件企业中盛行。因此在软件产品开发过程工业化的进程中,软件的质量和可靠性常常被看作是薄弱环节。但近十年来,随着我国软件开发技术和工具的提高,软件工程和软件过程实践的推广,软件测试日益得到重视并走向专业化。

11.2.1 软件测试概述

软件测试是软件开发过程的重要组成部分。软件测试就是通过对源代码的运行或者别的方式的检测来确定源代码之中是否含有已知或者未知的错误,从而确认一个程序的品质或性能是否符合开发之前所提出的一些要求。

进行软件测试的目的主要有三点:首先是评价软件产品的质量;其二是提供给开发人员或项目经理反馈信息,为软件产品的风险评估做准备;第三是评定软件的开发过程是否存在缺陷,从而保证整个软件开发过程能够高质量、高可靠性地运作。

软件产品的质量主要由三个方面的指标来衡量:(1)是否在正确的时间以正确的方法完成一个正确任务,程序代码精简的编写格式和精巧的编程技巧并不代表软件的高质量;(2)是否符合一些应用标准的要求,如用户不同的操作习惯和要求,项目工程中的可维护性、可测试性等;(3)是否符合客户的需要,生产软件的最终目的是为了满足客户需求,以是否满足客户需求作为评判软件质量的标准是软件测试过程中必须遵循的重要原则。

(一)软件缺陷

软件缺陷(Software Bug)的产生涉及软件的设计开发以及维护的整个生命周期的各个阶段,并不是仅限于软件产品提交之后。软件缺陷的判定和确认可从以下几个因素着手进行综合考虑。

(1)软件未达到客户需求的功能和性能;

(2)软件超出客户需求的范围;

(3)软件出现客户需求不能容忍的错误;

(4)软件的使用未能符合客户的习惯和工作环境;

(5)软件设计不符合规范,未能在特定的条件(资金、范围等)达到最佳等。

(二)软件测试过程的基本特征

在整个软件的设计和开发过程中,想获取一份完整准确的客户需求是一件不容易的事情,而且客户的需求时刻在发生变化,这会使得软件测试的对象软件产品本身的设计和软件开发过程具有不确定性,从而使得软件测试过程变得复杂,追求美的测试变得不太可能。因此,作为一个优异的测试人员明确软件测试现实与理想的差距,在软件测试中学会取舍和让步,了解软件测试过程所固有的一些重要的基本特征能帮助软件测试人员在进行软件测试时能够更好地把握测试的尺度和深度。

1.“测不准”原理

物理学中有一条著名的“测不准”原理,意思是指对某些物理量的测试有一定的精度限制,完全准确的测量结果是不可能获得的,软件测试同样遵循这一规律,由于软件本身结构的复杂性和应用环境的多变性,没有任何人和任何方法能够历经所有的情况,测试的盲点总是存在的,因此软件测试只能够保证尽可能多地发现软件缺陷,却无法保证能够发现所有的软件缺陷。

2.缺陷免疫性

软件缺陷与计算机病毒一样具有一定的免疫性,测试人员对其采用的测试越多,其免疫能力就越强,寻找更多软件缺陷就更加困难。因此,必须更换不同的测试方式和测试数据对软件进行测试。

3.全程测试概念

软件测试不仅仅存在于整个系统开发完成之后。如果单纯地将程序设计阶段后的阶段称为软件测试的话,需求阶段和设计阶段的缺陷产生的放大效应会加大。这非常不利于保证软件质量。需求缺陷、设计缺陷也是软件缺陷,软件测试应该跨越整个软件开发流程,涵盖整个软件生命周期,这样才能确保周期的每个阶段禁得起考验。

4.“80-20”原则

生产运作管理理论体系中的“80-20”原则不仅适用于库存管理和客户关系管理理论,同样适用于软件测试过程。软件测试的“80-20”原则具有三层含义:第一层含义是指80% 的软件缺陷常常生存在软件 20% 的空间里。这一指导原则对于软件测试人员提高测试效率及缺陷发现率有着重大的意义。聪明的测试人员会根据这个原则很快找出较多的缺陷,而愚蠢的测试人员却仍在漫无目的地到处搜寻。

“80-20”原则的第二层含义是指在系统分析、系统设计、系统实现阶段的审核审计工作中能够发现和避免 80% 的软件缺陷,此后的系统测试能够帮助我们找出剩余缺陷中的 15% ,而最后的 5% 的软件缺陷可能只有在系统交付后用户经过大范围、长时间使用后才会暴露出来。

“80-20”原则的第三层含义是指80% 的软件缺陷可以借助人工测试而发现,20% 的软件缺陷可以借助自动化测试能够得以发现。由于这两者间具有交叉的部分,因此尚有 5% 左右的软件缺陷需要通过其他方式进行发现和修正。

(三)软件测试的基本流程

在软件测试方面,很多企业、单位和组织投入了大量的人力、物力和财力,但是却没有收到预期的收益。造成这种现象的原因是多方面的,如:缺乏足够的测试计划、缺乏测试的优先次序、没有利用测试自动化工具、测试自动化运用不够或者运用得不恰当等等。这些原因的出现大部分是由于测试人员在测试过程中缺乏统一的行动纲领和职责来指导他们的具体工作,因此需要建立一个高效的软件测试流程。测试流程的建立是为了确保软件测试的全部活动按计划、按标准进行。

1.建立测试目标

测试目标是告诉与测试活动相关的人员在什么样的时间、什么样的地点,由谁来做,做什么样的事情,为什么做,如何做,怎么样才算完成,缺陷如何分析和预防等。测试的目标要充分结合现有项目文档的详细描述、用户要求和个人经验,经过和用户的讨论,才能够最终确定下来;同时,测试目标中需要明确定义软件产品应该达到的性能指标,因此软件性能指标的确定是这一阶段最重要的工作内容。性能指标的获取途径主要有三条,首先从需求和设计阶段的系统文档中获取是性能指标获取的主要途径,其次是直接从用户处获取指标,还有一个指标来源就是测试人员的个人经验了。软件测试是一项实践性很强的工作,个人经验在测试中发挥的作用也是不能忽视的。

2.编写测试计划

测试目标建立后,就可以依据更具体的要求来制定测试计划了。测试计划主要包括测试策略的制定、测试完成条件和完成标准的定义、测试活动的安排、测试方法和测试工具的选择以及测试资源的配置(人员与时间)等方面的内容。测试计划的内容需要和客户经过良好的沟通才能确定下来,并最终要得到客户的签字认可。

3.设计测试用例

确定了测试计划后,就可以针对测试计划中确定的需要测试的指标设计测试用例了。同样,设计的测试用例也需要向客户解释清楚并得到客户的认可。因此需要通过会议或是其他方式与客户尽可能地沟通。设计测试用例的过程中,同时需要关注的是测试数据的产生和维护。如何选择具体的测试数据需要根据测试的具体需求而定,没有统一的法则。但在设计测试用例时,一定要明确每个测试用例的数据需求并将这种需求综合起来,形成对测试环境的测试数据的维护策略,以便在测试用例执行时能顺利进行。测试用例设计的具体内容将在下面章节中详细介绍。

4.执行测试

测试计划、测试用例完成之后,就可以开始对测试进行实施了。测试实施在整个测试过程中并不是消耗资源最多的,因此有了详细的测试用例之后,测试实施就变成了一件简单的工作。软件测试的类型有很多,每种类型由不同的人分别来进行,系统开发人员进行单元测试,测试人员主要完成集成测试和系统测试,而市场、需求人员、客户则执行验收测试。

5.测试报告和缺陷分析

执行测试取得了数据之后,下一步就是对测试结果进行分析并撰写测试报告和缺陷分析报告。测试报告详细列出测试前的准备工作,包括测试方案、测试数据准备以及测试中记录的数据、测试工具和脚本部署等,测试执行的过程以及测试结论,包括测试用例执行情况统计、测试是否通过、测试中发现问题的处理方式和方法等;缺陷分析报告则对缺陷的类别、缺陷的特点作出分析并提出预防措施,以便在以后的开发项目中有意识地去避免缺陷,即根据缺陷分析做出缺陷预防。

11.2.2 测试用例的设计

(一)测试用例的概念

测试用例是为了有效发现软件缺陷而编写的包含测试目的、测试步骤、期望测试结果的特定集合。

测试用例控制着软件测试的执行过程,它是对测试大纲中每个测试项目的进一步实例化;正确认识和设计测试用例可以提高软件测试的有效性,便于测试质量的度量,增强测试过程的可管理性。

(二)测试用例设计的原则

进行测试用例的设计时,应坚持以下原则:

(1)测试用例设计中,不仅要有合理的输入数据,还要有不合理的输入数据

在实际工作中,一些误操作和错误的输入数据往往会导致系统的崩溃,这些都是由于系统对意外情况的处理考虑不够引发的,这些情况应该通过设计的测试用例来发现。

(2)进行测试用例的设计时,不仅要有确定的输入数据,而且要有确定的预期输出数据

没有预期结果的测试是不可理喻的。软件缺陷是经过对比而得出来的。这正如没有标准无法进行度量一样。如果我们事先不知道或是无法肯定预期的结果,我们必然无法了解测试的正确性。

(3)保留全部的测试用例,并作为系统的组成部分之一

耗费大量的工作量设计出来的测试用例将给今后的测试工作带来方便,因为一旦程序被修改和扩充后,需要对程序进行重新测试,这时候,保留的测试用例的重新使用在很大程度上节约了测试用例的设计工作。同时,保留测试用例还可以验证发现的错误是否已经改正,也可以发现因修改、扩充可能产生的新错误。

(三)测试用例的设计方法

对于测试人员而言,测试用例的设计是一件非常困难的工作,而同时测试用例的设计好坏又直接关系到整个系统的设计质量。因此,测试用例的设计是软件测试工作中最为关键的一个环节。全面掌握测试用例的设计方法,并能够在不同的测试场合、测试环境和测试类型中运用正确的、恰当的方法进行测试用例的设计,将使这项工作具有事半功倍的效果。目前,存在着很多的测试用例设计方法,这些方法可以归纳成两大类:白盒测试方法和黑盒测试方法。

1.白盒测试

白盒测试又称为结构测试或基于代码的测试。是一种常用的测试用例的设计方法,它从代码分析入手,根据不同的代码逻辑规则、语句执行情况,对软件的逻辑路径进行覆盖测试。白盒测试需要知道程序内部的设计结构及具体的代码实现,并以此为基础选用适合的覆盖方法来设计测试用例。

白盒测试的测试用例需要执行以下工作:

●剖析应用程序在运行时某些特殊代码的行为特征,包括代码覆盖、内存分配、竞争和死锁(Deadlock)问题;

●跟踪代码路径分析与关键性能的相关的时间占用,对于基于 Web 的应用程序,还需要监视请求的执行时间;

●测试程序的内部分支路径,确保每个路径正确处理数据,返回期望的输出,而不会引起功能损失或不一致;

●测试不同的循环和条件语句,例如简单循环、嵌套循环,关系表达式、简单条件、符合条件、布尔表达式,保证代码组建的精度要求。

白盒测试的测试用例设计的方法

常用的白盒测试的测试用例设计方法主要有六种:语句覆盖法、判定覆盖法、条件覆盖法、判定/条件覆盖法、条件组合覆盖法和路径覆盖法。下面六种覆盖方法的用例设计均以此图为例进行说明。

(1)语句覆盖

一般而言,程序的某次运行并不一定会执行其中所有的语句。因此,在软件测试过程中,为了充分暴露程序中的错误,程序中的每条语句至少应该执行一次。语句覆盖要求设计足够多的测试用例,使得程序中每条语句至少被执行一次,这也是最起码的结构覆盖要求。

采用如上表所示测试数据的测试用例,通过测试路径ace,保证了程序中的每条语句都至少执行了一次,因此达到了语句覆盖的要求,但这个测试并不充分,如果程序中的第一个条件语句中的“AND”被错误地写成“OR”,或者第二个条件语句中的X>1被错误地写成X>0,该测试用例都不能发现这个错误。

语句覆盖的优点是可以很直观地从源代码得到测试用例而无须细分每个判定语句,缺点是发现错误的能力较弱。

(2)判定覆盖

判定覆盖又称为分支覆盖,它要求设计足够多的测试用例,使得程序中的每个判定至少都获得一次“真值”或“假值”,或者说使得程序中的每一个取“真”分支和取“假”分支至少执行一次。

采用如上表所示测试数据的测试用例,通过测试路径acd和abe,使得两个判定语句的四个分支都得到覆盖,因此达到了判定覆盖的要求。同时,程序中的每个语句也被执行了,可见判定覆盖比语句覆盖的覆盖标准更严格一些,但这个测试也不充分,如果程序中的第二个条件语句中的X>1被错误写成X<1,该测试用例就不能查出这个错误。

判定覆盖的优点是具有比语句覆盖更强的测试能力,同时具有和语句覆盖一样的简单性,无须细分每个判定语句就可以得到测试用例。缺点是它仅仅判断判定语句的最终结果,而忽略语句中每个条件的取值情况,因此必然会遗漏部分测试路径。

(3)条件覆盖

程序设计中,一个判定语句通常是由多个条件组合而成的复合判定语句,条件覆盖要求能够设计足够多的测试用例,使得每一判定语句中每个逻辑条件的可能值至少满足一次,即每个条件至少有一次为“真”值,有一次为“假”值。

程序中的两个判定语句总共包括四个逻辑条件:A>1,B=0和A=2,X>1。采用上表中的测试数据的测试用例,使得第一个判定语句有A>1,A≤1,B=0,B≠0等结果出现,第二个判定语句有A=2,A≠2,X>1,X≤1等结果出现,因此达到了条件覆盖的要求。

条件覆盖的优点是增加了对符合判定情况的测试,增加了测试路径。缺点是要达到条件覆盖要求,需要足够多的测试用例,同时,条件覆盖并不能保证判定覆盖。条件覆盖只能保证每个条件至少有一次为真值,而不考虑同一判定语句中各个条件的组合情况,因此,测试用例有可能满足条件覆盖的要求,但并不满足判断覆盖的要求。

(4)判定/条件覆盖

判定/条件覆盖是设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身所有可能结果也至少出现一次。

采用如上表所示测试数据的测试用例,通过测试路径ace和abd,就能够满足判定/条件覆盖的要求。

判定/条件覆盖的优点是同时满足判定覆盖准则和条件覆盖准则,弥补了两者的不足,缺点是未考虑判定语句中各条件的组合情况。

(5)条件组合覆盖

条件组合覆盖也称多条件覆盖,它要求设计足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次。显然,满足多条件覆盖的测试用例是一定满足判定覆盖、条件覆盖和判定/条件覆盖的。

程序中的两个判定语句分别包含两个逻辑条件,可以形成八种组合,分别为:A>1 B=0;A>1 B≠0;A≤1 B=0;A≤1 B≠0;A=2 X>1;A=2 X≤1;A≠2 X>1;A≠2 X≤1。采用如上表中的测试数据的测试用例可以覆盖这八种条件组合,满足条件组合覆盖的要求。

条件组合覆盖的优点是综合了判定覆盖、条件覆盖和判定/条件覆盖的要求。缺点是大大增加了测试用例的数量。

(6)路径覆盖

路径覆盖是设计足够的测试用例,使其覆盖程序中所有可能的路径。

程序中有四条可能的路径,分别为:ace,abd,abe,acd。采用如上表中的测试数据的测试用例可以满足路径覆盖的要求。

路径覆盖的优点是测试功能很强,可以对程序进行彻底的测试。缺点是需要设计大量、复杂的测试用例,对所有可能的路径进行测试,从而使得工作量大大增加。

2.黑盒测试

黑盒测试顾名思义就是将被测系统看成一个黑盒,从外界取得输入,然后输出;整个测试基于需求文档,看是否能满足需求文档中的所有要求。黑盒测试要求测试者在测试时不能使用与被测系统内部结构相关的知识或经验,它适用于对系统的功能进行测试。

黑盒测试的测试用例需要执行以下工作:

●测试全部使用场景的外部接口。确保接口符合功能规格说明和系统需求,使用场景既包括期望的处理流程,也包括随机的输入。

●测试不同的输入类型。确保软件接口可以输出期望的结果,并且可以正确处理无效的数据和异常情况。测试的输入数据包括合理的数据、边界数据和超出最大和最小的输入数据。

●性能测试。验证应用程序在正常情况下和极限负载条件下,程序能够处理不断增加的访问请求,具有良好的扩展能力。性能测试包括负载测试和压力测试。性能测试的测试结果可以作为实现代码审阅和白盒测试的输入。

●安全性测试。从黑盒测试的观点看,安全性测试通过模拟软件真实运行环境下攻击者的操作行为,寻找软件不正确的设计和编码的安全隐患。安全性测试包括验证输入数据、破解加密和访问敏感数据、缓冲区溢出、授权和证书功能等。

黑盒测试的测试用例设计的方法

黑盒测试的测试用例设计的方法主要有等价类划分方法、边界值分析方法、错误推测方法、因果图方法、正交实验设计方法、功能图分析方法等。

(1)等价类划分方法

等价类划分是把所有可能的输入数据,即程序的输入域划分成若干子集,然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的、常用的黑盒测试用例设计方法。

等价类是指某个输入域的子集合,在该子集合中,各个输入数据对于揭露程序中的错误都是等效的;因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据取得较好的测试结果。等价类可以划分成有效等价类和无效等价类。设计测试用例时,要同时考虑这两种等价类;因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。

(2)边界值分析法

长期的测试工作经验表明,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部;边界值分析方法是针对各种边界情况设计测试用例,选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据的设计方法。边界值分析方法是对等价类划分方法的补充。边界值分析法中测试数据的选择主要遵循以下规则:

●如果输入条件规定了值的范围,则应该取刚达到这个范围的边界值,以及刚刚超过这个范围边界的值作为测试输入数据。例如,程序的输入值的有效范围是0到100,则可以取-0.1,0.1,99.9,100.1作为测试数据。

●如果输入条件规定了值的个数,则应选取最大个数、最小个数、比最大个数多1个、比最小个数少1个的数作为测试数据。

●如果程序的规格说明给出的输入域或输出域是有序集合(如有序表、顺序文件等),则应选取集合的第一个和最后一个元素作为测试数据。

●如果程序用了一个内部结构,则应该选取这个内部数据结构的边界值作为测试数据。

(3)错误推测法

错误推测法是基于经验和直觉推测出程序中所有可能存在的各种错误,从而有针对性地设计测试用例的方法。例如,输入数据和输出数据为0,输入表格为空格或输入表格只有一行,这些都是程序容易出现错误的地方,可重点针对这些情况下来设计合适的测试用例。

(四)测试用例的维护

开发一个软件产品,会发布多个版本,同时也伴随着测试用例的不断维护,使测试用例不断完善并与产品功能和特性的变化保持一致,所以测试用例是和产品版本相关联的,特别是对提供软件服务的软件产品,多个版本常常共存,这时多个版本的测试用例也是并存的,如果新旧版本的相同测试用例得到一致的维护,测试用例数也不会成几倍、十几倍地增加,可以真正保证测试用例的完整性和有效性,因此在新建、修改、删除测试用例时要十分谨慎,要制定并遵循相应的规则。

11.2.3 测试的基本类型

按照测试过程中执行的先后顺序,软件测试可以分为:单元测试、集成测试、验收测试和系统测试。

(一)单元测试

单元测试是在软件开发过程中要进行的最低级别的测试活动,测试的对象是软件设计的最小单位——模块。因此也称为模块测试,这里所指的模块在不同的场合具有不同的含义,在传统的结构化编程语言体系中,如C,模块一般是指一个函数或子过程,在面向对象编程语言体系中,如C++、Java,要进行测试的基本单元一般是指一个类,而在第四代语言(4GL)体系中,一个待测模块则可能是一个菜单或弹出窗口。单元测试是针对模块内所有重要的控制路径设计测试用例,以发现模块内部的错误,并验证模块的功能是否与期望一致的一种测试类型。单元测试多采用白盒测试技术,系统内多个模块可以并行地进行测试。

提高模块的内聚度可简化单元测试,如果每个模块只能完成一个,所需测试用例数目将显著减少,模块中的错误也更容易发现。

单元测试是高质量软件开发的必要环节,如果软件开发过程中未对各个程序单元进行测试,大量细小的错误将遗留在代码中,使后期测试和维护的成本居高不下,导致项目延期甚至失败。

单元测试一般包括以下几个方面的内容:

1.接口测试

接口测试是单元测试的基础,只有在数据能正确流入、流出模块的前提下,其他后续的测试才有意义。测试内容主要包括:调用本模块时,输入的实参与形参的个数是否相同、属性是否匹配、量纲是否一致;调用其他模块时,所给出的实参与形参的个数是否相同、属性是否匹配、量纲是否一致;调用预定义函数时所用参数的个数、属性和次序是否正确;是否存在与当前入口点无关的参数引用;是否修改了只读型参数;是否把某些约束作为参数传递;是否处理了输入/输出错误;输出信息中是否有文字性错误等。

2.内部数据结构测试

局部数据结构往往是模块内部错误产生的根源,因此进行内部数据结构测试是为了保证临时存储在模块内的数据在程序执行过程中完整、正确。测试内容主要包括:变量类型说明是否正确;变量初始化或缺省值是否正确;变量名拼写是否正确;是否出现上溢、下溢和地址异常等。

3.独立执行路径测试

独立执行路径测试是对模块内部程序逻辑的每一条独立执行路径进行测试,以发现因错误计算、不正确的比较和不适当的控制流造成的错误。此时,基本路径测试和循环测试是最常用且最有效的测试技术。测试内容主要包括:是否误解或用错运算符优先级;是否出现表达式符号错误,变量初值错误或精度不足;是否出现迭代发散时不能退出,循环不能终止的情况等。

4.错误处理路径测试

功能设计良好的模块应该能够预测到各种出错情况,并根据出错条件设计出相应的出错处理路径,因此出错处理路径同样需要认真测试。测试内容主要包括:出错信息是否完整清晰,容易理解;出现的错误信息与实际遇到的错误是否相符;异常处理是否得当;错误陈述中是否能够提供足够的定位出错信息等。

5.边界条件测试

边界条件测试是单元测试中最重要的一个环节。它采用边界值分析技术,针对数据的边界值及判断条件的边界值进行测试,尽可能发现隐藏的错误。

单元测试虽然极其重要,但许多软件的开发过程却未进行单元测试,或者只进行了简单的单元测试,原因之一是单元测试耗费的时间可能比编码时间更长,充分的单元测试耗费的时间可能是编码时间的几倍。目前,很多知名的软件公司开发了很多针对单元测试的自动化测试工具软件,这些软件实现了完全可视化的单元测试,并在提高编程效率、自动生成测试用例以及高效完成白盒覆盖等关键技术上获得重大突破,这些技术可帮助软件开发企业大幅提高软件质量及降低开发成本。如CppUnit,JTest,C++Test,AdaTest,Visual Unit等。

其中JTest是parasoft公司推出的一款针对java语言的自动化白盒测试工具,它通过自动实现java的单元测试和代码标准校验,来提高代码的可靠性;而Visual Unit是由国内开发团队 UnitWare 开发的一款具有国际领先技术,拥有核心知识产权的软件测试工具。具有以下优点:

●可视化:Visual Unit完全可视化操作,不需编写测试代码,单元测试所需的时间极少。

●提高编程效率:Visual Unit能够提高编程效率和正确性,快速发现程序错误。

●测试完整性:Visual Unit的测试用例设计技术能够完成充分的白盒覆盖。

●具有回归测试、边界测试、速度测试等功能。

(二)集成测试

集成测试,也称为组合测试或联合测试。顾名思义,集合测试就是将单独的模块按照功能分类集成在一起,进行整体测试。

集成测试主要任务是检查详细设计中可能存在的问题,尤其是检查各单元与其他程序部分之间的接口上可能存在的错误,确保系统运行顺利和应用程序各个组件之间的兼容性。

集成测试方法有非增量式集成和增量式集成两种。

1.非增量式集成方法

非增量式集成方法是把所有模块按设计要求一次全部组装起来,然后进行整体测试。这种方法容易出现混乱,因为测试时可能发现一大堆错误,而为每一个错误进行定位和纠正是一件十分困难的事情,并且在改正一个错误的同时可能又会引入新的错误,新旧错误混杂在一起,将更难判定出错的原因和位置。

2.增量式集成方法

增量式集成方法是一个个地扩展模块,一步一步地增大测试的范围,错误易于定位和纠正,界面的测试也可做到完全彻底。

(三)验收测试

验收测试也称功能测试,是按照系统说明书中的功能性需求、非功能性需求和其他重要需求来对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能的一种方法。验收测试是单元测试和组合测试的补充。验收测试不像单元测试和组合测试那样,只是测试一个函数或一组函数,一个类或一组类,而是将应用程序作为一个完整的端到端实体来测试的。

验收测试将涉及到软件功能的各个方面的检查内容,如:Web页面超链接功能是否实现;信息输入输出窗口中各项按钮,菜单的功能是否正确;在应该输入指定类型的内容的地方输入其他类型的内容,看系统是否会报错;在可以输入中文的系统输入中文,看会否出现乱码或出错;在查询信息和更新信息时,查看信息是否成功录入数据库,是否有事务完成或失败的提示信息;在一些应该输入唯一信息的编辑框中输入重复的字符或ID,看系统有没有处理,是否报错;应该填写信息的编辑框中没有填写时系统是否都做了处理,是否有提示信息;设置了快捷键的地方是否能够成功实现快捷方式;在信息编辑控件中,输入结束后直接按回车键,看系统如何处理、是否报错等。

为了提高验收测试的工作效率,节省测试时间和成本,并消除测试人员所犯的错误,通常使用自动化测试工具软件来进行验收测试,如Selenium,WinRunner等。

Selenium 是 ThoughtWorks 公司专门针对 Web 应用程序而开发的一个验收测试工具。Web 应用程序的验收测试常常涉及一些手工任务,例如打开一个浏览器,并执行一个测试用例中所描述的操作。但是手工执行的任务容易出现操作人员人为的错误,也比较费时间。因此,尽可能使用自动化软件测试工具,将这些任务自动化,以消除人为因素,这是一种很好的做法。Selenium 测试可以在 Windows、Linux 和 MacintoshAnd 上的 Internet Explorer、Mozilla 和 Firefox浏览器中直接运行,就像真实用户所做的一样。而其他测试工具大都不能覆盖如此多的平台。通过编写模仿用户操作的 Selenium 测试脚本,可以从终端用户的角度来测试应用程序。通过在不同浏览器中运行测试,更容易发现浏览器的不兼容性。

Selenium 是软件工程师、设计人员和测试人员的工具箱中又一个有用且重要的工具。通过将该工具与持续集成工具相结合,团队就可以将验收测试自动化,并构建更好的软件,因为他们可以更容易、更早、更频繁地发现 bug,从而让团队将精力放在更有价值的活动上。

(四)系统测试的概念

系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格说明书的定义,并找出产品系统与各种规范、标准和协议等不相符合或与之矛盾的地方。系统测试的对象不仅仅包括需要测试的产品系统的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等。

由于系统测试所涉及的对象包括软件开发所依赖的各种资源,因此它要完成的测试任务包含很多方面的内容。主要有:

1.系统文档测试

检测用户手册、使用帮助、支持客户的其他产品技术手册是否正确、是否易于理解、是否人性化。

2.用户界面测试

在确保用户界面能够通过测试对象控件或入口得到相应访问的情况下,测试用户界面的风格是否满足用户要求。例如:界面是否美观、界面是否直观、操作是否友好、是否人性化、易操作性是否较好。

3.可维护性测试

可维护性是系统软硬件实施和维护功能的方便性。目的是降低维护功能对系统正常运行带来的影响。

4.安全性测试

这里的安全性主要包括两部分:数据的安全性和操作的安全性。核实只有规格规定的数据才可以访问系统,其他不符合规格的数据不能够访问系统;核实只有规格规定的操作权限才可以访问系统,其他不符合规格的操作权限不能够访问系统。

5.性能测试

进行系统性能测试的目的是为了验证系统是否达到用户提出的性能指标,同时发现系统中存在的性能瓶颈,起到优化系统的目的,其中系统的主要性能指标包括服务器的各项指标(CpU、内存占用率等)、后台数据库的各项指标、网络流量、响应时间等。

具体包含并发性能测试、负载测试、压力测试、强度测试、破坏性测试等。并发性能测试是评估系统交易或业务在渐增式并发情况下处理瓶颈以及能够接收业务的性能过程;负载测试是在整个系统在大负载仿真条件下,测试系统的实际能力;压力测试是测试系统在正常数据数量以及超负荷量(如多个用户同时存取)等情况下是否还能正常地工作;强度测试是在资源情况低的情况下,找出因资源不足或资源争用而导致的错误;破坏性测试重点关注超出系统正常负荷N倍情况下,错误出现状态和出现比率以及错误的恢复能力。

6.稳定性测试

测试一定负荷的长期使用环境下,系统可靠性、稳定性。

7.兼容性测试

测试系统中软件与各种硬件设备兼容性,与操作系统兼容性、与支撑软件的兼容性。

8.组网测试

测试组网环境下,系统软件对接入设备的支持情况。包括功能实现及群集性能。

9.安装测试

安装测试的目的是确保该软件在正常和异常的不同情况下进行安装时都能按预期目标来处理。例如,正常情况下,第一次安装或升级、完整的或自定义的安装都能进行安装。异常情况包括磁盘空间不足、缺少目录创建权限等。还有一个目的是核实软件在安装后可立即正常运行。另外,对安装手册、安装脚本等也需要关注。

10.协议互通测试

这是针对系统支持的协议、指标的测试。

目前,应用于系统测试的自动化测试工具软件有很多,如WinRunner、LoadRunner、Jmeter等。针对系统测试中复杂的测试内容,每种测试工具在某一特殊的测试类型上保持着自身的特点和优势。

Mercury Interactive公司的WinRunner是一种企业级的系统测试工具,用于检测应用程序是否能够达到预期的功能及正常运行;WinRunner能够有效地帮助测试人员对复杂的企业级应用的不同发布版进行测试,提高测试人员的工作效率和质量,确保跨平台的、复杂的企业级应用无故障发布及长期稳定运行。而LoadRunner 是Mercury Interactive公司开发的另外一种能够预测系统行为和性能的负载测试工具,通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,使用LoadRunner后 ,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。

【相关链接】

强大的企业级自动化测试工具-WinRunner(资料来源:http://www.51testing.com/ 软件测试网。)

一、轻松创建测试

用WinRuuner创建一个测试,只需点击鼠标和键盘,完成一个标准的业务操作流程,WinRunner自动记录你的操作并生成所需的脚本代码。这样,即使计算机技术知识有限的业务用户也能轻松创建完整的测试。你还可以直接修改测试脚本以满足各种复杂测试的需求。WinRunner提供这两种测试创建方式,满足测试团队中业务用户和专业技术人员的不同需求。

二、插入检查点

在记录一个测试的过程中,可以插入检查点,检查在某个时刻/状态下,应用程序是否运行正常。在插入检查点后,WinRunner会收集一套数据指标,在测试运行时对其一一验证。WinRunner提供几种不同类型的检查点,包括文本的、GUI、位图和数据库。例如,用一个位图检查点,你可以检查公司的图标是否出现于指定位置。

三、检验数据

除了创建并运行测试,WinRunner还能验证数据库的数值,从而确保业务交易的准确性。例如,在创建测试时,可以设定哪些数据库表和记录需要检测;在测试运行时,测试程序就会自动核对数据库内的实际数值和预期的数值。WinRunner自动显示检测结果,在有更新/删除/插入的记录上突出显示以引起注意。

四、增强测试

为了彻底全面地测试一个应用程序,需要使用不同类型的数据来测试。WinRunner的数据驱动向导(Data Driver Wizard)可以让你简单地点击几下鼠标,就可以把一个业务流程测试转化为数据驱动测试,从而反映多个用户各自独特且真实的行为。

以一个订单输入的流程为例,你可能希望把订单号或客户名称作为可变栏,用多套数据进行测试。使用Data Driver Wizard,你可以选择订单号或客户名称用数据表格文件中的哪个栏目的数据替换。你可以把订单号或客户名称输入数据表格文件,或从其他表格和数据库中导入。数据驱动测试不仅节约了时间和资源,又提高了应用的测试覆盖率。

五、运行测试

创建好测试脚本,并插入检查点和必要的添加功能后,你就可以开始运行测试。运行测试时,WinRunner会自动操作应用程序,就像一个真实的用户根据业务流程执行着每一步的操作。测试运行过程中,如有网络消息窗口出现或其他意外事件出现,WinRunner也会根据预先的设定排除这些干扰。

六、分析结果

测试运行结束后,你需要分析测试结果。WinRunner通过交互式的报告工具来提供详尽的、易读的报告。报告中会列出测试中发现的错误内容、位置、检查点和其他重要事件,帮助你对测试结果进行分析。这些测试结果还可以通过Mercury Interactive的测试管理工具TestDirector来查阅。

七、维护测试

随着时间的推移,开发人员会对应用程序做进一步的修改,并需要增加另外的测试。使用WinRunner,你不必对程序的每一次改动都重新创建你的测试。WinRunner可以创建在整个应用程序生命周期内都可以重复使用的测试,从而大大地节约时间和资源,充分利用你的测试投资。每次记录测试时,WinRunner会自动创建一个GUI Map文件以保存应用对象。这些对象分层次组织,既可以总览所有的对象,也可以查询某个对象的详细信息。一般而言,对应用程序的任何改动都会影响到成百上千个测试。通过修改一个GUI Map文件而非无数个测试,WinRunner可以方便地实现测试重用。

11.3 系统试运行和系统切换

系统测试工作完成之后,就进入新系统的试运行和新老系统的转换阶段。这一阶段的工作对于系统最终使用的安全性、可靠性来说是十分重要,但也是容易被人忽视的一环。

下面是对这个阶段工作的概述。

11.3.1 系统试运行和切换的准备

为了保证新系统能按预期目标正常运行,在进行新系统的试运行和新老系统的切换之前,要做大量的繁琐但是重要的准备工作。主要包括:基础数据的准备、系统文档的整理和相关人员的培训。

(一)数据的准备

基础数据的准备关键要做好一项工作,重点完成两个计划。首先,做好基础数据的统计工作,按照新系统运行的数据要求,对一些基础数据如各种单证、报表、账簿、编码进行分类统计,统计方法要做到科学化、程序化、统计结果要标准化、规范化;其次,要完成基础数据的采集计划,对数据的采集所使用的工具和方法,数据采集渠道和程序都应该给予明确的规定,以确保新系统在运行期间能获取稳定可靠的数据;第三,要完成基础数据的录入计划,新系统基础数据的录入过程将会耗费大量的人力、物力和财力,做好录入计划可以合理安排人力,加快录入进度,提高录入质量,从而保证新系统正常运行。

(二)文档的整理

在管理信息系统开发生命周期中的每一阶段,在系统规划、系统分析、系统设计、系统实施等各项工作完成之后,都会产生一系列的文档资料,如系统说明书、系统设计报告、软件测试报告等。这些文档记录了系统开发过程中的开发轨迹,是开发人员工作的依据和指导,同时这些资料也将成为系统运行和维护阶段维护人员工作的参考和借鉴。例如系统发生故障时,可能发生的原因正是系统设计阶段产生的系统缺陷没有及时地在软件测试阶段得到发现和改正。这时候,整理完善的系统设计报告和软件测试报告给我们查阅和分析故障原因提供了重要资料参考。

(三)人员的培训

管理信息系统最终还是要人来操作的,因此新系统的正常运行需要一个企业、单位或组织中很多人参与。他们中间大多数人熟悉或精通原来的手工处理过程,但缺乏计算机处理的有关知识。为了保证新系统的顺利使用,必须提前培训有关人员。

需要进行培训的人员主要有以下几类。

1.管理人员培训

对管理人员的培训,得到他们的理解和支持是新系统成功运行的重要条件。对管理人员的培训主要有以下内容:新系统的目标与功能;系统的结构及运行过程;信息管理的相关理论和规则,新系统可能对企业的组织机构及管理人员的工作方式产生的影响以及相应的处理措施;采用新系统后,对员工业务素质新的要求以及对组织原有的绩效考核机制的影响等。

2.操作人员培训

系统操作人员是管理信息系统的直接使用者。统计资料表明,管理信息系统在运行期间发生故障,大多数是由于使用方法错误而造成的,所以,对系统操作人员的培训应该是人员培训工作的重点。对系统操作人员的培训工作主要包括以下内容:必要的计算机硬软件知识;键盘指法,汉字输入等训练;新系统的工作原理;新系统的输入方式和操作方法的培训;简单出错的及时处置知识;运行操作注意事项。

3.维护人员培训

对用户的系统维护人员来说,除了要求具有较好的计算机硬软件知识外,必须对新系统的原理和维护知识有较深刻的理解。在较大的企业或部门中,系统维护人员一般由计算机中心或信息中心的计算机专业技术人员担任。对于系统维护人员培训的最好途径,是让他们直接参与系统的开发工作。这样有助于他们了解整个系统,为维护工作打下良好的基础。

11.3.2 系统的试运行

在系统进行集成测试和系统测试时,我们也曾经采用各种测试数据用于系统的运行,但是这些数据很难测试出系统在实际运行中可能出现的问题,所以当一个系统开发完成后让它实际运行一段时间即试运行,是对系统最好的检验和测试方式。

系统试运行阶段的工作主要包括:

(1)对系统进行初始化,包括设置系统的起始运行时间,输入各原始数据记录(物料编码的录入、会计科目的录入等);

(2)记录系统运行时的数据和状态;

(3)核对新系统输出和老系统(人工或计算机系统)输出的结果;

(4)对实际系统的输入方式进行考查(是否方便、效率如何、安全可靠性、误操作保护等);

(5)对系统实际运行的响应速度(包括运算速度、传递速度、查询速度、输出速度等)进行实际测试。

11.3.3 系统切换

系统切换是指系统开发完成后新老系统之间转换。系统切换通常有四种方式,每种方式具有各自的特点。在实际操作中,企业、单位和组织应该根据自身具体情况和实际需要选择不同的方式进行:

(一)直接切换

直接切换是在确定新系统运行准确无误时,在某一确定的时刻,立刻启用新系统,中止老系统运行。这种方式的优点是转换过程简单,人员和设备费用最省,但由于新系统没有在实际环境中运行过,可能会出现意想不到的情况,因此存在一定的风险。

(二)并行切换

并行切换是在指定的时间点启动新系统,并使新老系统并行工作一段时间。在并行期内,企业的工作依旧依赖老系统,经过一段时间的考验,确认新系统能满足业务流程和数据处理的需要后,新系统才正式替代老系统。

对于较复杂处理的大型系统,这种切换方式提供了一个与老系统运行结果进行比较的机会,可以对新老两个系统的时间要求、出错次数和工作效率给予公正的评价。当然由于与老系统并行工作,消除了尚未认识新系统之前的惊慌与不安。

在银行、电力等企业的一些核心系统中,这是一种经常使用的切换方式。它的主要特点是安全、可靠。

(三)试运行切换

试运行切换是直接切换和并行切换方式的一种综合,它将新系统分成两个部分,一部分采用并行切换方式与老系统并行,并行期结束后替代老系统,另一部分则采用直接切换的方式替代老系统。

(四)分段切换

分段切换是直接切换和并行切换方式的另一种综合,是指在新系统正式运行前,分阶段、按部分地完成新老系统的交替。这种切换方式可避免直接切换方式的高风险,保证了系统的可靠性,又可避免并行切换方式的双倍费用,不至于费用太大。

在系统转换的四种方式中,第一种方式最为简单易行,但风险也最大,万一新系统运行失败,将直接影响到这个企业或组织的日常工作秩序,严重的可能会导致企业或组织运行瘫痪,这种方式一般适用于一些系统处理过程不太复杂,数据不很重要,或时间要求不高的场合。第二种方式无论从工作安全上,还是从心理状态上均是较好的。这种方式的缺点就是费用和工作量都很大,因为在相当长时间内系统要两套班子并行工作,而且用户会随着并行期的延长而失去热情,产生厌烦情绪,甚至不使用新系统,从而导致并行期更加延长。第三种方式使用的最大问题是如何确定新系统与老系统的并行部分,一般以“对数据存储有破坏性操作”为标准,选择新系统的并行部分。例如在财务管理系统中,具有破坏性操作的功能主要有会计凭证的管理,而会计报表部分就属于非破坏性操作,若采取试运行转换,则可以将会计凭证部分采取并行切换,会计报表采取直接切换方法。第四种方式对系统的设计和实现都有一定的要求,特别是对接口程序的设计要进行充分的考虑,否则是无法实现这种分段切换的设想的,因此,当新老系统差别太大时,不宜采用这种方式。

11.4 系统评价

11.4.1 系统评价的目的

系统评价是管理信息系统开发过程中一个重要的环节,它对一个管理信息系统的技术性能,所产生的经济和社会效益进行全面估计、检查、测试、分析与评审,并将系统运行的各项实际参数值及系统可行性研究阶段、系统分析阶段、系统设计阶段提出的计划指标值进行比较分析,以便确定系统目标的实现。其目的在于:

(1)深入分析信息系统的工作质量,为今后进一步的系统维护工作做好技术上的准备;

(2)深入分析一个信息系统对组织内各部分的影响,为系统今后的发展和应用明确目标,使系统能真正满足企业的需求;

(3)对信息系统所带来的效益和所花费成本的投入产出比进行分析,以便进一步提高系统的投资效益;

(4)深入分析一个信息系统对信息资源的充分利用程度,考查系统是否最大限度地利用了现有的信息资源并充分发挥了它们在管理决策中的作用;

(5)对新系统开发工作进行评定和总结,对系统开发人员(包括终端用户)的工作给予肯定,这对于采取自行开发,联合开发方式的系统来说尤为重要。

由于管理信息系统本身的复杂性,导致其评价要比其他工程类建设项目复杂得多。主要体现在:前者很多评价指标难以量化;系统的建立是一个持续改进的过程,系统的价值具有长期效应以及存在很多隐性效益,价值具有极大的任意性。因此为了避免片面性,对新系统的评价工作应在新系统运行一段时间后,由系统开发人员,用户及有关专家共同进行。

11.4.2 系统评价的指标体系

系统评价一般从管理、技术和经济三个方面,采用定性和定量相结合的方法进行评价。评价的标准和依据是根据管理信息系统的特点建立起来的评价指标体系,主要分为费用指标、效益指标、管理指标和技术指标四个类别。

(一)管理指标

作为一个复杂的管理系统,企业、单位和组织都有许多特征来表现其各种管理能力和功能,如企业的管理水平,管理效率,企业对市场的适应能力,行业影响度等。管理信息系统的使用会对这些特征产生影响,通过对特征的前后对比,可以获得企业使用信息系统后产生的效果。因此,这些特征组成了系统的管理指标。信息系统的使用对这些指标的影响主要表现为:

(1)提高管理效率:采用计算机代替人工处理信息,使信息处理效率得到提高,减轻了管理人员的劳动强度,提高了工作效率。

(2)提高管理水平:采用计算机网络等高科技信息技术手段,加强了企业各部门之间的业务联系,使事后管理变为实时管理,使管理工作逐步走向定量化。

(3)提高企业对市场的适应能力:采用计算机提供辅助决策方案,使管理人员有更多的时间从事调查研究和决策工作,因此当市场情况发生变化时,企业可以及时调整决策以适应市场。

(4)提高行业影响度:通过建立信息系统,企业对外可以提高客户对企业的信任程度,对内可以提高全体员工的自信心和自豪感,加强了管理人员之间的协作精神,显著改善企业形象,提高企业的行业影响度。

(二)技术指标

技术指标是从信息技术的角度描述管理信息系统具有的技术性能以及提供的系统功能。主要包括:

正确性:可以用查全率和查准率来衡量。查全率是指检索结果是否包括全部有关信息;查准率是指检索结果是否为所需信息。

可靠性:包括系统平均无故障时间,抵御误操作的能力,故障恢复时间等。

适应性:包括两方面的内容,其一是指适应范围的广泛性,其二是指对需求变化的适应程度。

易用性:应用系统的用户界面应该友好,容易操作,在数据的输入方面尽量从实际情况中提取,避免完全靠用户手工输入。

安全性:系统安全保密措施的完整性,规范性和有效性。

响应时间。主要指系统的响应时间与信息处理速度满足管理业务需求的程度。

可移植性。指系统是否可以在多种硬件及操作系统平台上运行。

可维护性。整个系统的设计和实施应简明、高效,易于纠错,易于修改。为了便于系统扩充,改进和添加新特征,系统应尽量模块化,提高每个模块的内聚度。系统还应易于升级,且升级版本应迅速发送到用户手中。

(三)费用指标

费用指标用来计算信息系统在整个生命周期中的全部开支所构成的费用。主要包括:

硬件建设费用:包括主机设备、终端设备和通信设备的购置费用以及机房的建设费用;

软件购置费用:包括系统软件、中间件、应用软件的购买费用;

系统开发费用:包括调查研究、系统规划、系统分析和设计,系统实施阶段的全部费用;

系统运行费用:指保证系统正常运行的基本费用,包括计算机及其外部设备的运行和维护费用,消耗性材料费用,相关人员工资以及设备、配件的折旧费用。

(四)效益指标

效益指标主要是计算企业使用新系统后新增加的经济效益,经济效益是指通过信息系统开发与运行的投资,使得企业收入增加,成本下降,进而为企业带来更大的效益,这里的效益指标主要是指直接经济效益指标。主要包括:销售利润率,市场占有率,流动资金占用率,资金周转率,劳动生产率,投资回收期等。

11.4.3 系统评价的流程

各个阶段的主要工作内容如下:

(1)组织系统评价小组:系统评价小组由企业领导、终端用户等组成。

(2)制定系统评价计划:制定系统评价任务,时间,所需评价材料。

(3)制定评价标准:要恰当地评价管理信息系统所产生的效果或者价值,应该制定一个评价指标体系,其中包括指标集、权重集。有些管理信息系统已有被公认的指标集(例如MRpII或ERp的指标集),则可以参考。

(4)准备材料:按照评价指标体系中提出的指标,收集相关的数据(除企业自身情况外,还可以收集国内外情况、行业情况、竞争对手的情况),给出定量指标值计算公式,以及计算的结果。

评价资料中不能忽视终端用户的使用报告。

(5)实施系统评价:按照系统评价计划,对提交的评价定量指标、定性指标等材料进行评价,提出改进意见或建议,给出结论性的意见。

(6)编写系统评价报告:以书面形式编写评价报告。系统评价报告是系统评价小组对系统评价活动的一个书面总结材料。系统评价报告分为两大部分,评价计划,评价实施与结论。评价计划主要包括系统评价目的,评价对象、范围,评价小组的描述,评价标准制定规范的解释,评价标准参数(如贡献率)值选取以及实施计划的说明。评价实施与结论主要包括评价材料的汇总情况说明,评价内容与评价结果的记录。

11.5 信息系统监理与审计

随着信息系统在企业各个管理领域中得到进一步深入而广泛的应用,信息系统也成为承载企业经营风险的重要单元,系统本身安全与可靠程度直接影响着企业信息安全和信息化战略目标的实现。信息系统监理是保证信息系统工程建设项目有效控制和成功实施的重要前提和基础。而信息系统审计则对信息系统运行的可靠性、安全性和有效性作出科学分析和判断,从而保证信息系统在企业经营管理中发挥更大的作用。

11.5.1 信息系统监理

信息系统监理是指依法设立并具备相应资质的信息系统工程监理单位,受业主单位委托,依据国家有关法律法规、技术标准和信息系统工程监理合同,对信息系统工程项目的投资、设计、施工、验收和维护环节实施的监督管理,也称为信息系统工程监理。

(一)信息系统监理的主要目的

信息系统监理的目的不是验证信息系统工程项目的正确性,而是在工程项目开发的各个阶段中尽可能、尽早地发现开发问题,并提供必要的建议和指导,科学地规划和控制工程项目的投资、进度和质量。

(二)信息系统监理的基本内容

信息系统监理是通过投资控制、进度控制、质量控制、合同管理以及信息管理对信息系统工程项目进行监督和管理。

1.投资控制

投资控制的主要任务是完成工程项目建设前期的可行性研究,协助工程建设单位进行投资决策。包括:在信息系统设计阶段对设计方案和设计标准进行审查;在系统开发准备阶段对工程项目的造价进行确定;在系统实施阶段对设计变更、完成工程量、索赔控制以及工程结算进行审核。

2.进度控制

进度控制的主要任务包括:在工程项目建设前期确定合理的阶段目标;在项目建设实施过程中通过运筹学、网络计划技术等科学方法,审查组织设计和进度计划,做好协调与监督,保证分阶段目标逐步实现,并最终保证工程项目建设顺利完成。

3.质量控制

质量控制贯穿于工程项目建设的可行性研究、分析设计、系统实施、系统转换以及系统维护的全过程中。主要任务包括:系统设计方案的评比,图纸的审核,设计变更的控制、承建单位资质审查、监督标准的检查、规范的贯彻等。

4.合同管理

合同是监理单位采取各种控制、协调与监督措施,履行纠纷调解职责的主要依据,因此合同管理是进行投资控制、进度控制和质量控制的重要手段。

5.信息管理

信息管理主要包括:投资控制管理、设备控制管理、实施管理及软件管理等内容。

11.5.2 信息系统审计

信息系统审计(Information System Audit,简称IS审计)是利用规范和先进的审计技术,由独立于审计对象的信息系统审计师,以第三方的客观立场对信息系统的完整性、安全性、稳定性和有效性进行综合的检查与评价,并提出改进的意见和建议的过程。

(一)信息系统审计的目的

信息系统审计的目的是通过评估并提供反馈、保证及建议,以降低企业日益面临的信息系统风险,使得企业信息系统的发展战略目标与企业经营目标保持一致并有效地发挥资源优势,从而确保信息系统为企业提供增值效益服务。通过开展全面和有效的信息系统审计,可以有效控制企业的各种信息风险,如信息一致性风险、信息相关性风险和信息安全风险等,从而提高企业控制信息风险的能力,对企业信息化的建设有着积极的推动作用。

(二)信息系统审计的内容

信息系统审计涉及信息系统开发和应用的所有相关领域,并随着信息技术的发展而不断扩展。主要内容包括:

1.信息系统审计

包括信息系统的管理、计划与组织方面的策略、政策、标准、程序和相关实务审计;财务系统和非财务系统的应用审计等。

2.信息系统技术基础设施与操作实务审计

包括企业组织在技术与操作基础设施的管理和实施方面的有效性审计;软件及硬件供应商及外包服务商提供的方案、产品及服务质量是否与合同相符审计;系统运营效能、投资回报率及应用开发测试审计;数据中心、网络、通讯设施的结构审计等。

3.业务流程评价与风险管理审计

包括业务处理流程审计、组织的业务目标审计、风险管理实施审计等。

4.信息系统开发、获得、实施与维护审计

包括信息系统开发过程的审计、开发方法的审计、开发流程的审计和维护计划的审计等。

5.资产保护审计

包括对逻辑、环境与信息技术基础设施的安全性审计,防止企业信息资产在未经授权的情况下被使用、披露、修改、损坏或丢失。

6.灾难恢复与业务持续计划审计

包括计划的建立和维护流程审计;风险自评估程序执行审计;系统的安全审计、网站的信誉审计、全面控制审计等。

(三)信息系统审计的方法

信息系统审计的方法有以下几种:

1.整体测试

是一种常规的例行审计,每年或半年一次对信息系统进行全面的审计,通过符合性测试对信息系统进行全方位的检查和评价,评估系统的运行状况,向管理层和专业部门提出改进建议。

2.专项审计

是针对信息系统管理的某一方面或某一子系统进行的专门审计,可根据实际需要有选择地进行。

3.风险评估

是对信息系统运行过程中面临的各种安全威胁运用安全控制措施加以应对,并在威胁与影响之间达到成本效益平衡。风险评估是提高信息系统自身技术安全系数的重要信息系统审计方法。

4.数据检测

是通过预先设计好一批检测数据,并对检测数据进行特殊的标记,在被审计系统中进行处理,最后与预期结果进行比较判断的审计方法。

5.IS治理

是在审计过程中对信息系统内部控制进行审计,通常运用实地观察、座谈、审核系统的文档资料等方法,然后用流程图法对内部控制进行描述和评价。

11.5.3 信息系统监理与信息系统审计的区别

信息系统监理和信息系统审计都是保障信息系统的安全措施,是对信息系统质量控制的再控制,但两者在目的、业务范围和独立性方面有如下区别。

(一)目的区别

信息系统监理的目的是保证信息系统建设质量、进度和投资额满足项目建设要求,因此信息系统监理的活动将随着项目建设工程的结束而完成。信息系统审计的目的是合理保证信息系统能够保护资产的安全、数据的完整、系统有效地实现组织目标并有效地利用组织资源,其核心是信息系统的效率和效果,因此只要信息系统在运行,审计活动一直存在。

(二)业务区别

信息系统监理的过程是可见的,即信息系统工程项目的成本、进度和质量与目标间出现的偏差是可见的,及时纠正也方便。而信息系统审计不仅包括对建设过程的审计,更重要的是对信息系统的运营审计,鉴证信息系统能否保护企业资产安全,其产生和传递的信息是否完整,整个系统是否有效地实现组织目标并有效地利用组织资源,而这种对信息系统的安全性、可靠性和有效性的认定则具有不可见性,这也正是信息系统比一般工程项目更为复杂的主要原因。

(三)独立性区别

信息系统监理与信息系统审计之对比,两者性质相同,都是第三方监督,但对独立性的要求有所区别。目前,信息系统监理对第三方的独立性没有明确要求。而信息系统审计对第三方的独立性要求极其严格,因此在保证审计的客观性和公正性方面更具可操作性。信息系统审计的独立性主要包括审计人员的独立性、审计计划的独立性、审计过程的独立性以及审计报告的独立性。

【案例说明】

宁波华通公司企业管理信息化解决方案案例

宁波华通电器集团股份有限公司(以下简称华通公司)为了从根本上解决管理中存在的问题,实现管理的科学化、现代化,提高各种资源的利用率,减少库存积压,降低生产成本,提高企业对市场的应变能力,在金蝶软件科技(深圳)有限公司宁波分公司与华通公司经过相互了解后,决定由金蝶软件科技(深圳)有限公司宁波分公司为华通公司提供以金蝶K3系统为核心的一套现代企业管理解决方案,以信息化推动华通现代化管理及商务模式的进步。该解决方案将涵盖采购管理、销售管理、库存管理、人力资源管理、设备管理、品质管理、生产管理、财务成本、领导决策支持管理等全方位的ERp设计方案和实施内容。

华通公司信息化项目实施方案具体内容

(一)项目实施阶段

华通信息化项目实施划分为四个阶段:

●第一阶段:物流管理系统(采购、销售、仓存)、计划管理系统实施

●第二阶段:生产管理系统、车间管理系统、财务系统实施

●第三阶段:设备管理系统、质量管理系统、人力资源管理系统实施

●第四阶段:决策支持系统实施

(二)项目实施计划

(1)实施原则

华通信息化管理系统的实施原则主要体现在以下三个方面:

①实施的关键要素

实施华通信息化管理系统的关键要素包括技术、数据和人。

②系统实施所需时间

一个企业成功实施管理信息系统的时间长短取决于以下因素:企业的规模和复杂程度、企业用于实施过程中的资源、高层领导的参与程度、实施队伍的知识以及系统运行的环境。

③系统实施必须循序渐进

由于企业管理信息系统是一个庞大的复杂系统,它的实现过程并不是一蹴而就的事情,必须按照一定的步骤去进行。通常分成两个大的阶段:

●拉通生产经营活动的主线。

●实现企业其他活动的动态控制。

(三)实施方案和步骤概要

(1)成立项目实施领导小组和项目实施小组

成立项目实施领导小组和项目实施小组,并举行实施动员大会。

(2)有关培训

首先从领导层开始进行培训,培训对象主要为:企业决策者、生产与库存控制经理、车间主任等中层以上的领导干部。

培训的主要工作集中在将使用系统的具体操作人员方面。

(3)基础数据的收集、整理和初始化

A.收集基本资料

●各部门使用的单据

财务部: 财务传票;

销售部: 报价单,客户订单,销货单,销退单,应收账单,收款单;

采购单: 请购单,采购单,收料单,验退单,退货单,应付账单/发票,付款单;

仓 库: 零星领/退料单,调拨单,成本调整单,报废单;

生产部: 生产单,外协单,外协进货,外协退货,外协验退,领料单,退料单,超领料单,生产入库单;

车 间: 派工单,生产记录单;

质量部: 检验单(IQC,QC,QA);

●各部门使用的报表

例:销售分析报告,生产进度报告,交货报告,应收款账龄分析,库存明细账,进、耗、存统计报表,库存呆滞分析,资金周转率报告,订货点采购报告等;

●物料主文件

●产品类型

●工程主文件

B.分析基础数据

基础数据的准确性非常重要,直接关系到实施后各种数据的准确性,而且系统开始运转后,不宜常作改动,故一旦发生严重问题,轻则重新开始,重则导致项目流产;要本着“第一次就把事情做好”的原则,谨慎从事;根据以往的经验,此步骤宁可慢些上线,也不能为赶时间而操之过急。

此步骤共分三个阶段:

●准备数据;

①现成的数据:多为现行管理中用到的数据,不需过多加工就可使用。如物料名称,零件图号,材料消耗定额,仓库名,供应商和客户资料,会计一级科目;

②要加工的数据:现有数据需要重新分解或组合的。如工时定额要转换为提前期的时间构成,补充排队时间,传送时间;在现有零件明细表、工艺过程表和材料消耗定额的基础上建立产品结构图和物料清单;

③要研究确定的数据:现行管理中没用到的数据。如各种编码(物料号,类型码,分类码,车间,工作中心,部门,仓库,库位,会计明细科目,计划员,采购员等),标准成本,间接费率,批量规则,安全库存,经济批量等;

④要清点的数据:主要指各种期初余额。

●录入数据;

由各部门指派录入员;录入前要先考核录入员的操作能力。

●审核数据;

项目组必须对录入后的数据进行严格、全面、反复的核实。

(4)网络硬件环境的配置

能保持正常运作的电脑网络硬件环境是K/3项目实施成功的基本条件。所以必须在实施第一步就按照系统要求规划好运行的网络硬件环境。

●内容

①金蝶公司提供硬件环境需求报告。

②硬件供应商根据需求建立网络环境,并测试成功。

③金蝶公司检查建好的网络环境。

●参与人员

软硬件供应商的技术支持人员,厂方相关人员。要求:

①厂方必须至少有一个专门的电脑网络技术人员,对公司网络进行管理监督以及和硬件供应商之间的沟通协调;

②组建网络环境时,厂方电脑技术人员须妥善保留相关参数设置和技术文件,以备安装软件时技术人员查询使用。

●目标

①建立稳定可靠的系统运行环境;

②硬件的相关技术资料保存完整,并建立档案系统。

(5)软件平台解决方案

①网络操作系统和版本

针对华通公司信息化建设,金蝶软件公司提供的K3系统采用的网络操作系统是Windows NT Server 4.0/Windows 2000 Server,同时选用微软的Intranet解决方案来构建企业的Intranet。

②微机操作系统、版本

K3系统采用的微机操作系统是Windows NT Workstation 4.0和Windows95/98/2000。

③中间层应用服务系统、版本

华通公司信息化管理系统采用的金蝶K3系统是三层结构的客户/服务器应用,中间层应用服务系统采用微软Microsoft Transaction Server 2.0(MTS)。

④数据库系统、版本

华通公司信息化管理系统采用的金蝶K3系统由于是三层结构客户服务器应用,从程序设计上就考虑了大型数据库系统的无关性,即在编程设计采用SQL-92标准的数据库操作、查询语法,从而实现了一套软件支持多种大型数据库。目前选择MS SQL Server7.0 和ORACLE8数据库。

⑤开发工具版本

华通公司信息化管理系统采用的金蝶K3系统主要采用微软Visual Studio 98开发套件完成。套件工具包括:

●Microsoft Visual Basic 6.0

●Microsoft Visual C++6.0

●Microsoft Visual SourceSafe 6.0

其中运用VC构建高效的COM功能组件和可视化控件;运用VB绘制友好的客户端界面,为用户提供丰富的软件功能;运用VSS管理团队式开发及其程序文档,全面履行ISO9001标准,有效地协调软件开发工作。此外,还采用100%纯JAVA,JDK 1.5编写具有远程网络性能的应用程序,实现企业级财务软件很重要的公司财务特性,满足跨地区的远程财务管理和监督的需求。

(6)系统试运行

在系统试运行期间的主要任务就是在真实数据的基础上模拟企业的实际操作过程,试运行亦可当作培训计划的一部分;试运行时,最好采用本公司的实例,选择有代表性的产品。其原则是:

①是一种生产多年,现仍生产的成熟产品,数据资料比较完备;

②能比较全面地反映各种管理上的问题;

③涉及的物料品种在100种以上。

(7)评定系统试运行的结果

评测系统试运行的结果,为正式启用系统做好准备。

(8)系统正式启用

正式启用系统。正式启动前,应考核以下条件:

①企业领导及各部门经理深刻理解K3原理,认识到其实施的必要性,并给予大力支持;

②项目组成员及一线工作人员接受过良好的培训,能熟练操作系统;

③基础数据录入完毕,准确率在95%以上;

④模拟运行结果令人满意。

当以上条件成熟后,新系统便可开始启动了。

(9)华通公司K3ERp系统的评价

①改善资金运用状况

②改善劳动力运用状况

③增加利润

④改善企业工作质量

⑤高层管理的工具

⑥充分发挥人的作用,提高全员生产率

问题讨论:

1华通公司的信息系统实施方案是否具有普遍性?

2 在整个实施过程中,哪些环节还需要进一步的补充和修正?

【本章小结】

本章首先介绍了在计算机软件的开发和维护过程中所碰到的“软件危机”问题,包括“软件危机”的表现形式、产生的原因以及目前用来解决“软件危机”的方法。程序设计方法是用来解决软件危机的方法之一。本章着重介绍了结构化程序设计和面向对象程序设计方法。

在程序开发过程设计中,如何提高代码的重用性以及程序的效率,是每个程序员需要考虑的问题。本章也介绍了一些目前比较流行的软件重用技术,包括组件技术和应用框架。软件测试阶段中,采用各种测试方法和技术,力图发现系统中的错误并且及时纠正。本章介绍了四种软件测试类型,着重分析和介绍了几种测试类型的测试方法的选择和测试工具的运用等内容。系统转换是系统实施的最后阶段,系统转换也有四种典型方式,每种方式的具体内容本章分别做了详细的介绍,在系统应用中应根据具体情况灵活运用,新的信息系统建成和运行后,要对新的系统的性能和效果,对组织的贡献等状况进行系统评价工作,本章介绍了系统评价的流程,并对流程中的每个环节作出了具体的分析。最后,本章对于信息系统监理和审计的内容进行了详细介绍,这两部分内容目前。

【练习与思考】

1.软件危机是怎么产生的?目前有哪些方法可以用来克服软件危机?

2.用结构化程序设计的方法设计程序时,程序有哪几种基本逻辑结构?

3.白盒测试中有哪几种逻辑覆盖方法?各自的特点是什么?

4.系统转换的方式有几种?各自的特点是什么?

5.系统评价的目的和内容有哪些?

6.什么是信息系统的监理?

7.信息系统审计有何作用?

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈