版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,第八章 系统实施,重点:程序设计与模块调试。 要求:通过本章的学习,要使学生了解进行程序设计与系统测试的重要性,掌握模块调试、子系统调试、总调试和系统调试、系统转换的方法。,2,8.1 系统实施概述,当系统分析与系统设计的工作完成以后,开发人员的工作重点就从分析、设计和创造性思考的阶段转入实践阶段。在此其间,将投入大量的人力、物力及占用较长的时间进行物理系统的实施、程序设计、程序和系统调试、人员培训、系统转换、系统管理等一系列工作,这个过程称为系统实施。 这一阶段要把系统分析阶段建立的物理模型转换为可实际运行的物理系统。一个好的设计方案,只有经过精心实施,才能带来实际效益。因此,系统实施阶
2、段的工作对系统的质量有着十分直接的影响。,3,1、系统实施阶段的目标,在系统分析与与系统设计的阶段中,开发人员为新系统设计了它的逻辑模型和物理模型。系统实施阶段的目标就是把系统设计的物理模型转换成可实际运行的物理系统。 系统实施阶段既是成功地实现新系统的阶段,又是取得用户对新系统信任的关键阶段。,4,2、系统实施阶段的任务,系统实施是开发信息系统的最后一个阶段。这个阶段的任务,是实现系统设计阶段提出的物理模型,按实施方案完成一个可以实际运行的信息系统,交付用户使用。 系统设计报告详细规定了系统的结构,规定了各个模块的功能、输人和输出,规定了数据库的物理结构。这是系统实施的出发点。如果说研制信息
3、系统是盖一幢大楼,那么系统分析与设计就是根据盖楼的要求画出各种蓝图,而系统实施则是调集各种人员、设备、材料,在盖楼的现场,根据图纸按实施方案的要求把大楼盖起来。,5,系统实施阶段的任务,系统实施是一项复杂的工程,管理信息系统的规模越大,实施阶段的任务越复杂。一般来说,系统实施阶段主要有以下几个方面的任务: 1按总体设计方案购置和安装计算机网络系统; 2建立数据库系统; 3软件准备与程序设计; 4输入基础数据,进行系统测试; 5人员培训,系统转换,试运行。,6,8.2 程序设计,程序设计的主要依据是系统设计阶段的HIPO图以及数据库结构和编程代码设计。 程序调试的目的是要使用计算机语言实现系统设
4、计中的每一个细节。 编程的目的是为了实现开发者在系统分析和系统设计中所提出的管理方法和处理构想,编程不是系统开发的目的。在编程实现时。建议尽量借用已有的程序和各种开发工具,尽快、尽好地实现系统。,7,一、衡量编程工作指标,从目前的技术发展来看,衡量编程工作的指标大致开分为5个方面: 它可分解为两个方面的内容:一是程序或系统的安全可靠性;如数据存取的安全可靠性,通讯的安全可靠性,操作权限的安全可靠性。另一个方面是程序运行的可靠性,这一点只能靠程序调试时严格把关来保证编程工作质量。,可靠性(Reliability):,8,一般从用户的角度来审查系统各部分是否都非常方便实用。它是系统今后能否投入实际
5、运行的重要保证。,即系统的划分、书写格式、变量的命名等等都是按统一规范进行的。这对于今后程序的阅读、修改和维护都是十分必要的。 即程序清晰,没有太多繁杂的技巧,能够使他人容易读懂。它对于大规模过程化开发软件非常重要。,实用性(Suability) :,规范性(Standardability):,可读性(Readability):,9,即程序各部分相互独立,没有调子程序以外的其它数据关联。也就是说不会发生那种在维护时,牵一发动全身的连锁反应。,一般一个规范性、可读性、结构划分都很好的程序模块,它的可维护性也是比较好的。,可维护性(maintainability):,10,二、程序设计方法,我们推
6、荐使用现有软件工具的方法,这样做不但可以减轻开发的工作量,而且可以使系统开发过程规范,功能强,易于修改和维护。,1.结构化方法 2.原型法 3.面向对象方法,11,1、结构化程序设计方法,这种方法就是按照HIPO图的要求,用结构化的方法来分解内容和设计程序。在结构化程序设计方法的内部它强调的是自顶向下地分析和设计,而在外部它强调自底向上地实现整个系统。它是当今程序设计的主流方法。 若遇到某些开发过程不规范,模块划分不细,或因特殊业务处理而需要模块程序量较大时,结构化程序设计方法仍然是一种非常有效的方法。,12,结构化程序设计方法主要强调以下3点:,模块内部程序的各部分要自顶向下地结构划分; 各
7、程序部分应按功能组合; 各程序部分的联系尽量使用调用子程序(CALLRETURN)方式,不用或少用GOTO方式。,13,2、速成原型式的程序开发方法,这种开发方法是 首先将HIPO图中类似带有普遍性的功能模块集中,如菜单模块、报表模块、查询模块、统计分析和图形模块等。 寻找有无相应和可用的软件工具,若有则使用这些工具生成这些程序模型原型。 否则,则可考虑开发一个能够适合各子系统情况的通用模块。,14,3、面向对象程序设计方法,面向对象的程序设计方法一般应与OOD所设计的内容相对应。它实际上是一个简单、直接的映射过程,即将OOD中所定义的范式直接用面向对象的程序(OOP),如C,Smalltal
8、k,Visual C等来取代即可。,15,三、常用的编程工具,目前市场上能够提供系统选用的编程工具十分丰富。它们不仅在数量和功能上突飞猛进,而且在内涵的拓展上也日新月异,为我们开发系统提供了越来越多、越来越方便的实用手段。 一般比较流行的软件工具分为6类:一般编程语言,数据库系统,程序生成工具、专用系统开发工具、客户/服务器(client/Server,C/S)型工具以及面向对象的编程工具。,16,1、常用编程语言类,它是指由传统编程工具发展而来的一类程序设计语言。通常有:C语言、C语言、COBOL语言、PL/1语言、PROLOG语言、OPS语言等等。 这些语言一般不具有很强的针对性,它只是提
9、供了一般程序设计命令的基本集合,因而适应范围很广,原则上任何模块都可以用它们来编写。 缺点:其适应范围广是以用户编程的复杂程度为代价的,程序设计的工作量很大。,17,2、数据库类,它是信息系统中数据存放的中心和整个系统数据传递和交换的枢纽。目前市场上提供的主要有两类:xBASE系统(以微机关系数据库为基础)和大型数据库系统。 xBASE系统:它主要是指以微机为基础所形成的关系数据库及其程序开发语言。典型产品代表有:dBASE-II,III, IV,FoxBASE以及FoxPro等各种版本。,18,大型数据库系统:指规模较大、功能较齐全的大型数据库系统。,目前较为典型的系统有:ORACLE系统,
10、SYBASE统,INGRES系统,INFORMAX系统,DB2系统等等。 这类系统的最大特点是功能齐全,容量巨大,适合于大型综合类数据库系统的开发。在使用时配有专门的接口语言,可以允许各类常用的程序语言(称之为主语言)任意地访问数据库内的数据。,19,3、程序生成工具类,它是指第四代程序(4GLs)生成语言,是一种常用数据处理功能和程序之间的对应关系的自动编程工具。 较为典型的产品有:AB(Application Builder应用系统建造工具),屏幕生成工具、报表生成工具以及综合程序生成工具,即有FoxPro, Visual BASIC, Visual C+, CASE, Power Bui
11、lder(PB)等。 目前这类工具发展的一个趋势是功能大型综合化,生成程序模块语言专一化。,20,4、系统开发工具类,它是在程序生成工具基础上进一步发展起来的,它不但具有4GLs的各种功能,而且更加综合化、图形化,使用起来更加方便。 目前主要有两类:专用开发工具类和综合开发工具类。 专用开发工具类:是指对某应用领域和待开发功能针对性都较强的一类系统开发工具。,21,综合开发工具类:它是针对一般应用系统和数据处理功能的一类系统开发工具。其特点是可以最大限度地适用于一般应用系统开发和生成。,如专门用于开发查询模块的SQL,专门用于开发数据处理模块的SDK(Structured Developmen
12、t Kits),专门用于人工智能和符号处理的Prolog for Windows, 专门用于开发产生式规则知识处理系统的OPS(Operation Process System)等等。,22,在实际开发系统时,只要我们再自己动手将特殊数据处理过程编制成程序模块,则可实现整个系统。,常见的系统开发工具有:FoxPro, dBASE-V, Visual BASIC, Visual C+, CASE, Team Enterprise Developer等等。 这种工具虽然不能帮用户生成一个完整的应用系统,但可帮助用户生成应用系统中大部分常用的处理功能。,23,5、客户/服务器(C/S)工具类,它是采
13、用了人类在经济和管理学中经常提到的“ 专业化分工协作”的思想而产生的开发工具。 它是在原有开发工具的基础上,将原有工具改变为一个 个既可被其它工具调用的,又可以调用其它工具的“ 公共模块”。 在整个系统结构方面,这类工具采用了传统分布式系统的思想,产生了前台和后台的作业方式,减轻了网络的压力,提高了系统运行的效率。,24,常用的C/S工具有:,FoxPro, Visual BASIC, Visual C+, Excel, Powerpoint, Word, Delphi C/S, Power Builder Enterprise, Team Enterprise Developer等等。 这类
14、工具的特点是它们之间相互调用的随意性。例如在FoxPro中通过DDE(dynamic Data Exchange, 动态数据交换)或OLE(Object linking and Embedding,对象的链接和嵌入)或直接调用Excel, 这时FoxPro应用程序模块是客户,Excel应用程序是服务器。,25,6、面向对象编程工具类,它主要是指与OO方法相对应的编程工具。目前常见的工具有:C(或VC),Smalltalk。这一类针对性较强,且很有潜力,其特点是必须与整个OO方法相结合。,26,四、管理信息系统的基本程序模块,一个管理信息系统的软件由很多程序模块组成,这些程序模块可以归纳成为几种
15、基本类型包括 控制模块 输入及校验模块 修改或更新模块 分类合并模块 计算模块 查询、检索模块、输出模块和预测、优化模块等,其结构如P199图8-2所示。,27,图8-2 基本程序模块结构,28,8.3 系统测试,P200,29,一、测试的意义,在管理信息系统开发周期的各个阶段都不可避免地会出现差错。 程序设计阶段也不可避免还会产生新的错误。据统计,一个较好的程序员,在他交付的程序中,错误率为1,而一个水平低的程序员可能每个语句都含有错误。 对系统进行测试是不可缺少的,这是保证系统质量的关键步骤。通过测试可以尽早发现和纠正错误,减少错误造成的损失。 统计资料表明,对于一些较大规模的系统来说,系
16、统测试的工作量往往占系统开发总工作量的40%以上。,30,握奇公司的例子,握奇公司生产的SIM芯片经过中国电信五家公司试验成功,可在国外的正规测试中出现隐性错误,一致不能投入市场,造成100多万元的损失。目前该公司专门成立测试部,对程序进行测试。,31,二、测试的目的,发现其中的错误并及时纠正,所以在测试时应想方设法使程序的各个部分都投入运行,力图找出所有错误。错误多少与程序质量有关。 测试通过也不能证明系统绝对无误,只不过说明各模块、各子系统的功能和运行情况正常,相互之间连接无误,系统交付用户使用以后,在系统的维护阶段仍有可能发现少量错误,这也是正常的。,32,三、测试的策略,先看一个例子。
17、 例:P201图8-3所示的是一个小程序的控制流程图,该程序由一个循环语句组成,循环次数可达20次,循环体中是一组嵌套的IF语句 ,其可能的路径有五条,所以从程序的入口A到出口B的路径数高达5201014。如果编写一个测试例子,并用它来测试这个程序的一条路径要化一分钟,则测试每一条路径就需要二亿年。,33,1、测试采取的策略,这个例子说明,要想通过“彻底”地测试找出系统的全部错误是不可能的,因此,测试阶段要考虑的基本问题就是“经济性”了。 测试采取的策略是:在一定的开发时间和经费的限制下,通过进行有限步操作或执行测试用例,尽可能多发现一些错误。,34,2、测试的基本原则,(1)测试用例一般由“
18、输入数据”和“预期的输出结果”组成。 这就是说,在执行程序之前应该对期望的输出有很明确的描述,这样,测试后可将程序的输出同它仔细对照检查。若不事先确定预期的输出,可能把似乎是正确而实际是错误的结果当成是正确结果。,35,(2)不仅要选用合理的输入数据进行测试,还应选用不合理的甚至错误的输入数据。 许多人往往只注意前者而忽略了后一种情况,为了提高程序的可靠性,应认真组织一些异常数据进行测试,并仔细观察和分析系统的反应。,36,(3)除了检查程序是否做了它应该做的工作,还应检查程序时候做了它不该做的事情。 例如除了检查工资管理程序是否为每个职工正确地产生了一份工资单以外,还应检查它是否还产生了多余
19、的工资单。,37,(4)应该长期保留所有的测试用例,直至该系统被废弃不用为止。 在管理信息系统的测试中,设计测试用例是很费时的,如果将用过的例子丢弃了,以后一旦需要再测试有关的部分时(例如技术鉴定系统维护等场合)就需要再花费很多人工。 通常,人们往往懒得再次认真地设计测试用例,因而下次测试时很少有初次那样全面。如果将所有测试用例作为系统的一部分保存下来,就可以避免这种情况的发生。,38,四、测试的方法,1.测试过程 2.测试用例 3.设计测试用例的基本目标 4.设计测试数据的技术 黑盒测试技术 白盒测试技术,39,1、测试过程,测试包括三方面: (1)设计“测试用例” (2)执行被测程序 (3
20、)分析执行结果找出错误。,40,2、什么是测试用例,设计测试用例是开始程序测试的第一步,也是有效地完成测试工作的关键。 所谓测试用例就是以发现程序错误为目的而精心设计的一组测试数据,包括预定要测试的功能,应该输入的测试数据和预期的结果。可以写成 测试用例输入数据期望结果,41,3、设计测试用例的基本目标,设计测试用例最最困难的问题是设计测试的输入数据。 因为不可能进行穷尽的测试,所以,选用少量“最有效的”测试数据,做到尽可能完备的测试就很重要了。 因此,设计测试用例的基本目标就是确定一组最可能发现多个错误或多类错误的测试数据。,42,4、设计测试数据的技术,已经研究出许多设计测试数据的技术,这
21、些技术各有优缺点,没有哪一种是最好的,更没有一种可以代替其余所有技术;同一种技术在不同应用场合效果可能相差很大,因此,通常需要联合使用多种测试数据。 按照在设计测试用例时是否涉及程序的内部结构,设计测试数据技术主要有白盒测试和黑盒测试两种方法。 黑盒测试有等价划分、边界值分析及错误推测法等方法; 白盒测试有逻辑覆盖法等。 通常设计测试数据的做法是:用黑盒法设计基本的测试用例,再用白盒法补充一些方案。,43,5、黑盒测试技术,黑盒测试的测试者把被测程序看成一个黑盒,完全不关心程序的内部结构。设计测试用例时,仅以程序的外部功能为根据。一方面检查程序能否完成一切应做的事情,另一方面要考察它能否拒绝一
22、切不应该做的事情。由于黑盒测试着重于检查程序的功能,所以也称为功能测试。 常用的方法有: (1)等价划分 (2)边界值分析 (3)错误推测 (4)组合输入,44,(1)等价划分,等价划分是黑盒测试的一种技术。前面讲过,穷尽的黑盒测试需要使用所有有效的和无效的输入数据来测试程序,通常这是不现实的。因此,只能选取少量有代表性的输入数据,以期用较小的代价暴露出较多的程序错误。 这种方法是把被测试的程序的所有可能的输入数据(有效的和无效的)划分成若干个等价类,把无限的随机测试变成有针对性的等价类测试。按这种方法可以合理地做出下列假定:每类中的一个典型值在测试中的作用与这一类中所有其他值的作用相同。因此
23、,可以从每个等价类中只取一组数据作为测试数据。这样可选取少量有“代表性”的测试数据,来代替大量相类似的测试,从而大大减少总的测试次数。,45,等价类的测试例子,设计等价类的测试用例一般分为两步进行,第一步:划分等价类并给出定义; 第二步:选择测试用例。 选择的原则是:有效等价类的测试用例尽量公用,以期进一步减少测试的次数;无效等价类必须每类一例,以防漏掉本来可能发现的错误。,46,例:,某城市的电话号码由三部分组成。这三部分的名称和内容分别是 地区码:空白或三位数字; 前 缀:非0或1开头的三位数; 后 缀:四位数字。 假定被测试的程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的号码
24、,就可用等价分类法来设计它的测试用例。,47,划分等价类的第一步:,划分等价类,包括4个有效等价类,11个无效等价类。 下表列出了划分的结果。 在每一等价类之后加有编号,以便识别。,48,49,第二步:确定测试用例。,表8-1中有4个有效等价类,可以公用以下 两个测试用例: 测试数据 测试范围 期望结果 ( ) 2782345 等价类(1),(3),(4) 有效 (835) 8059321 等价类(2),(3),(4) 有效,50,对11个无效等价类,要选择11个测试用例,测试数据 测试范围 期望结果 (20A) 1234587 无效等价类(5) 无效 (33 ) 2345878 无效等价类(
25、8) 无效 (7777) 3458789 无效等价类(7) 无效 (777) 34A8789 无效等价类(8) 无效 (234) 0458789 无效等价类(9) 无效 (777) 1458789 无效等价类(10) 无效 (777) 348789 无效等价类(11) 无效 (777) 23458789 无效等价类(12) 无效 (777) 345878A 无效等价类(13) 无效 (777) 345878 无效等价类(14) 无效 (777) 34558789 无效等价类(15) 无效,51,(2)边界值分析方法,经验表明,处理边界情况时程序最容易发生错误。例如,许多程序错误出现在下标、纯量
26、、数据结构和循环等等的边界附近。因此,设计使程序运行在边界情况附近的测试方案,暴露出错误的可能性更大一些。 例如某个输入条件说明了值的范围是-1.010,则可以选-1.0,1.0和-1.0011.001测试用例。 再如一个输人文件可以有1-255个记录,则分别设计有0个、1个、255个、256个记录的输人文件,等等。,52,使用边界值分析方法设计测试用例首先应该确定边界情况,这需要经验和创造性,通常输入等价类和输出等价类的边界,就是应该着重测试的程序边界情况。选取的测试数据应该刚好等于、刚刚小于和刚刚大于边界值。也就是说,按照边界值分析法,应该选取刚好等于、稍小于和稍大于等价类边界值的数据作为
27、测试数据,而不是选取每个等价类内的典型值作为测试数据。,53,通常设计测试用例时总是联合使用等价划分和边界值分析两种技术。例如,税法规定个人的收入所得税从超过800元开始征收。如果用一个程序来计算税款,则“收入800”就是一个判定条件,满足条件的人免税,否则对超出800元的部分征税。在选择测试用例时,可以用300、900两个测试数据分别代表免税和征税两个等价类,还可以就800这个边界值作为测试数据。,54,边界值分析方法,把边界值的概念扩大,可以设计出种种的测试用例。例如对文件只处理第一个记录、中间一个记录、最后一个记录、不存在的记录等等。下面是一些测试用例: (1)新记录 在文件第一个记录之
28、前加一个记录; 在文件最后一个记录之后加一个记录; 插人的新记录对应实体是实际不可能存在的; 记录的域不全。,55,边界值分析方法,(2)处理业务 处理文件的第一个记录; 处理文件的最后一个记录; 处理中间的一个记录; 处理同一程序刚建立的记录; 连续处理相邻记录; 试图处理一个不存在的记录; 处理业务使某个数值超过常规(如库存数为负、或域值上溢汕 对某些关键数据输入有错误的数据; 同一业务处理过程中造成多重例外和出错。,56,边界值分析方法,(3)记录删除 删去文件的第一个记录; 删去文件的最后一个记录; 试图删去不存在的记录; 连续删去多个记录; 删去一个记录,并试图处理这个记录。,57,
29、边界值分析方法,(4)试验逻辑 检查所有能产生最大值、最小值、平均值的计算; 除式中除数为零; 数据城放最小数或最大数; 数据域填入允许值之外的数。,58,边界值分析方法,(5)报告程序 负号是否全打印出来; 全9是否订金; 全0看高位压缩情况; 交叉结算平衡结果是否有报告。 从以上列举的这些例子可以看出,这种方法表面上看起来很简单,但许多程序的边界情况极其复杂,要找出适当的测试用例,需要有一定的经验和创造性。使用得当,这种方法是相当有效的。,59,(3)错误推测,使用边界分析法和等价划分技术,可以帮助开发人员设计具有代表性的,容易暴露程序错误的测试用例。但是,不同类型不同特点的程序通常又有一
30、些特殊的容易出错的情况。 此外,有时分别使用每组测试数据时程序都能正常工作,这些输入数据的组合却可能检测出程序的错误。一般说来,即使是一个比较小的程序,可能的输入组合数也往往十分巨大,因此必须依靠测试人员的经验和直觉,从各种可能的测试用例中选出一些最可能引起程序出错的方案。对于程序中可能存在哪类错误的推测,是挑选测试用例时的一个重要因素。,60,错误推测,错误推测法在很大程度上靠直觉和经验进行。它的基本想法是列举出程序中可能有的错误和容易发生错误的特殊情况,并且根据它们选择测试用例。对于程序中容易出错的情况也有一些经验总结出来,例如,输入数据为零或输出数据为零往往容易发生错误;如果输入或输出的
31、数目允许变化(例如,被检索的或生成的表的项数),则输入或输出的数目为0和1的情况(例如,表为空或只有一项)是容易出错的情况。还应该仔细分析程序规格说明书,注意找出其中遗漏或省略的部分,以便设计相应的测试用例,检测程序员对这些部分的处理是否正确。,61,错误推测,例如,当对一个排序程序进行测试时,可先用边界值分析法设计测试用例: 输入表为空表; 输入表中仅有一个数据; 输入表为满表。 再用错误推测法补充一些例子: 输入表已经排好了序: 输入表的排序恰与所要求的顺序相反(如程序功能为由小到大排序,输入表为由大到小排序); 输入表中的所有数据全部相同。 此外,经验说明,在一段程序中已经发现的错误数目
32、往往和尚未发现的错误数目成正比。因此,在进一步测试时要着重测试那些已发现较多错误的程序段。,62,(4)组合输入,等价划分法和边界值分析法都只孤立地考虑各个输入数据的测试功效,而没有考虑多个输入数据的组合效应,可能会遗漏了输入数据易于出错的组合情况。 选择输入组合的一个有效途径是利用判别表和判定树为工具,列出输入数据各种组合与程序应作的动作(及相应的输出结果)之间的对应关系,然后为判定表的每一列至少设计一个测试用例。,63,6、白盒测试技术,白盒测试时,测试者对被测试程序的内部结构是清楚的。他从程序的逻辑结构人手,按照一定的原则来设计测试用例,设定测试数据。由于被测程序的结构对测试者是透明的,
33、因此有些书本又称这类测试为玻璃盒测试或逻辑覆盖。,64,白盒测试,有选择的执行程序中某些最有代表性的通路是对穷尽测试的唯一可行的替代方案。 白盒测试是对一系列测试过程的总称,这组测试过程逐渐进行越来越完整的通路测试。,65,白盒测试技术,(1) 语句覆盖 (2) 判定覆盖 (3)条件覆盖 (4) 判定/条件覆盖 (5) 条件组合覆盖,66,五、测试与调试,一个管理信息系统通常由若干子系统组成,每个子系统又由若干模块(程序)组成。所以,可把测试工作分为模块(程序)测试、分调(子系统测试)和总调(系统测试)三个层次,测试过程依次是模块测试、分调、总调,如图8-5所示,最后,进行的是系统测试(试运行
34、)。,67,图8-5 系统测试的步骤,68,1模块测试,模块(程序)测试的目的是保证每个模块本身能正常运行,在该步测试中发现的问题大都是程序设计或详细设计中的错误。对于模块测试,一般分成人工走通和上机测试两步进行。,69,人工走通,人工走通就是打印出源程序,然后参照设计说明书(包括程序框图)的要求把呈现在纸上的程序“走”一遍。程序的错误可分成语法错误和逻辑错误两种情况,一般只要认真检查就可以发现绝大部分的语法错误和部分逻辑错误。而用计算机进行交互测试时,每发现一个错误后要先改正错误才能继续测试,速度要明显降低。所以,决不要一开始就将源程序键入计算机而忙于立即执行,而应先在纸上走通。,70,上机
35、测试,当人工走通以后,就可以上机测试了。总的来看,语法错误比较容易发现和修改(因为高级语言都具备语法检查功能,但是检查的全面性不尽相同)。 为了有效地发现并改正逻辑错误,一方面,可认真设计测试用例,另一方面,要充分利用所用高级语言提供的测试机制或软件工具。,71,注意的问题,程序的检查最好请审查小组或其他开发者。因为程序编制者在审查时往往会犯编程时同样的错误,而查不出某些问题。 但这只是理想的情况,由于人力、财力所限,目前的测试基本上还是由编程者本人进行。按各层次人员的分工,模块测试应由操作员或程序员来进行。,72,2分调,分调也称子系统测试,就是把经过测试的模块放在一起形成一个子系统来测试。
36、主要是测试各模块之间的协调和通信,即重点测试子系统内各模块的接口。例如,数据穿过接口时可能丢失;一个模块对另一个模块可能存在因疏忽而造成的有害影响;把若干子功能结合起来可能不产生预期的结果。 如何将若干个模块连接成一个可运行的子系统,通常有两种方法。一种方法是先分别测试每个模块,再把所有模块按设计要求连成一起进行测试,这种方法称为“非渐增式”测试。另一种方法是把下一个要测试的模块同已经测试好的那些模块结合起来进行测试,测试完成后再把下一个应该测试的模块结合进来测试,这种方式称为“渐增式”,这种方式实际上同时完成了模块测试和子系统测试。,73,(1)非渐增式,如图8-6所示,非渐增式是先分别测试
37、六个模块A、B、C、D、E、F,然后将它们连接到一起再进行测试。若采用这种方式则在测试某个模块X时,需要临时为它设计一个驱动模块和若干个桩模块,如图8-7所示。,74,驱动模块的作用是模拟X的调用模块,桩模块的作用则是模拟X的下层模块。例如,测试图8-6中的模块B时,要为它设计一个驱动模块,其作用是将测试数据传送给模块B并接收和显示B产生的结果,同时,因B要调用模块E,所以还需设计一个桩模块,用来接受B的控制并模拟E的功能。这儿的临时模块(驱动模块和桩模块)可以设计的非常简单,只要满足测试要求即可。,75,(2) 渐增式,对渐增式来说,又可分为“由顶向下”、“由底向上”等多种方式进行测试。若对
38、图8-6采用“由底向上”的渐增式方式,则是先顺序地或并行地(例如由三人完成)测试模块E、C、F,此时只需为每个模块临时准备驱动模块,但不需要桩模块,然后为模块B准备一个驱动模块,将模块B与模块E连接起来测试,再为模块D准备一个驱动模块将D与F连接起来测试,最后把模块A与其它各模块连接并测试。,76,两种测试方法的比较,对这两种测试方法进行比较可以看到: 非渐增式需要更多的人工(如准备较多的控制模块和桩模块),而渐增式则可利用已经测试过的模块(如采用“由底向上”时可不需桩模块)。 渐增式可以较早地发现模块界面之间的错误,非渐增式则要到最后将所有模块相连时才能发现这类错误。,77,渐增式有利于排错
39、。如果界面有错,它通常与最新加上去的那个模块有关,错误比较容易定位,非渐增式则不然。 渐增式比较彻底。它以前面测试过的模块作为驱动模块或桩模块,所以这些模块将得到进一步的检查。,78,渐增式需要较多的机器时间。例如在图8-6中若采用“由底向上”的渐增式,则在测试模块A时,模块B、C、D、E、F也要执行。若用非渐增式,在测试模块A时只要执行用来模拟B、C、D的桩模块即可。当然,编写这些桩模块也需花费一定机器时间,所以可抵消一部分机器时间。 使用非渐增式可以并行(同时)同时所有模块,能充分利用人力,这对开发系统是很有意义的。,79,综上所述,可以认为渐增式测试方法较非渐增式要优越。尤其对管理信息系
40、统软件来说“由底向上”的渐增式方法是一种较为适合的测试方法。 当然,在测试一个实际系统时,并没有必要机械照搬上述某一些方法。例如,当把一个已经充分测试过的模块结合进来时,可以着重测试模块之间的接口,当一个没有充分测试过的模块结合进来时,则需要利用已测试过的模块充分测试它。,80,3总调,经过分调,已经把一个模块装成若干子系统并经充分测试。接着的任务是总调,也程为系统测试,它是经过测试的子系统装配成一个完整的系统来测试,用以发现系统设计和程序设计中的错误,验证系统的功能是否达到设计说明书的要求。,81,刚开始总调时,不必按完全真实情况下的数据量进行,可采用一些精心设计的数据量较少的测试用例,这样
41、不仅可以使处理工作量大为减少,而且更容易发现错误和确定错误所在范围。 什么样的系统是有效的呢?一般说来,当系统的功能和性能如同用户所合理地期待的那样,则系统是有效的。因为系统分析阶段产生的系统说明书,描述了用户的这种合理期望,所以它是系统有效性的标准。,82,4系统调试,总调完成后下一步就可将原始系统手工作业方式得出的结果正确的数据作为新系统的输入数据进行“真实”运行或称试运行,这时除了将结果与手工作业进行校核以外,还应考察系统的有效性、可靠性和效率。 为此,最好请用户一起参加系统测试工作。系统测试的关键是“真实”和全面。进行系统测试应该注重以下几点:,83,系统调试应该注重以下几点:,(1)
42、测试用例应该是由实际意义的数据组成的。可以请用户参与测试用例的设计。 (2)某些已经测试过的纯粹技术的特点可以不需再次执行。 (3)对用户特别感兴趣的功能或性能,可以增加一些测试。 (4)应该设计并执行一些与用户使用步骤有关的测试。,84,8.4 系统说明文件的组成,在系统测试完成后,应该编写、整理出一份详细和全面的系统说明书。该文件既可以提交用户作为今后使用、维护新系统的指导性文档,另一方面,该文件也是鉴定和验收新系统时不可少的技术资料。应此,应该充分重视系统说明文件的编写工作。 一般说来,系统说明文件可由以下各部分组成:,85,1系统一般性说明,(1)用户手册 给用户介绍系统全面情况,包括
43、系统目标、功能和性能的简要说明等。 (2)特殊说明 随着外部环境的变化而使系统作出相应调整等,这些是不断进行补充和发表的。,86,2系统开发报告,(1)系统分析报告 已在第六章作过介绍。 (2)系统设计报告 已在第七章作过介绍。 (3)系统实施说明 主要涉及到系统分调、总调过程中某些重要问题的回顾和说明;人员培训、系统转化的计划及执行情况。 (4)系统利益分析报告 主要涉及系统的管理工作和职工所产生的影响,系统的费用、效益分析等方面。,87,3程序资料,(1)整个系统程序的说明。 (2)系统的计算机系统流程图和程序流程图。 (3)源程序清单。 (4)输入输出样本。 (5)程序所有检测点的说明。
44、 (8)修改程序的手续规定。,88,4操作说明,(1)系统规程 系统总的规程,包括系统技术标准、编程、操作规程、监理规程等。 (2)操作说明 系统的操作顺序,各种参数输入条件,数据的备份和恢复操作方法以及系统维护的有关注意事项。 对于管理信息系统的说明文件的组成,目前还没有一个统一的标准。不少部门和组织都有各自的一套规定,但总的内容都在上述之内。,89,8.5 系统转换,在系统总调结束并完成测试工作的基础上,就可以进行系统转换的工作。系统转换就是按预定计划新系统代替原有系统的一系列过程,它的最终目的是将全部控制权移交给用户。 转换工作包括原有系统的数据文件向新系统文件转换,人员培训、设备和组织
45、结构的调整,有关资料和使用说明书移交给用户。管理人员和开发人员在系统转换中的任务是:确保系统尽可能平稳的过渡,使新系统尽快投入运行,逐步安全地取代原有系统的功能。,90,一、人员培训,为了使新系统能够按预期目标正常运行,对用户人员进行必要的培训是在系统转换之前不可忽视的一项工作。 管理信息系统是一个人机系统,它的正常运行需要很多人参加工作,将有许多人承担系统所需输入信息的人工处理过程,以及计算机操作过程。这些人通常来自现行系统,他们熟悉或精通原来的人工处理过程,但缺乏计算机处理的有关知识,为了保证新系统的顺利使用,必须提前培训有关人员。,91,需要进行培训的人员主要有以下三类: 事务管理人员
46、系统操作员 系统维护人员,92,1. 事务管理人员,新系统能否顺利运行并获得预期目标,在很大程度上与这些第一线的事务管理人员(或主管人员)有关系。因此,可以通过讲座、报告会的形式,向他们说明新系统的目标、功能说明系统的结构及运行过程,以及对企业组织机构、工作方式等产生的影响。对事务管理人员进行培训时,必须做到通俗、具体、尽量不采用与实际业务领域无关的计算机专业术语。例如,可以就他们最关心的以下问题展开对话:,93,事务管理人员,(1)管理信息系统能为我们干些什么? (2)采用新系统后,我们和我们的职工必须学会什么新技术? (3)采用新系统后,我们的机构和人员将发生什么变动? (4)今后如何衡量我们的任务完成情况? 大量事实说明,许多管理
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 政府单位采购规章制度
- 药品器械采购相关制度
- 外发采购流程管理制度
- 外协采购内部制度
- 国营企业采购制度
- 商品采购业务内控制度
- 敬老院采购内部控住制度
- 规范公司采购财务制度
- 学校自行采购装备制度
- 政务采购业务管理制度
- 2026年江苏经贸职业技术学院单招综合素质考试题库附答案详解
- 2026河北衡水恒通热力有限责任公司公开招聘工作人员28名笔试备考试题及答案解析
- 2026春统编版(新教材)小学道德与法治一年级下册(全册)各单元知识点复习课件
- 吉水县2026年面向社会公开招聘农村(社区)“多员合一岗”工作人员【146人】笔试备考试题及答案解析
- 2026年常州工业职业技术学院单招综合素质考试题库附答案详解(达标题)
- 2026届高考语文复习:古代诗歌鉴赏课件
- 《工程勘察设计收费标准》(2002年修订本)-完整版-1
- 有限公司450m3高炉项目初步设计安全专篇
- 热学李椿 电子
- 教学能力比赛决赛 《英语》教案
- 勘探监督手册测井分册
评论
0/150
提交评论