您好,欢迎访问三七文档
瀑布模型(WaterfallModel)1970年WinstonRoyce提出了著名的瀑布模型,直到80年代早期,它一直是唯一被广泛采用的软件开发模型。瀑布模型瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。在瀑布模型中,软件开发的各项活动严格按照线性方式进行,当前活动接受上一项活动的工作结果,实施完成所需的工作内容。当前活动的工作结果需要进行验证,如果验证通过,则该结果作为下一项活动的输入,继续进行下一项活动,否则返回修改。瀑布模型强调文档的作用,并要求每个阶段都要仔细验证。但是,这种模型的线性过程太理想化,已不再适合现代的软件开发模式,几乎被业界抛弃,其主要问题在于:(1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量;(2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险;(3)早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。我们应该认识到,线性是人们最容易掌握并能熟练应用的思想方法。当人们碰到一个复杂的非线性问题时,总是千方百计地将其分解或转化为一系列简单的线性问题,然后逐个解决。一个软件系统的整体可能是复杂的,而单个子程序总是简单的,可以用线性的方式来实现,否则干活就太累了。线性是一种简洁,简洁就是美。当我们领会了线性的精神,就不要再呆板地套用线性模型的外表,而应该用活它。例如增量模型实质就是分段的线性模型,螺旋模型则是接连的弯曲了的线性模型,在其它模型中也能够找到线性模型的影子。瀑布模型的优缺点1、瀑布模型有以下优点:1)为项目提供了按阶段划分的检查点。2)当前一阶段完成后,您只需要去关注后续阶段。3)可在迭代模型中应用瀑布模型。迭代模型中应用瀑布模型增量迭代应用于瀑布模型。迭代1解决最大的问题。每次迭代产生一个可运行的版本,同时增加更多的功能。每次迭代必须经过质量和集成测试。2、瀑布模型有以下缺点:1)在项目各个阶段之间极少有反馈。2)只有在项目生命周期的后期才能看到结果。3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段。软件测试基础-软件测试分类(按开发阶段划分)⑴单元测试:单元测试又称为模块测试,是针对软件设计的最小单位程序模块进行正确性检查的测试工作,单元测试需要从程序内部结构出发设计测试用例,多个模块可以平行地独立进行单元测试。单元测试的内容:①模块接口测试应对通过所测模块的数据流进行测试调用所测模块时的输入参数与模块的形式参数的个数、属性和顺序是否匹配所测模块调用子模块时,输入子模块的参数与子模块的形式参数在个数、属性和顺序上是否匹配。输出给标准函数的参数的个数、属性和顺序是否正确。全局变量的定义在各个模块中是否一致。当模块通过外部设备进行输入/输出操作,文件属性是否正确、open和close语句是否正确,规定的I/O格式说明与I/O语句是否匹配;缓冲区容量是否与记录长度匹配,在读写之前是否打开了文件,读写之后是否关闭了文件,对I/O错误是否做了处理②局部数据结构测试局部数据结构是最常见的错误来源不一致的数据类型不正确或不一致的数据说明使用尚未赋值或尚未初始化的变量错误的初始值或错误的缺省值③路径测试运算的优先次序、常见的比较和控制流④错误处理测试遇见出错的条件,并设置适当的出错处理⑤边界测试例如循环的次数,最大或最小值步骤:利用设计文档设计测试用例;创建被测模块的桩模块或驱动模块;利用被测试模块、驱动模块和桩模块来建立测试环境,进行测试驱动模块:相当于所测模块的主程序,它接收测试数据,把这些数据传送给所测模块,最后再输出实际结果桩模块:用以代替所测模块调用的子模块。⑵集成测试又称为组装测试或联合测试,在单元测试的基础上,需要将所有模块按照概要设计说明书和详细设计说明书的要求进行组装。1、在把各个模块连接起来的时候,穿越各个模块的接口的数据时候会丢失2、一个模块的功能是否会对另一个模块的功能产生不利的影响3、各个子功能组装完成后,能否达到预期的父功能4、全局数据结构是否有问题5、单个模块产生的误差累计起来是否会放大模块组装成系统的方式:一次性组装方式和增殖式组装方式1、一次性组装方式先对模块分别进行测试,再把所有模块组装进行测试缺点:发现错我不容易定位2、增值式组装测试先对一个个模块进行模块测试,然后将这些模块逐步组装成系统分为两种方式:自顶向下的增殖方式和自底向上的增殖方式①自顶向下的增殖方式(不需要驱动模块)将模块铵系统程序结构,严控制层次自顶向下进行组装。首先以主模块作为被测模块兼驱动模块,所有直属主模块的下属模块全部用桩模块代替,对主模块进行测试。再采用深度优先或广度优先的策略,用实际模块代替桩模块,再用桩模块代替它们的直接下属模块,与已经测试的模块构成新的子系统。然后进行回归测试。深度优先策略:广度优先策略:(不需要桩模块)②自底向上的增殖方式(不需要驱动模块)由驱动模块控制最底层模块的并行测试。③混合增殖式自顶向下增殖方式:优点:能够较早的发现主要控制方面的问题缺点:需要建立桩模块,增加了一些附加的测试,涉及算法和输入输出的模块一般在底层,这些底层模块要到组装和测试的后期才能发现。一旦发现问题就会出现过多的回归测试。自底向上增殖方式:优点:不需要建立桩模块,建立驱动模块要比建立桩模块要简单得多,同时涉及到算法已近输入输出的模块要先测试,把最容易出现问题的部分在早期解决。缺点:程序一直未能作为一个实体存在,直到最后一个模块加上才能形成一个实体。控制方面最后才能接触。集成测试完成的标志:1、成功执行了测试计划中规定的所有集成测试2、修改了所发现的错误3、测试结果通过专门小组的评审集成测试需要提交的测试报告:集成测试计划、集成测试规格说明书以及集成测试分析报告3.确认测试确认测试的目标是验证软件的功能和性能以及其他特性是否与用户的要求一致。确认测试一般包括有效性测试和软件配置复查。一般有第三方测试机构进行。①进行有效性测试现软件确认要通过一系列黑盒测试。确认测试同样需要制订测试计划和过程,测试计划应规定测试的种类和测试进度,测试过程则定义一些特殊的测试用例,旨在说明软件与需求是否一致。无是计划还是过程,都应该着重考虑软件是否满足合同规定的所有功能和性能,文档资料是否完整、准确,人机界面和其他方面(例如,可移植性、兼容性、错误恢复能力和可维护性等)是否令用户满意。确认测试的结果有两种可能,一种是功能和性能指标满足软件需求说明的要求,用户可以接受;另一种是软件不满足软件需求说明的要求,用户无法接受。项目进行到这个阶段才发现严重错误和偏差一般很难在预定的工期内改正,因此必须与用户协商,寻求一个妥善解决问题的方法②软件配置复查保证软件配置的所有成分齐全,质量都符合要求。应该遵守用户手册和操作手册中的规定步骤。4、系统测试软件作为计算机系统的一部分,与硬件、网络、外设、支撑软件、数据以及人员结合在一起,在实际或模拟环境下,对计算机系统进行测试,目的在于与系统需求比较,发现问题5、验收测试以用户为主的测试,软件开发人员和质量保证人员参加,由用户设计测试用例。不是对系统进行全覆盖测试,而是对核心业务流程进行测试。
本文标题:瀑布模型
链接地址:https://www.777doc.com/doc-4321652 .html