您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 管理信息系统-第9章 系统实施和维护
第九章系统实施与测试•主要内容:•系统实施步骤•软硬件购置•系统准备(人员、数据、设备安装)•测试1实施步骤硬件获取软件编程用户准备人员:聘用和培训机房、场所准备数据准备安装测试试运行系统切换用户验收、评价2系统软硬件、网络的购置1)硬件的获取•根据系统设计的指标要求制作采购的标书•邀请硬件供应商进行技术交流•选择资质好的厂商发放标书•评标•开标及商务谈判•签订合同•执行合同2)网络的获取•局域网络的建设和改造——新建网络——改造网络——自建或外包•广域网络的建设——传输网络的取得(传输方式的选择、线路的租赁)——网络设备的获取(与硬件同)——自建与承包给系统集成商2系统软硬件、网络的购置(续)3)软件工具的选取•选择开发方法•选择开发工具及数据库产品2系统软硬件、网络的购置(续)3系统准备1)用户准备•用户准备主要是指准备好信息系统的管理人员、使用人员等。•用户的培训内部培训与外部培训•信息系统的IT人员的招聘和培训2)场所准备新系统的工作场所(空调、电力、办公家具)3)数据准备•将原来的手工数据文件转化成计算机文件•将原来的不同格式的数据文件转换成新系统的格式4)安装将计算机设备、网络设备在信息系统场所安装、使其运转•模块测试(单调)•联合测试(联调)•系统测试(总调)4测试9.1测试的基本概念•测试目标•测试的基本原则•测试信息•测试的方法和技术•测试步骤一、软件测试的目标:•为了发现程序中的错误而执行程序的过程;•好的测试方案是极有可能发现迄今尚未发现的尽可能多的错误的测试方案;•成功的测试是发现了迄今尚未发现的错误的测试。测试是为了发现错误,不能证明程序正确。一般来说,单元测试可由程序员自己完成,而综合测试通常由测试小组来完成。1)软件开发成本软件产品最大的成本是检测软件错误、修正软件错误的成本。在整个软件开发中:测试工作量≥50%2)软件测试的目标(1)预防错误:几乎不可实现(2)发现错误:软件测试目的找错软件测试把证明程序无错当作测试目的不仅是不正确的,完全做不到的,而且对做好测试没有任何益处,甚至是十分有害的。软件测试要设法使软件发生故障,暴露软件错误测试的“成功”与“失败”:能够发现错误的测试是成功的测试,否则是失败的测试。“测试的目的是说明程序正确地执行它应有的功能”也是错误的。例:程序Triangle,输入三个整数,表示一个三角形的三个边长,该程序产生一个结果,指出该三角形是等边三角形、等腰三角形还是不等边三角形。为说明其能正确执行它的功能,可使用“测试用例”(3,4,5),(5,5,6),(6,6,6),程序都能给出正确结果,是否就可认为程序是正确的?2)软件测试的目标(续)3)测试与开发各阶段的关系决定软件与系统的配合关系需求分析概要设计详细设计编码单元测试集成测试系统测试测试阶段工作步骤:•单元测试:检验每个模块能否单独工作•集成测试:检验概要设计中模块接口设计问题•系统测试:以需求规格说明书为检验尺度测试可视为分析、设计、编码三个阶段的最终复审,以保证软件质量。3)测试与开发各阶段的关系(续)软件生存期各阶段间需保持的正确性用户要求用户:我要什么?运行结果计算机:程序运行得到的结果源程序程序员:我要让计算机怎么做?设计说明书设计员:我要让软件做什么?需求说明书分析员:我可以提供什么?12345理解正确性表达正确性理解正确性设计正确性表达正确性理解正确性编码正确性运行正确性输入正确性相符吗?软件测试不等于程序测试软件测试应贯穿于软件定义与开发的整个期间;据美国一家公司统计,查出的软件错误中,属于需求分析和软件设计的错误约占64%,属于程序编写的错误仅占36%。程序编写的许多错误是“先天的”。4)测试对象1基本原则•“尽早测试”应成为软件开发人员的座右铭–坚持软件开发各阶段复审,尽早发现错误•开发和测试队伍分别建立•测试用例应由输入数据和预期的输出结果两部分组成•特别注意测试发现错误较多的程序模块,要重点测试•程序修改后要回归测试•应长期保留测试用例,直至系统废弃二、测试的基本原则2“测试用例”设计•测试用例的构成要素输入数据+预期输出结果+测试功能说明+环境平台及运行条件•兼顾合理的输入和不合理的输入数据•不仅检查程序是否实现预期功能,还应检查程序是否作了不该做的事3程序测试举例例:程序Triangle,输入三个整数,表示一个三角形的三个边长,该程序产生一个结果,指出该三角形是等边三角形、等腰三角形还是不等边三角形。判断三角型的测试用例设计:输入数据预期结果(1)6;6;6等边(2)8;8;4等腰(3)4;5;6一般还应输入非法数据:0;7;9-7;3;5a;2;7等4软件错误分类•功能错(需求分析错误)•软件结构错•数据错•编码错•软件集成错•测试定义与测试执行错误三、软件测试信息流测试过程需要三类输入:软件配置:需求规格说明书软件设计说明书被测源程序代码测试配置:测试计划测试用例(测试数据)测试驱动程序测试工具软件测试信息流(续)软件配置测试配置测试测试工具结果分析排错可靠性分析测试结果错误预期结果出错率改正的软件预测的可靠性四、测试的方法与技术软件测试的策略和方法静态测试方法动态测试方法人工测试方法计算机辅助静态分析方法白盒测试方法黑盒测试方法穷举测试方法1静态测试基本特征是在对软件进行分析、检查和测试,不实际运行被测试的软件。静态测试对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。约可找出30~70%的逻辑设计错误。2动态测试通过运行软件来检验软件的动态行为和运行结果的正确性动态测试的两个基本要素:被测试程序测试数据(测试用例)2动态测试方法(续)(1)选取定义域有效值,或定义域外无效值(2)对已选取值决定预期的结果(3)用选取值执行程序(4)执行结果与(2)结果相比,和程序不符合有错1)模块测试–又称单元测试,在软件编码阶段进行,确认模块作为单元能够正常运行2)集成测试/联合测试–把经过测试的单元按一定顺序组装成为系统,进行测试,又称接口测试3)系统测试–将软件系统作为单一实体,在用户积极参与下以实际数据测试,测试的目的是验证系统能否达到SRS的要求,因此又称验收测试。五、测试步骤3)系统测试(续)–测试:由一个用户在开发环境下模拟实际操作环境运行程序系统•目的是评价软件产品的功能、可用性、可靠性、性能和支持,系统的界面的特色。•方法是由开发者在场记录系统出错情况及使用中存在的问题。3)系统测试(续)–测试:由系统一个或多个用户在实际操作环境中运行系统•目的是评价系统的可支持性,包括文档的完整性、用户培训和支持、使用系统的能力和满意程度。•方法是开发者不在测试现场,由用户记录的问题可能是系统存在的错误,也可能是用户的主观认定。•白盒法•黑盒法六测试的基本方法1)黑盒测试(又称功能测试,数据驱动测试,基于规格说明书的测试)将被测试程序对象看作黑盒子,不考虑其内部程序结构与处理过程,仅仅对于程序接口进行测试。即检查适当的输入是否能够产生适当的输出。一两种类型的测试2)白盒测试(又称结构测试,玻璃盒测试,基于覆盖的测试)分析程序结构与过程执行路径,按照程序内部的逻辑结构设计测试用例,检验程序的每条通路是否按预期正常进行,力求提高测试覆盖率。一两种类型的测试(续)3)黑盒测试与白盒测试比较黑盒测试是从用户观点,按规格说明书要求的输入数据与输出数据的对应关系设计测试用例,是根据程序外部特征进行测试。白盒测试是根据程序内部逻辑结构进行测试。一两种类型的测试(续)4)彻底的黑盒法或者白盒法(穷举测试)例:输入三条边长黑盒测试可采用的测试用例数(设字长16位)执行时间:设测试一次需1ms共需一万年=222≈31016161614一两种类型的测试(续)4)穷举测试(续)白盒测试例:含4个分支,循环次数≤20,从A到B的可能路径执行时间:设测试一次需2ms穷举测试需5亿年.=5+5+..+5+5≈1020121914AB一两种类型的测试(续)不论黑盒还是白盒测试都不能进行穷尽测试,所以软件测试不可能发现程序中存在的所有错误,因此需精心设计测试方案,力争尽可能少的次数,测出尽可能多的错误.一两种类型的测试(续)9.2模块测试一、模块测试内容•模块接口•局部数据结构•重要的执行路径•出错处理问题•影响上述各方面的边界条件二、模块测试过程•人工测试(代码审查)•计算机测试三、模块测试方法(黑盒法、白盒法)被测试模块桩模块k桩模块1驱动模块……测试用例测试结果图模块测试的环境9.3集成测试模块集成测试策略•非渐增式:一次性装配得到目标系统•渐增式:按照一定顺序,将模块逐个安装并调试–自顶向下的结合–自底向上的结合–“三明治”方法1集成测试方法在集成测试过程中,要为模块设计一个驱动模块和若干个桩模块。•驱动模块•桩模块•驱动模块驱动模块是模拟待测模块X的调用模块,其作用是将测试数据传送给待测模块X,并显示待测模块X的结果。AXY………………待测模块X驱动集成测试:•桩模块桩模块的作用是模拟待测模块X的下层模块E。其作用是接受待测模块X的控制并模拟下层模块E的功能。AXY……………待测模块X桩1集成测试:E非渐增式:先分别测试A、B、C、D、E、F,然后将六个模块连接起来再测试。渐增式(自底向上):先并行测试E、C、F,然后测试B、D,最后测试A。2渐增式和非渐增式的比较ABCEDF2渐增式和非渐增式的比较(续)•非渐增式需要较多的人工编写桩模块和驱动模块,渐增式较少•渐增式可以较早地发现模块界面之间的错误•渐增式有利于排错•渐增式比较彻底•渐增式需要较多的机器时间•渐增式的测试工作无法并行结论:总的来说,渐增式比较优越3渐增式测试•由顶向下•自底向上•两种方式结合(“三明治”方式)•决定测试顺序的基本原则:–尽早测试关键的模块。所谓关键的模块是指较复杂、较可能出错、或含有新的算法的模块。–尽早测试包含输入输出操作的模块。这样向程序送入测试数据、以及检察输出结果就方便了。3渐增式测试(续)•由顶向下和自底向上的比较–由顶向下可以较早地形成整个系统的总体框架,但有模块介入问题。使测试较为困难。–自底向上没有模块介入问题,但总体框架要到最后一个模块(顶层模块)测试完才形成。3渐增式测试(续)ADCBIHJGFELK右图中J、I是包含输入输出的模块,D、F是关键的模块。则测试顺序可以取:(自顶向下)ABCDEFGHIJKL;ABEFJCGKDHLI;ADHIJKLCGBFJE;ABFJDICGEKHL;(由下而上)KLHID以及JF-E,B-…(三明治式)JFBADI-……9.3软件调试•调试的任务:–测试阶段发现的是故障的表现,可以成为外部错误。对于发现的错误必须进行诊断,找到其发生的原因和位置,这就是调试的任务。–测试工作由他人(专业测试小组)进行,而调试要求对程序结构和算法十分熟悉,因此最好由程序设计者本人完成。•常用调试技术–设置程序运行断点,插入打印语句–使用自动调试工具•常用调试策略–试探法–回溯法–对分查找–归纳法9.4测试过程文档测试过程中的记录内容:1)发现的错误2)纠错时对系统作的修改3)退化测试情况:即修改后的再测试4)错误原因、类型、比率的分析和统计思考•软件测试的基本任务是什么?简述软件测试的方法。•总结软件测试的基本原则。•什么是软件系统的测试和测试,它们各自的目的和方法有什么特点?•使用白盒法覆盖了被测试程序的所有逻辑执行路径能够保证程序正确吗?•为什么综合测试策略中首先考虑边界值分析,而不是等价分类方法?
本文标题:管理信息系统-第9章 系统实施和维护
链接地址:https://www.777doc.com/doc-3928016 .html