第八章系统实施、测试、运行与维护8.3系统测试一、测试概念为了发现错误而有控制地执行程序的过程。目的:是发现错误,而不是证明程序没有错误。二、系统测试的类型1、模块测试(即单元测试)2、联合测试(即联调,方法:自顶向下、自底向上)3、系统测试(软、硬件及人员作为整体的测试)4、验收测试(以用户为主,输入实际数据进行)8.3系统测试三、测试的原则1、尽量避免原开发人员参与测试;2、应尽早地和不断地进行测试;3、测试用例应由测试输入数据和对应的预期输出结果组成。4、在设计测试用例时,不仅应当包括合理的输入数据,而且也应当包括不合理的输入数据。5、测试报告应长期保存。8.3系统测试四、测试方法人工测试:个人复查、会审、走查。机器测试:黑盒法:不考虑程序内部的逻辑结构,仅依据需求规格说明书,检查程序功能是否符合要求。主要发现以下错误:是否有错误或遗漏的功能能否输入,输出是否正确是否出现运行错误(初始化、运行中、终止)运行性能是否满足要求常用方法:等价分类法、边界值分析法白盒法:根据一个软件的内部控制结构,测试是否依据设计正确地执行。查看检查点状态是否与预期的值一致。常用方法:语句覆盖、判断覆盖、条件覆盖、条件组合覆盖、路径覆盖。8.3系统测试(一)黑盒测试等价分类法:根据规格说明书,将测试用例划分为有效等价类(合理的有意义的数据)和无效等价类。从等价类中选择代表值进行测试。边界值测试法。程序往往在处理边缘情况时发生错误。边界值的概念是一个广义的概念。有可能为:(1)数值取值的边界;(2)数据记录的边界;(3)文件记录的边界等。8.3系统测试(二)白盒测试1)语句覆盖所设计的测试用例使得程序中的每条语句至少能执行一次。测试用例:A=2,B=0,X=3检错能力弱8.3系统测试2)判断覆盖指设计测试用例使程序中每个判断的取“真”值和取“假”值的每一个分支至少通过一次。测试用例:A=3,B=0,X=1(acd)A=2,B=1,X=3(abe)8.3系统测试3)条件覆盖指执行足够的测试用例,使得判断中的每个条件的可能取值至少被执行一次。测试用例:A=2,B=0,X=4A=1,B=1,X=1程序共有四个条件:A1,B=0,A=2,X1第一个判断条件的取值有:A1,A≤1,B=0,B≠0第二个判断条件的取值有:A=2,A≠2,X1,X≤1条件覆盖比判断覆盖严格,但满足条件覆盖不一定满足判断覆盖。如测试用例:A=1,B=0,X=3(abe)和A=2,B=1,X=1(abd)8.3系统测试4)条件组合覆盖指执行足够的测试用例,使得每个判断的所有可能的条件取值组合至少执行一次。测试用例:A=2,B=0,X=4A=2,B=1,X=1A=1,B=0,X=2A=1,B=1,X=1第一个判断条件组合有:(A1,B=0)(A1,B≠0)(A≤1,B=0)(A≤1,B≠0)第一个判断条件组合有:(A=2,X1)(A=2,X≤1)(A≠2,X1)(A≠2,X≤1)8.3系统测试5)路径覆盖指执行足够的测试用例,使它覆盖程序中所有可能的路径。路径有:abd,ace,abe,acd测试用例:A=2,B=0,X=3(ace)A=1,B=0,X=1(abd)A=2,B=1,X=1(abe)A=3,B=0,X=1(acd)路径多的程序不宜使用。8.3系统测试五、排错1、概念:指确定错误的位置和性质,并改正错误。又称调试。2、常用方法1)强行排错法(试探法)猜想大概位置,通过输出相关数据查错。2)回溯法(跟踪法)人工沿控制流程进行跟踪3)归纳法(假设验证法)分析输入与输出数据的规律,提出出错假设,进行测试,循环进行,最终确定位置。4)演绎法首先提出所有可能出错假设,按可能性大小,逐个测试,直到找到错误原因。8.4系统转换一、系统转换的基本条件系统转换是由现行系统的工作方式向所开发的管理信息系统工作方式的转换过程,也是系统的设备、数据、人员、组织机构等的转换过程。系统转换的基本条件:系统设备:系统实施前购置、安装、调试完毕。系统人员:系统转换前配齐并参与各管理岗位工作。系统数据:系统转换所需各种数据按照要求各式输入到系统之中。系统文件资料:用户手册、系统操作规程、系统结构与性能介绍手册。组织机构:已经改造和调整。8.4系统转换二、系统转换方式1、直接转换:在确定新的管理信息系统运行准确无误时,在某一时刻终止现行系统,启用新的管理信息系统。这种转换方式费用低,方法简单,但风险大。适合于处理过程不太复杂的小型简单系统或原系统无法再使用。2、并行转换:新的管理信息系统和现行系统并行工作一段时间,在新的管理信息系统运行准确无误时,替代现行系统。这种转换方式有利于减轻管理人员心理压力、安全性较好,但费用高。适合于处理过程复杂、数据重要的系统。3、分段转换:分阶段将新的管理信息系统的各个子系统替代现行系统。这种转换方式安全性较好,但费用高。适合于处理过程复杂、数据重要的大型复杂系统。一般多采用这种方式进行系统转换。8.5系统维护一、系统维护的概念系统维护是为了适应系统的环境和其他因素的变化、保证系统正常工作而对系统所进行的修改。在系统的整个生命周期内:2/3以上的经费用在维护上;在人力资源分布上,90%的软件人员从事系统维护工作。8.5系统维护二、系统维护的内容1、程序的维护(它是系统维护的主要工作)2、数据文件的维护3、代码的维护4、机器、设备的维护三、系统维护的类型1、更正性维护2、适应性维护3、完善性维护4、预防性维护8.5系统维护四、系统维护的管理(审批手续)1、提出修改要求2、领导批准3、分配任务4、验收成果5、登录修改情况8.5系统维护五、修改程序的副作用1、修改代码的副作用——引入错误2、修改数据文件的副作用——引入数据结构、类型不匹配类错误3、对文档的影响——功能、性能、缺省条件、错误信息等描述与程序不一致。措施:1、按模块把修改分组2、按自顶向下地顺序进行修改3、每次仅修改一个模块4、根据已修改模块确定关联模块,从而进行必要修改。5、文档进行必要的修改。