930 likes | 1.08k Views
第十四章 系统实施. 系统实施的 主要任务 是按照设计说明书的要求,首先进行 物理系统的实施 ,要根据计算机物理系统配置方案购买和安装计算机硬、软件系统和通信网络系统,还包括计算机机房的准备和设备安装调试等一系列活动,要熟悉计算机物理系统的性能和使用方法;同时进行的工作是 程序设计、人员培训 ;接着进行的工作是 收集有关数据并进行录入 ;然后是 系统测试 ;最后进行 系统切换 ,使新系统投入运行。. 开发. 设计. 系统. 初步. 评价. 调查. 系统. 可行性. 维护. 研究. 验收. 审批. 系统运行和维护. 系统规划. 系统. 详细. 转换.
E N D
第十四章 系统实施 系统实施的主要任务是按照设计说明书的要求,首先进行物理系统的实施,要根据计算机物理系统配置方案购买和安装计算机硬、软件系统和通信网络系统,还包括计算机机房的准备和设备安装调试等一系列活动,要熟悉计算机物理系统的性能和使用方法;同时进行的工作是程序设计、人员培训;接着进行的工作是收集有关数据并进行录入;然后是系统测试;最后进行系统切换,使新系统投入运行。
开发 设计 系统 初步 评价 调查 系统 可行性 维护 研究 验收 审批 系统运行和维护 系统规划 系统 详细 转换 系统实施 系统分析 调查 编程 系统设计 逻辑 调试 设计 审查 审计 总体 详细 设计 设计 信息系统生命周期的五个阶段
系统设计 系统分析 系统实施 信息系统的开发思路
本章内容: 第一节 外购方案的实施过程 第二节 程序设计 第三节 系统测试 第四节 系统切换
第一节 外购方案的实施过程 管理信息系统的开发可以充分利用外部资源,利用外部资源可以采取外购的方式,也可以用外包的方式。 一、实施外购方案时需要考虑的问题 1.供应商的服务 (1)信誉:软件供应商所承诺的各种服务 (2)升级服务。 (3)软件的修改:通用的系统是否一定能适合用户自己的具体情况。 2.系统运行的效率 考虑外购能够根据需要进行“拼装和拆卸”的软件系统,或者直接外购需要的软件模块。 3.不同软件之间的衔接
二、外购方案的实施过程 1.掌握信息系统的各项功能 (1)回顾系统的设计方案:要根据系统分析与设计形成的文档资料来确定所要购置的功能模块。不仅要求开发人员与用户对将要实现系统的结构与功能有非常清楚的了解,还应结合今后运行的环境来进一步审视系统的设计方案。 (2)估计系统的大小和未来的需求。根据设计说明书,必须确定所要实施系统规模的大小,同时必须清楚地了解目前的业务处理量,预测今后一段时期内业务量的增长趋势。 (3)明确各种条件的限制。主要是考虑平台的兼容性问题,同时考虑机器设备的配置、运行速度、容量等问题。 2.确定软件系统的供应商 当企业自己的开发力量不够时,可以采用招标的方式,将整个实施过程外包给软件商来进行。这样做一是可以加快进度,二是可以提高效率,但要注意控制好风险。
3.评估购置软件系统的功能 确定了可能的软件商及相应的软件包后,必须尽可能地从各方面获得软件商的有关信息和相应软件包的信息(必须注意可能存在某些假象)。 如有可能,应该试用有关的软件,对于小系统,可以用—些真实数据让系统进行处理。对于大系统,需一组开发人员和用户几天的测试。通过测试,再根据设计说明书的要求对软件的功能进行评价。 4.购置软件系统 在外购的软件费用中,一般包含两部分:一是软件的使用费;另一项是软件的维护服务费。购买了软件包,并不是购买了软件的所有权,买的只是软件使用权。在购买时要针对许可证条款进行洽谈。 5.安装软件系统 外购的最后一步工作是安装。安装的工作量取决于系统规模的大小。 企业方面应该准备好需要运行的数据,如期初数据和具体业务处理的数据。而软件的供应商应该负责软件的设置、测试、用户培训、数据文件导入到新系统等一系列工作。
三、实施外购方案的优点 1.开发时间短 2.费用较少 3.可靠性高 4.规范程度高 除了上述的优点外,外购软件还有其操作界面有比较强的一致性,并能提供一定的操作培训等优势。
第二节 程序开发 一、程序设计 编程(Coding)就是为系统各个模块编写程序。根据结构化方法设计了详细方案,又有了高级语言,初级程序员都可以参加这一阶段的工作。 1、程序设计的目标 1)可靠性:程序应具有较好的容错能力,不仅正常情况下能正确工作,而且在意外情况下应便于处理紧急情况,不至产生意外的操作,从而造成严重损失。 2)可维护性:由于信息系统需求的不确定性,系统需求可能会随着环境的变化而不断变化,因此,就必须对系统功能进行完善和调整,为此,就要对程序进行适当的补充或修改。此外,由于计算机软硬件的更新换代也需要对程序进行相应的升级。管理信息系统的寿命一般是3年至10年时间,因此程序的维护工作量相当大。一个不易维护的程序,用不了多久就会因为不能满足应用需要而被淘汰,因此,可维护性是对程序设计的一项重要要求。
1、程序设计的目标 3)可理解性:程序不仅要求逻辑正确,计算机能够执行,而且应当层次清楚,便于阅读。程序中应包含足够的注释。这是因为程序的维护工作量很大,程序维护人员经常要维护他人编写的程序,一个不易理解的程序将会给程序维护工作带来困难。 4)效率:程序的效率指程序能否有效地利用计算机资源。近年来,由于硬件价格大幅度下降,而其性能却不断完善和提高,程序效率已不像以前那样举足轻重。相反,程序设计人员的工作效率则日益重要。
2、结构化程序设计方法 1)自顶向下的模块化设计(TOP-DOWN) 在模块化程序设计中应注意: (1)模块大小划分要适当。 (2)模块的独立性。 (3)模块功能要简单。 (4)共享的功能模块应集中。
上层模块 下层模块 ……. 下层模块 自顶向下的模块化设计 功能结构图中有很多大大小小的模块,先实现那些模块呢? 控制性 执行具体的功能 结构化方法主张自顶向下实现,尽量先实现上层模块,逐步向下,最后实现下层最基本的模块。(首先调试整个系统的结构及各个模块之间的接口,确保系统结构和各模块接口的正确性)
自顶向下模块化程序设计中应注意: • 模块应该具有独立性: 在系统中模块之间应尽可能的相互独立,减少模块间的藕合,即信息交叉,以便于将模块作为一个独立子系统开发。 • 模块大小划分要适当: 模块中包含的子模块数要合适,既便于模块的单独开发,又便于系统重构。 • 模块功能要简单: 底层模块一般应完成一项独立的处理任务。 • 共享的功能模块应集中: 对于可供各模块共享的处理功能,应集中在一个上层模块中,供各模块引用。
入口 A B 出口 2) 结构化程序设计方法(Structured Programming) 采用顺序结构、循环结构、选择结构三种基本逻辑结构来编写程序的方法。 (1) 顺序结构: 顺序结构表示含有多个连续的处理步骤,按照书写的先后顺序执行。 Int i=0 Int s=1 S=100+i
入口 P F T A B 出口 (2)选择结构。由某个逻辑表达式的取值决定选择两个处理加工中的一个。选择结构是根据条件成立与否选择程序执行路径的结构,一般有以下三种形式: 结构一: IF< 条件 > < 命令组 1> EISE < 命令组 2> ENDIF
入口 P F T A B 出口 结构二 IF< 条件 > < 命令组 > ENDIF 结构三 DO CASE CASE < 条件 1> < 命令组 1> CASE < 条件 2> < 命令组 2> · · · CASE < 条件 n> 〈命令组 n> ENDCASE
入口 F P T S 出口 (3)循环结构。循环结构由一个或几个模块构成,程序运行时重复执行,直到满足某一条件为止。如 FoxPro 中的Do While-Enddo 语句,一般格式为: DO WHIIE< 条件 > < 命令组 1> ELSE < 命令组 2> ENDIF < 命令组 3> ENDDO Int i=1 Int s=0 Do While(i<=100) s=s+i i=i+1 EndDo
二、软件开发工具 • 利用软件生成工具进行系统开发可以大量地减少甚至避免手工编写程序,并且避免手工方式下的编程错误,从而极大地提高了系统开发效率。 • 下面首先对几种常用的工具软件作一介绍: • 1. 数据库管理 • 现在的数据库管理系统已不只是局限于数据管理,而且具备相当强的软件生成功能。例如,ORACIE数据库管理系统中,利用SQL* FORMS 可以通过选择一些菜单和相应的功能键方便地进行对数据库进行操作; • 又例如,FoxPRO具有功能很强的菜单生成器、屏幕编辑器、报表编写器、应用生成器和跟踪调试工具。
2。电子表格软件 Lotus1-2-3电子表格软件包有一个规模较大的电子表格(256列*2048 行)。用户可以通过键盘在屏幕上填写表中数据,存入数据库,然后按图形方式显示或打印出来。由于这种软件可以灵活地与 FoxBASE 、BASIC 等数据文件转换成工作表文件所以使用比较方便。此外, Lotus1-2-3还设定了许多统计和财务中常用的函数和模型,因而便于MIS和DSS的开发。 3、套装软件 (set of software) 所谓套装软件是将流行的若干软件集成起来形成一套软件。 例如,套装软件Office就是将文字处理软件 (Word) 、电子表格软件(Excel)和绘图软件(Power Point)融合在一起,可同时运用字处理、表格设计、数据库和绘图功能。其中 Excel 还具备一定规模的生成模型的函数。
4、可视化(Visual BASIC)编程工具 ⑴ MS Visual Foxpro ⑵ MS Visual BASlC ⑶ PowerBuilder: ⑷ 办公自动化系统开发工具Lotus Notes 5、计算机辅助软件工程 (CASE) ⑴ CASE (COMPUTER AIDED SOFTWARE ENGINEERING)的特点:支持系统分析和系统设计 (如生成数据流程图、生成功能结构图和各种文档资料等)乃至整个系统生命周期的大型软件环境。 ⑵ 功能:CASE中集成了多种工具,这些工具既可以单独使用,也可以组合使用,为系统开发提供了全过程的开发环境
第三节 系统测试 一、系统测试的目的 测试是为发现程序中的错误而执行程序的过程;好的测试用例是很可能发现迄今为止尚未发现错误的测试用例;成功的测试是发现至今尚未发现的错误的测试。所以,测试的目的就是尽可能地发现系统中的错误。
二、系统测试的基本原则 1.测试工作应避免由原开发软件的个人和小组来承担 2.测试用例不仅要包括输入数据,而且要包括预期的输出结果 3.测试用例不仅要包括合理、有效的输入数据,还应选包括不合理的或无效的输入数据 4.检查程序是否做了规定以外的操作 5.保留所有的测试用例,以便于重新测试和追加测试 6.多种测试方法相结合,以尽可能查出更多的错误
三、系统测试的方法 程序的正确性验证一般有理论法和实验法两种。理论法是属于程序正确性证明问题,它是利用数学方法证明程序的正确性。人们还无法证明一个大型复杂程序的正确性;程序正确性验证中普遍采用的仍是实验法。 程序经过实验法测试,才能认为程序基本正确,但无法证明程序完全正确。要想通过彻底地测试找出系统的全部错误是不可能的。测试阶段要考虑的基本问题就是测试的经济性。
右图所示的是一个小程序的控制流程图。该程序由一个循环语句组成,循环次数不超过20次,循环体中是一组嵌套的选择语句,其可能的路径有五条。这样从程序的入口A到出口B的路径数高达520≈1014。如果编写一个测试用例,并用它来测试这个程序的一条路径要花一毫秒,则完全测试这个程序需要3170年。右图所示的是一个小程序的控制流程图。该程序由一个循环语句组成,循环次数不超过20次,循环体中是一组嵌套的选择语句,其可能的路径有五条。这样从程序的入口A到出口B的路径数高达520≈1014。如果编写一个测试用例,并用它来测试这个程序的一条路径要花一毫秒,则完全测试这个程序需要3170年。
对软件进行测试的方法主要有人工测试和机器测试两种。对软件进行测试的方法主要有人工测试和机器测试两种。 1.人工测试 人工测试又称代码复审,是一种静态的测试方法,就是在程序上机运行前,通过阅读程序和人工运行程序的方法,检查程序的静态结构,发现程序中的语法错误或逻辑错误。经验表明,人工测试可以发现程序中30%~70%的编码错误和逻辑错误。人工测试在发现错误的同时,就能确定错误的位置、类型和性质,所以人工测试有不可忽视的重要作用。 2.机器测试 机器测试就是运用事先设计的测试用例,通过在计算机上直接运行被测程序,对比运行结果与预期结果的差别以发现错误。可分为黑盒测试和白盒测试两种方法。机器测试的只能发现程序中有错误以及错误的症状,不能进行问题的定位。 (1)黑盒测试:也称功能测试。根据软件的功能说明书设计测试用例,从程序的输入输出特性上检查是否满足设计的功能。 (2)白盒测试:也称结构测试,将软件看成是一个透明的盒子,按照程序的内部结构和处理逻辑来选取测试用例,对软件的逻辑路径及过程进行测试,检查是否与设计相符。
四、测试用例设计技术 测试包括三方面,即设计测试用例、执行被测程序和分析执行结果并发现错误。所谓测试用例就是以发现程序错误为目的而精心设计的一组测试数据,包括预定要测试的功能,应该输入的测试数据和预期的结果。设计测试用例是有效地完成测试工作的关键。 设计测试用例最困难的问题是设计测试的输入数据。 设计测试用例的基本目标就是确定一组最可能发现多个错误或多类错误的测试数据。
1.等价类划分法 等价类划分是一种黑盒测试方法。该方法是把被测程序的所有可能的输入数据划分成若干个等价类,并且假定等价类中的一个典型代表值在测试中的作用等价于这一类中其它值的测试。这样就把无限的随机测试变成有限的针对性的等价类测试。 设计等价类的测试用例一般分为两步进行:第一步划分等价类并给出定义;第二步选择测试用例。而选择测试用例的原则是:有效等价类的测试用例尽量公用,以期进一步减少测试的次数;无效等价类必须每类一例,以防漏掉本来可能发现的错误。 例如,某模块的合理输入是10~80,划分的等价类有如下三个,测试数据可以从这三个等价类中抽取: 一个有效等价类:大于等于10且小于等于80的数据集合 两个无效等价类:小于10的数据集合、大于80的数据集合 划分等价类时,需要通过研究程序的功能说明来确定输入数据的有效等价类和无效等价类。在确定输入数据的等价类时常常还需要分析输出数据的等价类,以便根据输出数据的等价类导出对应的输入数据等价类。
2.边界值分析法 编程时,往往只注意正常情况,而处理边界情况时最容易发生错误。 通常设计测试用例时总是联合使用等价类划分法和边界值分析法两种技术。例如,税法规定个人的收入所得税从超过800元开始征收。如果用一个程序来计算税款,则“收入≤800”就是一个判定条件,满足条件的人免税。在选择测试用例时,可以用300、900两个测试数据分别代表免税和征税两个等价类,还可以用800、709、801作为测试数据。 3.错误推测法 使用边界值分析法和等价类划分法,可以帮助开发人员设计具有代表性的,容易暴露程序错误的测试用例。但不同类型不同特点的程序通常又有一些特殊的容易出错的情况。此外,有时分别使用每组测试数据时程序都能正常工作,这些输入数据的组合却可能检测出程序的错误。一般说来,即使是一个比较小的程序,可能的输入组合数也往往十分巨大,因此必须依靠测试人员的经验和直觉,从各种可能的测试用例中选出一些最可能引起程序出错的方案。例如,跟据经验,输入数据为零或输出数据为零往往容易发生错误。
4.输入组合法 等价类划分法和边界值分析法都只孤立地考虑各个输入数据的测试功效,而没有考虑多个输入数据的组合效应,可能会遗漏了输入数据易于出错的组合情况。选择输入组合的一个有效途径是利用判定表和判定树为工具,列出输入数据各种组合与程序相应的输出结果之间的对应关系,然后为判定表的每一列至少设计一个测试用例。 5.逻辑覆盖法 逻辑覆盖法是一种白盒测试方法,它是从程序内部的逻辑结构出发设计测试用例。如前所述,由于不可能测试程序中的所有路径,那么有选择地执行程序中某些最有代表性的路径是唯一可行的方案。根据测试数据覆盖程序逻辑的程度,可以划分为如下几种不同等级的覆盖:
(1)语句覆盖 语句覆盖是指设计的测试用例能使被测试程序中的每个语句至少执行一次。图14-3是一个被测程序的流程图,它的源程序(用C书写)如下: void example(a,b,x) Float a,b,x; { if ((a>1) && (b= =0)) x=x/a; if ((a= =2) || (x>1)) x=x+1;} 为了使程序中每个语句都被执行一次,程序的执行路径应该是ace,为此只需要输入下面的测试数据:a=2,b=0,x=5,就能满足要求。 但语句覆盖测试不充分,上述测试用例不能测试路径abd,也不能检查出第一个if语句中的逻辑运算符“&&”错写成“||”的错误,可见语句覆盖发现错误的能力比较弱。
(2)判断覆盖 判断覆盖是指设计测试用例,不仅使每个语句必须至少执行一次,而且每个判断的每个分支都至少执行一次。 对于上述例子来说,若设计两组测试数据,在一次测试中能分别覆盖路径ace和abd或分别覆盖路径acd和abe,就可达到判断定覆盖的标准。例如,可选择数据如下: a=3,b=0,x=1 (覆盖acd) a=2,b=1,x=3 (覆盖abe) 判断覆盖比语句覆盖强,但是对程序逻辑的覆盖程度仍然不高。例如,若第二个判断语句中的x>1写成了x<1,上面的测试数据就检查不出这个错误。
(3)条件覆盖 条件覆盖的含义是,不仅每个语句至少执行一次,而且是判断表达式中的每个条件都取到各种可能的结果。 上述例子中共有两个判断表达式,每个表达式中有两个条件,为了做到条件覆盖,应该选取测试数据使得在a点有下述各种结果出现:a>1,a≤1,b=0,b≠0;在b点有下述各种结果出现:a=2,a≠2,x>1,x≤1,只需要使用下面两组测试数据就可以达到上述覆盖标准: a=2,b=0,x=4 (满足a>1,b=0,a=2和x>1的条件,执行路径sace) a=1,b=1,x=1 (满足a≤1,b≠0,a≠2和x≤1的条件,执行路径abd) 条件覆盖通常比判断覆盖测试充分,但是也可能有例外的情况,虽然每个条件都取到了两个不同的结果,判断表达式却始终只取一个值。例如,如果使用下面两组测试数据,则只满足条件覆盖标准并不满足判断覆盖标准: a=1,b=0,x=5 (满足a>1,b=0,a=2和x≤1的条件,执行路径abe) a=2,b=1,x=1 (满足a≤1,b≠0,a≠2和x>1的条件,执行路径abe)
(4)判断/条件覆盖 判断/条件覆盖的含义是,选取足够多的测试数据,使得判断表达式中的每个条件都取到各种可能的值,而且每个判断表达式也都取到各种可能的结果。 对于上述例子而言,下面两组测试数据满足判定/条件覆盖标准: a=2,b=0,x=4 a=1,b=2,x=1 但是有时判定/条件覆盖也并不比条件覆盖更强。
(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 下面的四组测试数据可以使上面列出的八种组合每种至少出现一次: a=2,b=0,x=4 a=2,b=1,x=1 a=1,b=0,x=2 a=1,b=1,x=1 上述测试用例的设计技术各有优缺点,没有哪一种是最好的,更没有一种可以代替其余所有技术。同一种技术在不同应用场合效果可能相差很大,因此,通常需要联合使用。通常设计测试用例的做法是:用黑盒法设计基本的测试用例,再用白盒法补充一些方案。
五、系统测试的过程 硬 件 系 统 测 试 网 络 系 统 测 试 软件系统测试 模块测试 子系统测试 系统测试
管理信息系统的软件系统通常由若干子系统组成,每个子系统又由若干模块(程序)组成。所以,可以把软件系统的测试工作分为模块测试、子系统测试和系统测试三个层次。管理信息系统的软件系统通常由若干子系统组成,每个子系统又由若干模块(程序)组成。所以,可以把软件系统的测试工作分为模块测试、子系统测试和系统测试三个层次。 1.模块测试 所谓模块,是指程序中的一个子程序,是程序运行的最小单元,或是程序最小的独立编译单位。模块测试的目的是保证每个模块作为一个单元能够独立运行。在模块测试中发现的问题大都是程序设计或详细设计中的错误,如数据流的输入、输出不能正常进行;局部数据结构出错;算数运算的优先次序不正确或理解错误等。对于模块测试,一般分成人工走查和上机测试两步进行。上机测试时,采用白盒法设计测试用例。 2.子系统测试 子系统测试也称分调,就是把经过测试的模块放在一起形成一个子系统来测试。主要是测试各模块之间的协调和通信,即重点测试子系统内各模块的接口。子系统测试时发现的问题有:数据穿过接口时可能丢失;一个模块的运行可能会影响另一个模块的运行;把若干子功能结合起来可能不产生预期的主功能;全局数据结构与局部数据结构矛盾或不协调等等。在子系统测试过程中,采用黑盒法设计测试用例。
非渐增式测试 ①自底向上测试 渐增式测试 (同时完成模块测试) ②自顶向下测试 子 系 统 测 试
(1)非渐增式测试 先分别测试每个模块,再把所有模块按设计要求连成一起进行测试,这种方法称为非渐增式测试。如下图1所示,先分别测试六个模块A、B、C、D、E、F,然后将它们连接到一起再进行测试。在测试某个模块X时,需要临时为它设计一个驱动模块和若干个支持模块,如下图2所示。驱动模块的作用是模拟 X 的调用模块,支持模块的作用则是模拟 X 的下层被调用模块。驱动模块和桩模块可以设计得非常简单,只要满足测试要求即可。 驱动 X 桩1 桩2 图1 图2
非渐增式的特点是: • 测试软件多:需要为每个模块编写驱动模块和支持模块,工作量较大; • 到最后才将所有模块相连在一起,模块之间的接口错误发现得晚; • 发现错误之后难以判断定位; • 测试所需的机器时间较少; • 可以并行测试所有模块,能够充分利用人力,加快工程进度。
(2)渐增式测试 采用每次增加一个模块的方法进行测试,即把下一个要测试的模块与已经测试好的那些模块结合起来进行测试,测试完成后再结合下一个要测试的模块继续测试,这种方式称为渐增式测试。渐增式测试实际上同时完成了模块测试和子系统测试。 渐增式测试又可分为自顶向下测试和自底向上测试两种方式。 ① 自底向上测试 自底向上测试是从系统结构的最低一层模块开始,进行组装和测试。若对上面图 1 采用自底向上的渐增式测试方式,则是先顺序地或并行地测试模块E、C、F,此时只需为每个模块临时设计驱动模块,而不需要支持模块。然后为模块B准备一个驱动模块,将模块 B 与模块E连接起来测试;再为模块 D 准备一个驱动模块将 D 与F连接起来测试;最后把模块 A 与其它各模块连接并测试。 自底向上测试不能在测试早期显现系统轮廓,总体结构只有加上最后一个模块才能体现。但由于每个分支的测试均从下层模块开始,所以不需要设计支持模块,而且比较容易设计测试用例。
② 自顶向下测试 自顶向下测试是从系统结构的最高一层模块开始,进行组装和测试。若对图 1采用自顶向下的渐增式测试方式,则是先测试模块A,此时需要为A设计支持模块模拟B、C、D;然后为模块B准备一个支持模块,将模块B与模块A连接起来测试;之后依次加入模块C、D、E和F。 自顶向下测试能在测试早期显现系统轮廓;其辅助模块只有支持模块,而不需要驱动模块。但这种方式不容易设计测试用例。
渐增式测试的特点是: • 所需的软件少:可利用测试过的模块代替部分驱动模块和支持模块,设计软件的工作量小; • 可以较早地发现模块之间的接口错误; • 如果有错,通常与最新加上去的模块有关,错误比较容易定位,利于排错; • 测试比较彻底:已经测试过的模块不断与新增加的模块一起测试,使之在新的条件下再次被检验; • 需要较多的机器时间;
3.系统测试 系统测试也称为总调,它是将经过测试的子系统装配成一个完整的系统来测试。在系统测试过程中,采用黑盒测试方法,主要解决各子系统之间的数据通信和数据共享问题以及验证系统是否满足用户需求。 进行系统测试时,不必按完全真实情况下的数据量进行,可采用一些精心设计的数据量较少的测试用例,这样不仅可以使处理工作量大为减少,而且更容易发现错误和确定错误所在范围。 系统测试完成后,下一步就可将原始系统手工作业方式下得出的结果正确的数据作为新系统的输入数据,进行真实运行。这时除了将结果与手工作业进行校核以外,还应考察系统的有效性、可靠性、安全性和效率等,为此,最好请用户一起参加测试工作。 通过对系统测试过程的描述,我们可知:进行模块测试时可发现程序设计中的错误;子系统测试可以发现系统设计中的错误;而到系统测试阶段才能发现系统分析中的错误。也就是说,越早出现的错误,发现得越晚。因此,系统分析与设计人员应该极其重视早期的工作。
第四节 系统切换 一、系统切换前的准备工作 1.数据准备 数据准备就是将原系统中的数据收集、整理、录入,转换成新系统文件的过程。数据准备包括以下几个方面的内容: (1)各种数据的归类整理要严格科学化,特别是对基础数据的统计工作,具体方法应程序化、规范化; (2)计量工具、计量方法、数据采集渠道和程序都应该固定,以确保新系统运行有稳定可靠的数据来源; (3)各类统计、数据采集、报表应标准化、规范化; (4)将各种准备好的数据装入新系统。
2.文档准备 系统测试完以后应有详细的说明文档,使用通用的语言说明系统各部分如何工作、维护和修改。系统说明文件大致可分以下三类: 系统一般性说明文件,包括用户手册、系统规程、特殊说明等; 系统开发报告,包括系统分析说明书、系统设计说明书、系统实施说明、系统利益分析报告等; 系统说明书和操作说明。 这套文档记录了系统的开发轨迹,实开发人员工作的依据,也是用户运行系统、维护系统的依据。
3.系统安装 系统的安装就是将计算机及各种设备真正地放置到工作场所,并使它开始运行。系统安装的工作场所的选择要依据系统的规模而定。对一个小系统而言,或许只要利用办公室的一角即可。但对一个大型系统来说,可能需要比较大的房间,对房间的有关情况要特别考虑。 而且计算机系统的安装应满足以下基本要求:使用专门的地板,让电缆通过地板孔道,连接中央处理机及各设备,保证安全;提供不中断电源,以免丢失数据。 用户和相关开发人员必须参与整个安装过程,确保所有的设备都能正确地安装到位。在系统安装以后,安装人员应该进行一些相关的测试,以确保这些设备符合原指标要求。安装完成后的各项测试工作,如模块测试、系统测试等,其目的一是验证安装的各种设备都能正常进行工作,二是确保所开发的系统能够在安装完成的设备上正常运行。
4.人员培训 在系统开发的早期阶段,就应该开始考虑制定一份培训计划。在这份计划中,首先要确定培训人员,然后要针对不同的人员确定培训内容。 需要进行培训的人员主要有以下三类: (1)事务管理人员 新系统能否顺利运行并获得预期目标,与事务管理人员(或主管人员)的理解和支持有密切的关系。形式:可以通过讲座、报告会的形式对事务管理人员进行培训。培训的主要内容有:新系统的目标、功能;系统的结构及运行过程;对企业组织机构、工作方式等产生的影响;采用新系统后,对职工必须学会新技术的要求;今后如何衡量任务完成情况等。
(2)系统操作员 系统操作员是管理信息系统的直接使用者,统计资料表明,管理信息系统在运行期间发生的故障,大多数是由于使用方法错误而造成的。所以,对用户系统操作员的培训应该是人员培训工作的重点。 对系统操作员的培训是与编程和测试工作同时进行的,应该给系统操作员提供比较充分的培训时间。其培训的主要内容有:必要的计算机硬、软件知识;键盘指法、汉字输入等训练;新系统的工作原理;新系统输入方式和操作方式;简单出错的处置知识;运行注意事项等。 (3)系统维护人员 对于系统维护人员来说,除了要求具有较好的计算机硬、软件知识外,必须对新系统的原理和维护知识有较深刻的理解。在较大的企业或部门中,系统维护人员一般由计算机中心或计算机室的计算机专业技术人员担任。对于系统维护人员培训的最好途径,就是让他们直接参与系统的开发工作,这样有助于他们了解整个系统的全貌,为今后的工作打下良好的基础。
新系统 原有系统 新系统 原有系统 原有系统 新系统 二、系统切换方式 系统切换是指用新的信息系统代替原有系统的一系列过程,其最终目的是将信息系统完全移交给用户使用。为了保证原有系统有条不紊的、顺利转移到新系统,在系统切换前应仔细拟定方案和措施,确定具体的步骤。系统的切换方式通常有三种,如下图所示。 (A)直接转换方式 (B)平行转换方式 (C)分段转换方式
1.直接切换 直接切换就是在确定新系统运行准确无误时,在一个特定的时刻,启用新系统,原有系统停止运行。这种方式适用于新系统不太复杂、数据不很重要或原有系统完全不能使用的场合。 使用直接切换方式时,人力和费用最少,但是风险比较大。无论测试、测试和培训多么完全和细致,系统运行后总可能会遇到一些没有遇到过的困难或情况。一旦新系统无法运行,则会使影响正常工作。所以新系统在切换之前必须经过详细测试并经严格测试。同时,切换时应做好准备,万一新系统不能达到预期目的时,须采取相应措施。此外,采用这种切换方式,管理层还要仔细慎重选择切换的时间。