ThreadingTest白盒测试201504对外集训

上传人:gb****c 文档编号:243065299 上传时间:2024-09-14 格式:PPT 页数:67 大小:6.96MB
返回 下载 相关 举报
ThreadingTest白盒测试201504对外集训_第1页
第1页 / 共67页
ThreadingTest白盒测试201504对外集训_第2页
第2页 / 共67页
ThreadingTest白盒测试201504对外集训_第3页
第3页 / 共67页
点击查看更多>>
资源描述
,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,Click to edit Master title style,*,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,Click to edit Master title style,ThreadingTest,白盒测试集训,1,Contents,ThreadingTest,测试理念,1,观,ThreadingTest,的进化史,2,白盒测试,静态分析,4,白盒测试,动态分析,5,ThreadingTest,工具使用,3,2,穿线测试的理念,什么是穿线测试?,通过技术手段,将开发者和测试者的工作组件串联起(穿针引线),实现功能测试与对应的程序源代码执行逻辑的双向穿线,并在此基础之上将开发与测试两个过程进行紧密的连接,。,(,DevOPS,技术:是建立开发与运维之间的联系,打破二者之间的信息鸿沟。),3,穿线测试,- ThreadingTest,什么是,ThreadingTest,ThreadingTest,(简称“,TT,”)是一款白盒测试软件,将黑盒测试与白盒测试过程以及方法进行完美的融合,以黑盒的测试过程及方法,产生白盒测试的数据,同时,TT,也是全球首款纯软件类的商用级别的移动端白盒测试工具,可以对各种类型的移动类应用进行测试。,TT,是一款真正对软件测试过程和结果进行深度量化分析的智能测试工具,更是一款测试数据数字化管理工具,。,产品结构,4,连接开发与测试之间的穿线技术,穿线测试通过技术手段,让开发与测试从某种对立关系,变为友好的协作关系,且二者可以充分互动。,自动建立的测试制品(测试用例)与开发制品(代码逻辑)之间的双向追溯。,5,双向追溯,(图)反向追溯界面,(图)正向追溯界面,6,围绕双向追溯结果的高效互动,测试人员通过“点点点”,也可以拿到每轮测试过后的量化数据,和开发人员有依据的讨论如何对覆盖率低的补充用例,让测试人员关注更具技术含量的工作。,彻底共享测试与开发信息,测试用例将被开发人员使用到需求确认以及做代码变更时候的支撑数据。,1,无需测试人员的故障描述、重现等流程,开发可以实时看用例执行的程序内部细节,快速定位问题点。,2,测试人员通过“点点点”也可以拿到每轮测试过后的量化数据,和开发人员有依据的讨论如何对覆盖率低的补充用例,让测试人员关注更具技术含量的工作。,3,彻底共享测试与开发信息,测试用例将被开发人员使用到需求确认以及做代码变更时候的支撑数据。,7,多个测试阶段的穿线,穿线测试的另外一个核心理念是将单元测试、集成测试、系统测试等多个测试结果串联并且共享。,测试人员可以看到开发人员单元测试的测试结果,这样就可以将重点放到功能验证,提高测试的效率。,开发人员可以直接得到远距离的测试结果。并且快速排查缺陷。,1,穿线测试的另外一个核心理念是将单元测试、集成测试、系统测试等多个测试结果串联并且共享。,2,测试人员可以看到开发人员单元测试的测试结果,这样就可以将重点放到功能验证,提高测试的效率。,3,开发人员可以直接得到远距离的测试结果。并且快速排查缺陷。,8,穿线测试通过一些列专利技术,实现了所有第,4,代白盒测试技术,并在此基础上做了较大的创新,穿线测试的白盒技术,9,黑与白的对比,-,最有效的测试理论,黑盒测试方法,白盒测试方法,黑与白结合使用的测试方法(穿线测试),通过上述,3,种方法示意图我们可以看到:,传统的黑盒测试在,70%,前的阶段,查找,BUG,是非常迅速的,但之后有可能几天都发现不了一个,BUG,。,传统白盒测试虽然稳步上升,但却因为种种因素导致其测试时间过长。,结合使用方式:采用前,70%,用黑盒的测试方式,快速的定位,BUG,以及制作测试用例和测试覆盖率,,当超越黑盒测试的差错瓶颈区后,,采用黑盒所得到的覆盖率信息,使用白盒的测试方法来,发现隐蔽性强的缺陷,和漏测点,。,10,提供精确量化的,8,种覆盖率指标和测试评估数据。支持航天航空最高规格的,MC/DC,覆盖率标准。,提供精确量化的,8,种覆盖率指标和测试评估数据。支持航天航空最高规格的,MC/DC,覆盖率标准。,实现可持续的测试环境下多版本的覆,盖率结果累积。,支持企业分布式的测试环境,全新的应用功能,1,提供精确量化的,8,种覆盖率指标和测试评估数据。支持航天航空最高规格的,MC/DC,覆盖率标准。,2,实现可持续的测试环境下多版本的覆,盖率结果累积。,3,支持企业分布式的测试环境。,11,TT,的引入,在几乎对原有常规黑盒测试流程不干扰的情况下,以优雅的形式完成白盒测试。,智能的穿线方法,不改变原有测试流程,穿线测试介于黑盒与白盒之间,既关注功能的输入输出的正确性测试,也注重内部结构的测试。既包含了黑盒和白盒的优点,又弥补了两者的不足。,与黑盒测试无缝对接,TT,以其独特的技术特性,协同开发和测试人员进行高效的沟通互动,让开发和测试融为一体,通过,2+1,(测试、开发,+TT,)的模式。,12,智能的穿线方法,不改变原有测试流程,13,超高速、大型、互动的图形化系统,TT,支持程序结构图、类继承图、函数控制流程图等多种图形的动态显示。,其中,”,函数调用图,”,图形具有以下高级特性,支持百万图元级别的超高速图形绘制技术。,支持全屏以及超平滑的放大与缩小技术、平滑的移动技术。,支持按照类分组聚集布图以及按照函数调用关系布图,层次数量可自由定义。,支持逐级的子树展开和下钻功能。,支持在函数图元上显示覆盖率与函数相关信息的显示。,14,超高速、大型、互动的图形化系统,函数调用图,15,超高速、大型、互动的图形化系统,控制流程图,16,软件示波器,边做测试边看,“,示波器,”,,,TT,率先引入了测试过程软件示波器的概念,在实际测试的过程中,测试员可以看到类似于心电图的数据获取模式。,可以看到在运行游戏过程中,示波器会把游戏运行的块、条件、函数的数量以心电图的形式显示出来,。,17,软件示波器,示波器心电图展示方式和,Console,模式带来的优点,可视化观察程序运行情况。波形可直观反应程序行为。,在,console,中能看到最近的函数运行堆栈。,通过波形分析程序在各种硬件平台上的运行性能。,可辅助判断等价类以及分析程序行为的变化。,TT,示波器的,Console,模式,让测试人员在测试过程中显示获取的函数名称(显示前,50,条)。并可以按自己需求以,3,秒,-1,分钟的自动刷新或手动刷新获取函数的列表。,(,1,)为自动时间和手动刷新条。,(,2,)为获取的函数所在类名、函数名、函数的参数。,18,穿线测试应用价值,使软件开发商、需求方、第三方测试商成本降低至少,25%,以上。,打破软件开发者和软件测试者的交流障碍,建立透明追溯机制,。,通过技术手段建立开发与测试的高效互动与联系,大幅解放生产力。,彻底改变测试过程枯燥、无技术含量现状,测试过程变得有趣、实时可监控。,5GWM,,将可实施白盒测试技术正式带入业界。,现与敏捷开发的配合,支持增量开发、需求变更、缺陷预防。,傻瓜似简洁操作模式,内部实现复杂,操作简单易理解,可向全球开发、测试人员推广。,在安全事件加速去,IOE,背景下,率先实现国产商用级的专业测试工具。,19,观,ThreadingTest,的进化史,2,个人基础版,-,单机版,企业私有云版,在线云测试,专家测试,20,穿线测试方法,TT,测试工具,专家测试,星云测试,(在线测试),1.TT,测试产品,分基础个人和企业私有云版,2.,专家测试,基于我们穿线测试方法以及测试标准,对用户做专家测试服务,,希望储备并培养专家测试团队,3.,星云测试,是基于在穿线测试理念和方法搭建的云测是平台,我们可以提供给用户专业的测试平台和数字化分析汇总,21,ThreadingTest,工具介绍,3,ThreadingTest,(简称“,TT,”)是一款白盒测试软件,将黑盒测试与白盒测试过程以及方法进行完美的融合,以黑盒的测试过程及方法,产生白盒测试的数据,同时,TT,也是全球首款纯软件类的商用级别的移动端白盒测试工具,可以对各种类型的移动类应用进行测试。,TT,是一款真正对软件测试过程和结果进行深度量化分析的智能测试工具,更是一款测试数据数字化管理工具,。,穿线测试的测试过程:,个人基础版,1.,用,TT,编译工程,2.,连接并映射,TT,和测试设备(例,Android,:真机,/,模拟器),3.,编写并执行测试用例,示波器接受实时的测试数据,4.,通过个人版开放的功能去做白盒测试分析,企业环境中使用,1.,开发工程师使用,TT,编译组建去编译打包工程(,APK,),2.,测试工程师通过安装,APK,,连接,TT,测试客户端进行测试数据收集,3.ITC,企业私有云自动汇总测试数据,测试工程作白盒测试分析,22,ThreadingTest,使用常见问题,TT,插桩编译类问题:,1.,如果项目存在较为复杂的项目依赖,个人版的一键式编译方式可能会编译打不成功,解决方案,跟,TT,的技术支持沟通并走,TT,企业版申请的流程,2.,出现语法错误,请反馈给,TT,的技术支持,技术支持会给出解决方案,3.,如果项目不是,eclipse,结构的,也会出现个人版一键式编译方式失效,解决方案,跟,TT,的技术支持沟通并走,TT,企业版申请的流程,23,TT,连接类问题,一般表现为接受不到测试数据,可能的原因,:,1.,做端口映射的端口,5037,被别的应用占用,一般会占用的有(手机助手、豌豆荚、,360,软件管理)查看并杀死该进程之后重新做端口映射,2.,设置本机,IP,和端口映射的顺序反了,正确的顺序是设置,IP-,端口映射,3.,被测,Android,程序的,Manifest,文件中没有加数据传输的权限,因此接受不到数据,应加上对应的权限之后重新打包,APK,,安装并测试,4.,公司网可能存在防水墙、防火墙,这个也会会导致端口映射不成功,24,白盒测试,静态分析,4,白盒测试又称透明盒测试,软件测试的主要方法之一,测试应用程序的内部结构和运作运作。,函数,调用图,控制,流程图,代码逻辑,复杂度分析,静态分析常用的方法:,白盒测试工程师在做静态分析的时候需要对程序进行函数调用图和控制流程图的绘制,工作量较大,另外代码逻辑复杂度分析人工分析也比较耗费时间,25,通过查看函数调用关系图,可以检查函数之间的调用关系是否符合要求,是否存在递归调用,函数的调用是否过深,有没有存在独立的没有被调用的函数。从而可以发现系统是否存在结构缺陷,发现哪些函数是重要的,哪些是次要的,需要使用什么级别的覆盖要求,ThreadingTest,代码结构自动图形化绘制,函数调用关系图,26,01,支持百万图元级别的超高速图形绘制技术。,0,2,支持全屏以及超平滑的放大与缩小技术、平滑的移动技术,0,3,支持按照类分组聚集布图以及按照函数调用关系布图,层次数量可自由定义,。,0,4,支持逐级的子树展开和下钻功能,。,05,支持在函数图元上显示覆盖率与函数相关信息的显示,C,allGraph ThreadingTest,的函数调用图具有以下高级特性,27,程序流程图是最容易理解的一种程序控制结构的图形表示法。,控制流程图,28,可视化的控制流程图,对主要的控制逻辑语句对应有清晰的图元显示,支持嵌套显示以及串联显示,。,点击控制流图的每个图元,可以看到对应的代码段以,及代码段的执行次数、覆,盖率情况。,在控制流图的代码段,当条件语句成为选中热点后,可以看到条件语句的各个子条件的各种组合执行的真假情况。,支持缩略图的显示,可平滑的进行缩放以及全屏显示。,01,0,2,0,3,0,4,C,ontrolFlow ThreadingTest,的控制流程图具有以下高级特性,29,复杂度分析,代码复杂度指:代码中所含分支语句的数目,包括“,if”,,“,for”, “while”, “do-while”,“switch-case”,等语句。对于高复杂度的模块来进行重构,或者进一步模块化。,通过高复杂度的模块的控制流程图和逻辑框图的复杂程度可以让测试工程师与软件维护者判断该软件产品的可测试性和可维护性。,30,JC0,基本段的测试复杂性,JC0 =,一段代码中包含的所有可见段(可执行的代码块)的个数,JC1,标准段测试复杂性,JC1 =,一段程序包含的标准段的个数(所有可见段,+,不可见段,0+,不可见段,2,),JC1+,增强标准段测试复杂性,JC1+ =,一段程序包含的增强标准段的个数,(所有可见段,+,不可见段,0+,不可见段,2+,不可见段,1,),JC2,条件,-,段的测试复杂性,JC2=,所有可见段,+,不可见段,+,所有条件判断语句个数。,Cyclomatic,循环度量复杂性,Cyclomatic Complexity,又称圈复杂度,/,循环复杂度,圈复杂度大说明程序代码可能质低且难于测试和维护,不可见段,0,(,if,和,swicth,)判断体结束后的不可见段,即,if,和,switch,中条件判定式不满足的情况,会存在一个不,可见段,不可见段,2,(,for,、,while,和,do-while,)循环体结束后的不可见段,即,for,、,while,、,do-while,循环条件不满足时,会正常跳出循环,这时会存在一个不可见段。,不可见段,1,(,for,和,while,)非正常的结束循环体时的不可见段,也就是指,for,和,while,循环体一次都没有被执行,的情况,这时会存在一个不可见段。,31,1.,帮助测试工程师判断软件产品的可测试性,高复杂度的软件可测试性差、需要花费的测试成本高。,2.,帮助软件维护者判断软件产品的可维护性,高复杂度的软件可维护性差,维护成本高。,3.,帮助测试工程师做测试的复杂性分析,高复杂度的代码需要设计较多或者较为充分的测试用例来达到测试目的。,4.,有了自动化的复杂度的分析,开发人员就可以针对性的对代码重构或者模块化,提高代码的可维护性、可测试性、可读性,强化代码结构,降低,bug,风险,。,C,omplexity,可以帮助我们做些什么?,32,白盒测试,动态分析,5,什么是白盒测试的动态分析法?,动态分析的主要特点是当软件系统在模拟的或真实的环境中软件系统行为的分析。在动态分析技术中,最重要的技术是路径和分支测试,。,逻辑覆盖法是最常见的动态分析方法之一,是以程序的内部逻辑结构为基础的测试用例设计技术。它要求测试人员十分清楚程序的逻辑结构,考虑的是测试用例对程序内部逻辑覆盖的程序。,ThreadingTest,是如何做到自动获取程序内部逻辑覆盖信息的?,ThreadingTest,通过自主研发的自动插桩技术,在不破坏被测试程序原有逻辑完整性的前提下,在程序的相应位置上插入一些探针。通过探针收集程序的运行特征数据。基于对这些特征数据的分析,揭示程序的内部行为和特征。,33,01,语句,覆盖,02,路径覆盖,05,条件,-,判定,覆盖,04,条件覆盖,03,判定覆盖,06,修正,条件,-,判定,覆盖,ThreadingTest,实现了自动统计多种覆盖率,达到商业规范,34,段覆盖,SC0,、,SC1,、,SC1+,TT,覆盖率种类,条件判定覆盖,Branch ,判定覆盖,TRUE,、,FALSE,、,BOTH ,条件覆盖,C/DC-,条件,/,判定覆盖,MC/DC-,修订的条件,/,判定覆盖,35,覆盖率,=,测试覆盖到的程序段的个数,/,要统计的程序段的个数,SC0,SC0=,被执行的块个数,/,该段程序包含的块个数,(,即可见段个数,),。,SC1,SC1=,被执行的代码块(包括,不可见段,0,以及,不可见段,2,),/,该段程序包含的块个数(包括,不可见段,0,以及,不,可见段,2,)。,SC1+,SC1+=,被执行的代码块(包括,不可见段,0,不可见段,2,以及,不可见段,1,),/,该段程序包含的块个数(包括,不可见,段,0,不可见段,2,以及,不可见段,1,)。,不可见段,0,(,if,和,swicth,)判断体结束后的不可见段,即,if,和,switch,中条件判定式不满足的情况,会存在一个不,可见段,不可见段,2,(,for,、,while,和,do-while,)循环体结束后的不可见段,即,for,、,while,、,do-while,循环条件不满足时,会正常跳出循环,这时会存在一个不可见段。,不可见段,1,(,for,和,while,)非正常的结束循环体时的不可见段,也就是指,for,和,while,循环体一次都没有被执行,的情况,这时会存在一个不可见段。,36,覆盖率,(SCn),=,测试覆盖到的程序段的个数,/,要统计的程序段的个数,(JCn),37,判定覆盖,【Branch】,设计若干测试用例,运行被测程序,使得程序中每个判断的取,“,真,”,分支和取,“,假,”,分支至少经历一次,即判断真假值均曾被满足,。,条件覆盖,【TRUE】,设计若干测试用例,运行被测程序,使得程序,在每个条件中,取,“,真,”,分支至少经历一次,。即,TRUE,达成,100,。,【FALSE】,设计若干测试用例,运行被测程序,使得程序,在每个条件中,取,“假”,分支至少经历一次,。,即,FALSE,达成,100,。,【BOTH】,设计若干测试用例,运行被测程序,使得程序,在每个条件中,取,“,真,”和“假”,分支至少经历一次,。即,BOTH,达成,100,。,38,条件,/,判定覆盖,【C/DC】,设计足够的测试用例,使得判断条件中的所有条件可能至少执行一次取值,同时,所有判断的可能结果至少执行一次。,即,C/DC,达成,100,。,修订的条件,/,判定覆盖,【MC/DC】,MC/DC,是,DO-178B Level A,认证标准中规定的,欧美民用航空器强制要求遵守该标准。,1,、程序中的每一个出口、入口都被调用至少一次。,2,、程序中判定的每一个条件都执行所有可能的输出至少一次,程序中每一个判定结果执行所有可能的输出至少一次。,3,、在每个判定中的每个条件都曾独立的影响判定的结果至少一次, (,独立影响意思是在其他的条件不变的情况下,改变一个条件,),,即每个条件对结果都独立起作用。,39,public boolean canBeCaughtByBullet(BulletSprite bulletSprite) ,if(name = Fish_Name.SARDINE),return CapturedProbability.getInstance().SardineCanBeCapturedByBullet(bulletSprite.getRank();,else if(name = Fish_Name.CLOWNFISH),return CapturedProbability.getInstance().ClownFishCanBeCapturedByBullet(bulletSprite.getRank();,else if(name = Fish_Name.PUFFERFISH),return CapturedProbability.getInstance().PufferFishCanBeCapturedByBullet(bulletSprite.getRank();,else if(name = Fish_Name.TORTOISE),return CapturedProbability.getInstance().TortoiseCanBeCapturedByBullet(bulletSprite.getRank();,else if(name = Fish_Name.SHARK),return CapturedProbability.getInstance().SharkCanBeCapturedByBullet(bulletSprite.getRank();,return false;,SC0,: 绿色部分为段覆盖的代码,总共六条,如果要满足全部段覆盖需要设计,5,个测试用例(当每个条件满足时候,,return false,都将被执行,所以只需设计,5,个测试用例就能满足,SC0,),SC1,:当,5,种条件都不满足时候,将产生一个隐藏分支测试完全充分需要设计,6,个测试用例,例,1,:,SCO,和,SC1,的计算,40,例,2,:,SCO,、,SC1,、,SC1+,的计算,public void creat_Curve_Group(Fish_Name fishName, ArrayList movingFishList,TiledTextureRegion fishTextureRegion, Scene scene),Move_Direction direction=this.getDirection();,int a=Math.abs(random.nextInt()%41-20;,while(a=0),a=Math.abs(random.nextInt()%41-20;,for(int i = 0; i Configure Build Path,,添加,robotium-solo-X-X.jar,到,Libraries,中。,(,3,)使用,Robotium,的测试用例代码框架和,Instrumentation,用例类似,都是继承,ActivityInstrumentationTestCase2,基类,注意:如果是用,Robotium,做集成测试的话,使用的是,ActivityInstrumentationTestCase2,基类,如果是单个,Activity,,可以选择继承,ActivityInstrumentationTestCase2,泛型类。,(,4,)编写测试用例,在测试准备函数,setUp,中可以通过,getInstrumentation,()和,getActivity,()方法获取当前测试的仪表盘对象和待测应用启动的活动对象,并创建自动化测试的,solo,对象,(,5,)在测试结尾,tearDown,中,会调用,Robotium api,关闭所有已打开的活动,为后面执行测试用例恢复测试环境,55,Robotium,编写集成测试用例,public class DemoTestLogin,extends,ActivityInstrumentationTestCase2,SuppressWarnings(unchecked),public DemoTestLogin() throws ClassNotFoundException ,super(Class.,forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);,/,TODO,自动生成的构造函数存根,private static String,LAUNCHER_ACTIVITY_FULL_CLASSNAME = com.kaixin.android.activity.LoginActivity;,private Solo _solo;,Override,protected void setUp() throws Exception ,/,TODO,自动生成的方法存根,_solo =,new Solo(getInstrumentation(), getActivity();,Override,protected void tearDown() throws Exception ,/,TODO,自动生成的方法存根,_solo.finishOpenedActivities();,public void test,登陆,() throws Exception ,/,登录的测试用例编写,56,多元化的获取,View,:,方式,工具,说明,通过,R.id,获取,View,Solo.getView(com.example.android.notepad.R.id.menu_add),在有源码情况下非常方便,没有源码不可用,通过,resource id name,获取,View,:,solo.getView(“menu_add”),查看,ID,方式为:,HierarchyViewer.bat,工具,Uiautomatorviewer.bat,工具,不需要源码,就能定位,view,HierarchyViewer,:,需要开发机、模拟器,市面商用机需要破解才能使用一般有风险,速度慢。,UiautomatorViewer,:,需要,android4.2,以上才能获取控件,ID,通过文字获取,View,:,local.findViewsByTest(“add”),所见即所得,无需分析工具辅助定位,缺点是程序改动文字会导致代码失效,没有上面,2,种稳定,57,测试用例执行演示,58,Robotium,与,TT,集成,TT,扩展,Instrumentation,与,Robotium,对接,1,、,TT,通过扩展,Instrumentation,框架并提供出来相关,SDK,以及接口来实现,robotium,与,TT,的深度结合,2,、在原有的,robotium,开发过程中只需要改变相关测试类派生的相关基类就可以使用,TT,相关,api,接口,能很容开发出基于,robotium,的自动化白盒测试程序,和传统的,robotium,的测试流程几乎没有差别,3,、结合,robotium,的自动化测试框架以及,TT,的代码级的测试结果统计,可以更加清晰透,明的可以同时得出功能级、代码级的测试结果,59,Robotium,与,TT,集成,TT,扩展,Instrumentation,接口说明,TT,在重载了,Instrumentation,测试类的,setUp,和,tearDown,函数的测试类中,需要分别调用,super.setUp(),和,super.tearDown(),函数,否则无法对数据进行进行测试用例的区分,如果没有需进行初始化和资源释放则不用继承,setUp(),和,tearDown(),函数,如下是,TT,扩展接口派生说明只列举部分其余类似,60,Instrumentation,接口开发,使用,Android JUnit Test,测试,也存在两种测试方法,测试驱动与测试代码在同一工程下和测试驱动和测试代码位于不同工程,两者之间并无巨大差异,只是在测试时,前者只安装一个,App,,后者安装两个,App,,本例子是采用的同一个工程下面,有如下步骤,1,、修改工程,AndroidManifest.xml,文件,61,Instrumentation,接口开发,2,、测试用例开发,要使用,ThreadingTest,进行,Android Junit,测试类的编写,需要将所有的测,试类写到一个单独的文件夹下,在进行编译工程时,使用参数,-filter,将其从编译路径中排除,,不对其进行插桩,如下图所示,被测源码放在,src,文件夹中,测试驱动代码放在,test_src,文件下,。,3,、引入,ThreadingTest Android jar,包,,JavaParser-Android.jar,和通信包,jeromq-0.3.0-SNAPSHOT.jar,,添加至构建路径下,62,Instrumentation,接口开发,4,、将继承,Android JUnit Test,类换成继承,ThreadingTest Android JUnit Test,类,,ThreadingTest Android JUnit Test,类中与,Android JUnit Test,相对应的类为在类,名前加,TT,。,例如与,InstrumentationTestCase,相对应的类为,TTInstrumentationTestCase,,,TT Android JUnit Test,类所在的包为,com.zoa.android.test,5,、在重载了,setUp,和,tearDown,函数的测试类中,需要分别调用,super.setUp(),和,super.tearDown(),函数,否则无法对数据进行测试用例的区分,如果没无需进行,初始化和资源释放则不用继承,setUp(),和,tearDown(),函数,6,、其他操作、测试用例方法开发同原有,robotium,相同,63,Instrumentation,接口开发,7,、,TT,编译工程,8,、,TT,编译生成,apk,运行,robotium,并使用,TT,监控接受测试数据。,TT1.8,版本编译界面,64,基于,TT,的,robotium,测试用例的运行,由于采用测试用例的自动生成,基于,TT,的,robotium,开发,测试程序需要和,TT,存在,握手消息,首先需要保证,TT,处于示波器监控开启状态,并手动创建自动生成测试用例所,要创建的用例,目前基于有,3,种方式可以启动测试用例。,运行测试类有三种方式,包括:,1,、命令行方式,使用,adb,命令启动,Android,测试,2,、,eclipse,中选择,Android JUnit Test,运行方式,在,eclipse,中,右击测试工程,选择,run as - Android JUnit Test,3,、模拟器或者安装有,Devtools,的真机中,使用,Dev Tools,安装,Dev Tools,工具后,运行选择,Instrumentation,下显示的与,android:label,同名的标签运行,instrumentation,测试,65,使用,TT,扩展,Instrumentation,运行实例,安装经过,TT,编译的测试,apk,之后可以通过以上,3,种方式来启动,apk,测试,注:如果遇到以下错误可能是测试,apk,和被测试,apk,签名不一致导致,需要卸载掉之前的安装包在,次运行即可,66,Thank You !,67,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


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

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


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