软件测试15十三章集成测试课件

上传人:痛*** 文档编号:241809922 上传时间:2024-07-26 格式:PPT 页数:58 大小:1.71MB
返回 下载 相关 举报
软件测试15十三章集成测试课件_第1页
第1页 / 共58页
软件测试15十三章集成测试课件_第2页
第2页 / 共58页
软件测试15十三章集成测试课件_第3页
第3页 / 共58页
点击查看更多>>
资源描述
Software Testing 软件测试Software Testing 集成测试集成测试本章内容集成测试和开发的关系(了解)集成测试概述(熟悉)基于分解的集成(掌握)基于调用图的集成(了解)基于路径的集成(熟悉)案例研究(理解)13.1集成测试和开发的关系系统结构图软件结构图 软件模块结构图 为什么总是集成不起来?为什么在单元测试之后要进行集成测试?实践表明,软件的一些模块能够单独地工作,但并不能保证组装连接之后也肯定能正常工作。可能的原因有以下几方面:(1)模块相互调用时引入了新的问题;(2)几个子功能组合后不能实现预计的主功能;(3)计算的误差累计达到了不能接受的程度;(4)全局数据结构出现错误。集成测试概述什么是集成测试?集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求组装成为子系统或系统,进行集成测试。集成测试的主要目的:检测系统是否达到需求,对业务流程及数据流的处理是否符合标准,检测系统对业务流处理是否存在逻辑不严谨及错误,检测需求是否存在不合理的标准及要求。集成测试是基于功能完成的测试。集成测试方法:通常采用黑盒测试技术实施策略:深度优先深度优先广度优先广度优先自顶向下自顶向下集成集成自底向上自底向上集成集成三明治集成三明治集成非渐增式测试非渐增式测试渐增式测试渐增式测试13.2 基于分解的集成基于分解的集成:基于系统测试功能分解的集成测试。其目标是测试通过单独测试的单元接口。非渐增式集成方式:把所有通过了单元测试非渐增式集成方式:把所有通过了单元测试的模块按设计要求,的模块按设计要求,一次全部组装起来一次全部组装起来,然,然后进行整体测试。如大棒模式。后进行整体测试。如大棒模式。缺点:缺点:发现错误难以诊断定位发现错误难以诊断定位;因为测试时可能发现一大堆错误,为每个错误定因为测试时可能发现一大堆错误,为每个错误定位和纠正非常困难,并且在改正一个错误的同时位和纠正非常困难,并且在改正一个错误的同时又可能引入新的错误,新旧错误混杂,更难断定又可能引入新的错误,新旧错误混杂,更难断定出错的原因和位置。出错的原因和位置。一.非渐增式集成方式大棒集成方法大棒集成方法采用大棒集成方法采用大棒集成方法,先是对每一个子模块进行测试(单元测试阶段),先是对每一个子模块进行测试(单元测试阶段),然后将所有模块一次性的全部集成起来进行集成测试然后将所有模块一次性的全部集成起来进行集成测试。因为所有的模块一次集成的,所以很难确定出错的真正位置、所在因为所有的模块一次集成的,所以很难确定出错的真正位置、所在的模块、错误的原因。这种方法并不推荐在任何系统中使用,适合在规的模块、错误的原因。这种方法并不推荐在任何系统中使用,适合在规模较小的应用系统中使用。模较小的应用系统中使用。渐增式集成:从一个模块开始,测一次添加一个模块,边组装边测试,以发现与接口相联系的问题。渐增式集成方式包括:自顶向下集成自底向上集成三明治集成二.渐增式集成方式1.自顶向下集成自顶向下集成是构造程序结构的一种自顶向下集成是构造程序结构的一种增量式方式,增量式方式,它从主控模块开始它从主控模块开始,按,按照软件的控制层次结构,以照软件的控制层次结构,以深度优先深度优先或或广度优先广度优先的策略,逐步把各个模块的策略,逐步把各个模块集成在一起。集成在一起。深度优先策略深度优先策略首先是把主控制路径上的模块集成在一起,首先是把主控制路径上的模块集成在一起,至于至于选择哪一条路径作为主控制路径选择哪一条路径作为主控制路径,带带有随意性有随意性,一般根据问题的特性确定。,一般根据问题的特性确定。例:例:M1M3M2M4M7M6M5M8广度优先策略广度优先策略逐层组合所有直接下属模块,在逐层组合所有直接下属模块,在每一层每一层水平地沿着结构移动水平地沿着结构移动。顶层子树顶层子树第二层第二层子树子树底层子树底层子树自顶向下集成测试的步骤1.以以主控模块作为测试驱动模块主控模块作为测试驱动模块,把对主控,把对主控模块进行单元测试时引入的所有模块进行单元测试时引入的所有桩模块用桩模块用实际模块替代实际模块替代;2.依据所选的集成策略,依据所选的集成策略,每次只替代一个桩每次只替代一个桩模块;模块;3.每集成一个模块立即测试一遍;每集成一个模块立即测试一遍;4.只有每组测试完成后,才着手替换下一个只有每组测试完成后,才着手替换下一个桩模块;桩模块;5.为避免引入新错误,须不断地进行为避免引入新错误,须不断地进行回归测回归测试试。6.从第二步开始,循环执行上述步骤,直至从第二步开始,循环执行上述步骤,直至整个程序结构构造完毕。整个程序结构构造完毕。自顶向下集成方式举例:ADBECF模块测试模块测试结合顺序结合顺序深度优先深度优先:A、B、E、C、D、F广度优先广度优先:A、B、C、D、E、F自顶向下集成方式举例:(深度优先)A加入加入ES2S2BS3S3EA测试测试 AS2S2S1S1S3S3A加入加入BS2S2BS3S3S4S4加入加入FCBDEAFA加入加入CCBS3S3E加入加入DCBDEAS5S52.自底向上集成自底向上测试是从自底向上测试是从“原子原子”模块开始组装测试。因模块开始组装测试。因测试到较高层模块时,所需的下层模块功能均已具测试到较高层模块时,所需的下层模块功能均已具备,所以备,所以不再需要桩模块不再需要桩模块。底层子树底层子树第二层第二层子树子树顶层子树顶层子树自底向上综合测试的步骤自底向上综合测试的步骤分为:1.把低层模块组织成实现某个子功能的模块群;2.开发一个测试驱动模块,控制测试数据的输入和测试结果的输出;3.对每个模块群进行测试;4.删除测试使用的驱动模块,用较高层模块把模块群组织成为完成更大功能的新模块群。5.从第一步开始循环执行上述各步骤,直至整个程序构造完毕。自底向上集成方式举例:A AC CB BD DF FE EE Ed d1 1C Cd d3 3F Fd d4 4E EB Bd d2 2D Dd d5 5F FA AC CB BD DF FE E自底向上进行测试时,自底向上进行测试时,需要为所测模块或子系需要为所测模块或子系统编制相应的统编制相应的驱动模块驱动模块自底向上集成方式举例:McD1MaMbD2D3簇簇1 1簇簇2 2簇簇3 3自顶向下集成与自底向上集成的比较自顶向下自顶向下自底向上自底向上 优点优点可在测试早期实现并验证系统主要功可在测试早期实现并验证系统主要功能,不需驱动模块能,不需驱动模块设计测试用例容易,不需桩模块设计测试用例容易,不需桩模块 缺点缺点需桩模块,在测试较高层模块时,低需桩模块,在测试较高层模块时,低层处理采用桩模块替代,不能反层处理采用桩模块替代,不能反映真实情况,重要数据不能及时映真实情况,重要数据不能及时回送到上层模块,因此测试并不回送到上层模块,因此测试并不充分。充分。只有到最后程序才能作只有到最后程序才能作为一个整一个整体体对于自顶向下集成,需要开发对于自顶向下集成,需要开发桩的个数桩的个数=节点节点-1;(顶节点无需替代自身的桩模块顶节点无需替代自身的桩模块)对于自底向上集成,需要开发对于自底向上集成,需要开发驱动器的个数驱动器的个数=节点节点-叶子叶子 (非叶子节点需要要替代自身的驱动模块非叶子节点需要要替代自身的驱动模块)3.混合集成测试方法混合集成,是自顶向下和自底向上集成的组合。一般对软件结构的上层使用自顶向下结合的方法;对下层使用自底向上结合的方法;方法:三明治集成方法改善的三明治集成方法混合法三明治集成方法采用三明治方法的优点是:它将自顶向下和自底向上的集成方法有机地结合起来,不需要写桩程序因为在测试初自底向上集成已经验证了底层模块的正确性。采用这种方法的主要缺点是:在真正集成之前每一个独立的模块没有完全测试过。改善的三明治集成方法改进的三明治集成方法,改进的三明治集成方法,不仅自两头向中间集成,不仅自两头向中间集成,而且保证每个模块得到单独的测试而且保证每个模块得到单独的测试,使测试进行得,使测试进行得比较彻底比较彻底。混合法:对软件结构中较上层,使用的是“自顶向下”法;对软件结构中较下层,使用的是“自底向上”法,两者相结合 几种集成方法性能的比较 自底向上自底向上 自自顶向下向下 混合策略混合策略大棒大棒三明治三明治改改进三明治三明治集成集成早早早早早早晚晚早早早早基本程序能工基本程序能工作作时间晚晚早早早早晚晚早早早早需要需要驱动程序程序是是否否是是是是是是是是需要需要桩程序程序否否是是是是是是是是是是工作并行性工作并行性中中低低中中高高中中高高特殊路径特殊路径测试容易容易难容易容易容易容易中等中等容易容易计划与控制划与控制容易容易难难容易容易难难在集成测试中尤其要注意关键模块关键模块一般都具有下述一或多个特征:对应几条需求;具有高层控制功能;复杂、易出错;有特殊的性能要求。关键模块应尽早测试,关键模块应尽早测试,并反复进行回归测试。并反复进行回归测试。基于分解的集成的优缺点优点:清晰,发现问题容易定位集成测试容易根据分解树跟踪。缺点:功能分解是人工的,且主要满足项目管理需要,而不是软件开发人员的需要。桩和驱动器的开发工作量大。重新测试工作量问题。基于分解的集成测试所需测试会话数 会话=节点叶+边13.3 基于调用图的集成基于调用图的集成:基于调用图的集成包括:成对集成相邻集成成对集成的思想是成对集成的思想是免免除桩除桩/驱动器开发。驱动器开发。57122414132021161718 1923910121124 26 27 256823151.成对集成2.相邻集成相邻节点:有向图中,节点邻居包括所有直接前驱节点和直接后继节点 相邻集成相邻集成5712241413202116171819239101211242627 25682315邻居邻居=节点节点-汇接节点汇接节点相邻集成的特点相邻集成:可大大降低集成测试的会话数量,并可避免桩和驱动器的开发相邻集成本质上是三明治集成相邻集成具有“中爆炸”集成的缺陷:隔离困难基于调用图的集成的优缺点基于调用图的集成偏离了纯结构集成,转向行为基础。免除了桩/驱动器开发工作量。基于调用图的集成测试最大的缺点是:缺陷隔离问题。13.4 基于路径的集成源节点汇节点模块执行路径消息13.4.1 新概念与扩展概念MM-路径MM-路径是穿插出现模块执行路径和消息的序列MM-路径不是可执行路径,并且要跨越单元边界13-8 跨三个单元的MM-路径模块执行路径:MEP(A,1)=MEP(A,2)=MEP(A,3)=MEP(B,1)=MEP(B,2)=MEP(C,1)=MEP(C,2)=A124356B1234C12345例:MM-路径图:给定一组单元,其MM-路径图是一种有向图,其中节点表示模块执行路径,边表示消息和单元之间的返回。注意:MM-路径图是按照一组单元定义的。从图13-8中导出的MM-路径图MEP(A,2)MEP(B,1)MEP(C,1)MEP(B,2)MEP(C,2)MEP(A,3)MEP(A,1)例:实线箭头表示消息,虚线箭头表示返回。SATM系统伪代码(见教材200页)13.4.2 SATM系统中的MM-路径MM-路径的UML序列图13.4.3 MM-路径复杂度V(G)=en+2pV(G)=en+2(对于结构化过程代码,p=1)13-12 MM-路径有向图V(G1)=4-3+2 =3V(G2)=24-6+2 =20ABCMainValidatePINGetPINforPANScreenDriverGetPINKeySensor优点:MM-路径是功能性测试和结构性测试的一种混合。基于路径的集成测试既适用于采用传统瀑布过程开发的软件,也适用于采用基于合成可选的生命周期模型开发的软件。缺点:需要更多的工作量标识MM-路径。13.4.4 基于路径集成的优缺点13.5 案例研究Next Date例子(见教材205页)6869707172737574767778IncrementDateV(G)=3798081PrintDateV(G)=113-13 主程序和第一层单元主程序和第一层单元123456Main V(G)=1GetDateV(G)=2345657-65666713-14底层单元底层单元7891810111213141516171920isLeapV(G)=421222325272830293124263233LastDayOfMothV(G)=4354041465536383739424443455049484754535251ValidDateV(G)=613.5.1 基于分解的集成集成版本的功能分解MainGateDateIncrementDateprintDateValidDatelastDayOfMonthisLeap没有被主程序直接调没有被主程序直接调用,集成过程是空的用,集成过程是空的集成版本的调用图MainGateDateIncrementDateprintDateValidDatelastDayOfMonthisLeap13.5.2 基于调用图的集成基于调用图的集成:基于调用图的集成:成对集成成对集成相邻集成相邻集成MainGateDateIncrementDateprintDateValidDatelastDayOfMonthisLeap集成版本的调用图相邻集成相邻集成:ValidDate、lastDayOfMonth、GetDate、IncrementDate和主和主程序的邻居程序的邻居13.5.3 基于MM-路径的集成2002年5月27日的第一条MM-路径:Main(1,2)msg1 GetDate(34,56,57,58,59,60,61,62,63,64,65,66)msg7 ValidDate(35,36,37,39,40,41,42)msg6 lastDayOfMonth(21,22,23,24,32,33)ValidDate(43,45,46,47,48,50,51,52,54,55)GetDate(67)Main(3)回顾集成测试的几种方法(掌握)基于分解的集成基于调用图的集成基于路径的集成MM-路径(掌握)小结集成测试是一个由单元到系统的过渡性测试,由于其位置的特殊性,集成测试往往容易被忽视。集成测试策略给出了进行集成测试的一个思路,最常见的集成测试策略基于分解的集成自底向上集成自顶向下集成三明治集成基于调用集成成对集成相邻集成基于路径的集成MM-路径对于面向对象系统使用较多的集成策略有基于线程的集成和基于使用的集成。一般来说,对于一个大的系统,其使用的集成策略往往会综合多种集成策略,策略的选择需要根据其逻辑层次特性和物理分布特性来考虑。小结(续1)在进行集成分析时需要考虑整个系统的体系结构,包括系统层次关系和依赖关系;需要分析系统的模块,尤其是确定关键模块;需要进行接口分析,划分接口类型,根据不同的接口进行数据分析;需要进行风险分析,分析可能出现的技术风险、人员风险、物料仪器风险、管理风险和市场风险;需要进行可测试分析,以便提前为测试的实现做好准备。小结(续2)从过程上看集成测试可以分为计划阶段、设计阶段、实现阶段和执行阶段4个阶段。其中计划阶段关注于测试对象范围、工作量、进度、资源、可能存在的风险等因素;设计阶段完成测试分析,包括结构分析、模块分析、接口分析、策略分析、环境分析等等;实现阶段主要完成用例设计,规程设计以及测试脚本;执行阶段完成对测试对象的测试执行工作,并输出测试报告和问题单。Software Testing 谢谢 谢!谢!
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!