第7章集成测试

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

问题引入测试过程单元测试集成测试系统测试为什么需要集成测试?7.1集成测试概述集成测试(Integrationtest)也叫组装测试或联合测试是在单元测试的基础上,将所有模块按照设计要求集成为系统或子系统,并进行测试。验证程序和概要设计说明的一致性与单元测试类似,主要的测试活动包括集成测试计划设计集成测试用例实现测试用例搭建集成测试环境执行测试测试总结评估测试工作量很多时候采用黑盒和白盒相结合被称为灰盒测试的测试方法集成测试可由开发人员也可由测试人员承担集成测试过程7.2基于功能分解的集成实施策略非渐增式集成渐增式集成非渐增式集成定义又叫大棒集成(Big-bangIntegration)把所有通过了单元测试的模块按设计要求,一次全部组装起来,然后进行整体测试。目的尽可能缩短测试时间,使用最少的测试用例验证系统。特点“急于求成”具体方法例:假设要对某个系统的部分功能进行测试,其功能分解如图所示:ABDC二.渐增式集成方式定义从一个模块开始,测一次添加一个模块,边组装边测试,以发现与接口相联系的问题。集成方式自顶向下集成自底向上集成三明治集成1.自顶向下集成定义自顶向下集成(Top-downIntegration)按照系统层次结构图,以主程序模块为中心,自上而下按照深度优先或者广度优先策略,对各个模块一边组装一边进行测试。自顶向下集成的两种类型广度优先深度优先ABCDHGJEFIKLMNA、B、E、J、K、C、F、L、G、D、H、M、N、I深度优先A、B、C、D、E、F、G、H、I、J、K、L、M、N广度优先自顶向下集成步骤:(1)以主控模块作为测试驱动模块,把对主控模块进行单元测试时引入的所有桩模块用实际模块替代(2)依据所选的集成策略,每次只替代一个桩模块(3)每集成一个模块立即测试一遍(4)只有每组测试完成后,才着手替换下一个桩模块(5)为避免引入新错误,须不断地进行回归测试从第(2)步开始,循环执行上述步骤,直至整个程序结构构造完毕。举例:ABECFD深度优先:A、B、E、C、D、F广度优先:A、B、C、D、E、F自顶向下集成深度优先A加入ES2BS3EA测试AS2S1S3S3A加入BS2BS4加入FCBDEAFA加入CCBS3E加入DCBDEAS52.自底向上集成定义自底向上集成(Bottom-upIntegration)从系统层次结构图的最底层模块开始进行组装和集成测试的方式。自底向上集成步骤:1从最底层的模块开始组装,组合成一个能够完成某个子功能的构件;2编制驱动程序,协调测试用例的输入与输出;3测试集成后的构件;4使用实际模块代替驱动程序,按程序结构向上组装测试后的构件;5重复上面的第二步,直到系统的最顶层模块被加入到系统中为止。举例:ACBDFEEd1Cd3Fd4EBd2Dd5FACBDFE优点1可以尽早的验证底层模块的行为。2提高了测试效率;3对实际被测模块的可测试性要求较少;4减少了桩模块的工作量;5容易对错误进行定位。缺点1直到最后一个模块加进去之后才能看到整个系统的框架;2只有到测试过程的后期才能发现时序问题和资源竞争问题;3驱动模块的设计工作量大;4不能及时发现高层模块设计上的错误。适用范围底层模块接口比较稳定的产品;高层模块接口变更比较频繁的产品;底层模块开发和单元测试工作完成较早的产品。3.三明治集成定义三明治集成方法(SandwichIntegration)三明治集成是一种混合增殖式测试策略,综合了自顶向下和自底向上两种集成方法的优点。方法一般对软件结构的上层使用自顶向下结合的方法;对下层使用自底向上结合的方法;举例用三明治集成方式如何测试?CBDEFA三明治集成步骤首先,确定以哪一层为界来决定使用三明治集成策略。我们确定以B模块为界;其次,对模块B及其所在层下面的各层使用自底向上的集成策略;再次,对模块B所在层上面的层次使用自顶向下的集成策略;然后,把模块B所在层各模块同相应的下层集成;最后,对系统进行整体测试。优点除了具有自顶向下和自底向上两种集成策略的优点之外,运用一定的技巧,能够减少了桩模块和驱动模块的开发。缺点在被集成之前,中间层不能尽早得到充分的测试。7.3基于调用图的集成基于调用图的集成有两种:成对集成相邻集成1、成对集成成对集成的思想就是免除桩/驱动器开发工作,使用实际代码来代替桩/驱动器。成对集成的方法就是对应调用图的每一个边建立并执行一个集成测试会话。2.相邻集成相邻节点有向图中,节点邻居包括所有直接前驱节点和直接后继节点相邻集成把邻居节点作为测试对象(内部节点和源节点)可大大降低集成测试的会话数量,并可避免桩和驱动器的开发相邻集成本质上是三明治集成基于调用图的集成的优缺点优点基于调用图的集成偏离了纯结构集成,转向行为基础。免除了桩/驱动器开发工作量。缺点缺陷隔离问题7.4基于路径的集成概念源节点:程序开始处或重新开始点汇节点:语句结束处模块执行路径:源节点到汇节点,中间没有汇节点消息:单元控制转移A124356B1234C12345A124356B1234C12345MM-路径MM-路径是穿插出现模块执行路径和消息的序列对于传统软件来说,MM-路径永远是从主程序开始,在主程序中结束。注意:MM-路径不是可执行路径,并且要跨越单元边界例:模块执行路径:MEP(A,1)=1,2,3,6MEP(A,2)=1,2,4MEP(A,3)=5,6MEP(B,1)=1,2MEP(B,2)=3,4MEP(C,1)=1,2,4,5MEP(C,2)=1,3,4,513-8跨三个单元的MM-路径A124356B1234C12345A124356B1234C12345MM-路径图给定一组单元,其MM-路径图是一种有向图,其中节点表示模块执行路径,边表示消息和单元之间的返回。注意:MM-路径图是按照一组单元定义的。最低要求所有消息均被覆盖至少一次。模块执行路径:MEP(A,1)=1,2,3,6MEP(A,2)=1,2,4MEP(A,3)=5,6MEP(B,1)=1,2MEP(B,2)=3,4MEP(C,1)=1,2,4,5MEP(C,2)=1,3,4,513-8跨三个单元的MM-路径A124356B1234C12345A124356B1234C12345例: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)实线箭头表示消息,虚线箭头表示返回。MM-路径图的特点优点功能性和结构性的一种混合表达上:功能性标识方式上:结构性集成测试和系统测试无逢连接缺点标识MM-路径的工作量很大基于路径集成的优缺点优点:MM-路径是功能性测试和结构性测试的一种混合。基于路径的集成测试既适用于采用传统瀑布过程开发的软件,也适用于采用基于合成可选的生命周期模型开发的软件。缺点:需要更多的工作量标识MM-路径。其它集成测试方法高频集成基于功能的集成基于进度的集成基于风险的集成客户/服务器的集成分布式集成面向对象的集成测试7.5案例拼图类游戏方法功能说明表函数名功能说明canSwep判断i行,j列的图片可否与不显示的图片交换位置clickMove点击鼠标移动图片disorder对调入的图片进行乱序排列交换图片中50%的图片位置exPos2Set转换坐标信息为图片的行列值getParam获取外部参数getPlayStep返回移动步数imageSegment拼图的分割initApplet初始化initData初始化数据isSucceed判断当前图片位置信息是否和原始位置信息一致loadImage装载图片resetData初始化数据setNoShowNO设置不显示的图片行列号的随机值setShowMode设置显示模型showSucessDiloge如果移动成功,打开对话框提示swep交换i行,j列的图片与不显示的图片信息,包括位置、图片信息transfer移动行i和列j的图片,若不能移动则直接返回initinitDatagetParameterloadImageimageSegmentsetNoShowNOdisordersetShowModeclickMoveexPos2SettransfershowSucessDialogeisSucceedresetDatasetNoShowNOdisordersetShowModeinit()方法的调用关系图clickMove()方法的调用关系图resetData()方法的调用关系图集成测试策略测试策略项拼图游戏applet类内部集成及接口界面测试测试类型集成测试测试技术70%用手工测试,30%用JUnit测试工具自动测试手工测试主要是针对接口测试和GUI测试。自动化测试主要针对类的内部方法集成。测试通过失败标准成功:1、接口测试用例都被执行并通过2、测试发现的缺陷都被修正并通过回归测试3、集成测试报告,且报告通过评审。失败:1、设计问题,导致修改20%以上的函数接口、功能、数量的变化2、有功能没有设计实现,以及更改功能设计共导致修改20%以上的函数接口、功能、数量的变化测试挂起恢复标准挂起:某个测试用例被阻塞时挂起恢复:挂起条件解决特殊考虑1.类内部集成时,内部函数被调用次数小于3,调用层次小于2的不进行测试2.由于该集成为类的内部集成,所以类的内部集成用例的设计实施由开发人员来完成。集成测试内容详表标识符名称调用层次数调用函数数是否测试测试策略I_Spell_01接口规范检查--Y静态走查I_Spell_02Apple外部调用--Y手工测试I_Spell_03GUI界面--Y手工测试I_Spell_04publicvoidinit()32Y调用集成I_Spell_05publicbooleaninitData(intno,StringimageName)23Y调用集成I_Spell_06publicvoidclickMove(intx,inty)23Y调用集成I_Spell_07publicvoidresetData()21N-I_Spell_08publicvoidsetShowMode()12N-I_Spell_09publicvoidshowSucessDialoge()11N-I_Spell_10publicvoidswep(inti,intj)00-I_Spell_11publicint[]exPos2Set(intx,inty)00N-I_Spell_12publicbooleanisSucceed(intno,int[][]imageNo)00N-I_Spell_13publicintgetPlayStep()00N-I_Spell_14publicvoidimageSegment()00N-I_Spell_15publicvoidsetNoShowNO()00N-I_Spell_16publicvoidtransfer(inti,intj)00N-I_Spell_17publicbooleancanSwep(inti,intj)00N-I_Spell_18publicbooleanloadImage(StringimageUrl)00N-I_Spell_19publicvoidgetParam()00N-I_Spell_20publicvoiddisorder()00N-集成测试任务表标识符名称负责人优先级依赖关系起始时间I_T_01集成测试计划的撰写/评审/修改TM/SQA/TM高-3I_T_02集成测试设计规格的撰写/评审/修改Teste

1 / 50
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功