




已阅读5页,还剩62页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ThreadingTest白盒测试集训,Contents,穿线测试的理念,什么是穿线测试? 通过技术手段,将开发者和测试者的工作组件串联起(穿针引线),实现功能测试与对应的程序源代码执行逻辑的双向穿线,并在此基础之上将开发与测试两个过程进行紧密的连接。 (DevOPS技术:是建立开发与运维之间的联系,打破二者之间的信息鸿沟。),穿线测试- ThreadingTest,什么是ThreadingTest ThreadingTest(简称“TT”)是一款白盒测试软件,将黑盒测试与白盒测试过程以及方法进行完美的融合,以黑盒的测试过程及方法,产生白盒测试的数据,同时TT也是全球首款纯软件类的商用级别的移动端白盒测试工具,可以对各种类型的移动类应用进行测试。TT是一款真正对软件测试过程和结果进行深度量化分析的智能测试工具更是一款测试数据数字化管理工具。,产品结构,连接开发与测试之间的穿线技术,穿线测试通过技术手段,让开发与测试从某种对立关系,变为友好的协作关系,且二者可以充分互动。,自动建立的测试制品(测试用例)与开发制品(代码逻辑)之间的双向追溯。,双向追溯,(图)反向追溯界面,(图)正向追溯界面,围绕双向追溯结果的高效互动,测试人员通过“点点点” 也可以拿到每轮测试过后的量化数据,和开发人员有依据的讨论如何对覆盖率低的补充用例,让测试人员关注更具技术含量的工作。,彻底共享测试与开发信息,测试用例将被开发人员使用到需求确认以及做代码变更时候的支撑数据。,多个测试阶段的穿线,穿线测试的另外一个核心理念是将单元测试、集成测试、系统测试等多个测试结果串联并且共享。,测试人员可以看到开发人员单元测试的测试结果,这样就可以将重点放到功能验证,提高测试的效率。,开发人员可以直接得到远距离的测试结果。并且快速排查缺陷。,穿线测试的白盒技术,黑与白的对比-最有效的测试理论,黑盒测试方法,白盒测试方法,黑与白结合使用的测试方法(穿线测试),通过上述3种方法示意图我们可以看到: 传统的黑盒测试在70%前的阶段,查找BUG是非常迅速的,但之后有可能几天都发现不了一个BUG。 传统白盒测试虽然稳步上升,但却因为种种因素导致其测试时间过长。 结合使用方式:采用前70%用黑盒的测试方式,快速的定位BUG以及制作测试用例和测试覆盖率,当超越黑盒测试的差错瓶颈区后,采用黑盒所得到的覆盖率信息,使用白盒的测试方法来发现隐蔽性强的缺陷和漏测点。,提供精确量化的8种覆盖率指标和测试评估数据。支持航天航空最高规格的MC/DC覆盖率标准。,提供精确量化的8种覆盖率指标和测试评估数据。支持航天航空最高规格的MC/DC覆盖率标准。,实现可持续的测试环境下多版本的覆 盖率结果累积。,支持企业分布式的测试环境,全新的应用功能,TT的引入,在几乎对原有常规黑盒测试流程不干扰的情况下,以优雅的形式完成白盒测试。,智能的穿线方法,不改变原有测试流程,穿线测试介于黑盒与白盒之间,既关注功能的输入输出的正确性测试,也注重内部结构的测试。既包含了黑盒和白盒的优点,又弥补了两者的不足。 与黑盒测试无缝对接 TT以其独特的技术特性,协同开发和测试人员进行高效的沟通互动,让开发和测试融为一体,通过2+1(测试、开发+TT)的模式。,智能的穿线方法,不改变原有测试流程,超高速、大型、互动的图形化系统,TT支持程序结构图、类继承图、函数控制流程图等多种图形的动态显示。,其中”函数调用图”图形具有以下高级特性,支持百万图元级别的超高速图形绘制技术。 支持全屏以及超平滑的放大与缩小技术、平滑的移动技术。 支持按照类分组聚集布图以及按照函数调用关系布图,层次数量可自由定义。 支持逐级的子树展开和下钻功能。 支持在函数图元上显示覆盖率与函数相关信息的显示。,超高速、大型、互动的图形化系统,函数调用图,超高速、大型、互动的图形化系统,控制流程图,软件示波器,边做测试边看“示波器”, TT率先引入了测试过程软件示波器的概念,在实际测试的过程中,测试员可以看到类似于心电图的数据获取模式。,可以看到在运行游戏过程中,示波器会把游戏运行的块、条件、函数的数量以心电图的形式显示出来。,软件示波器,示波器心电图展示方式和Console模式带来的优点,可视化观察程序运行情况。波形可直观反应程序行为。 在console中能看到最近的函数运行堆栈。 通过波形分析程序在各种硬件平台上的运行性能。 可辅助判断等价类以及分析程序行为的变化。,TT示波器的Console模式,让测试人员在测试过程中显示获取的函数名称(显示前50条)。并可以按自己需求以3秒-1分钟的自动刷新或手动刷新获取函数的列表。,(1)为自动时间和手动刷新条。 (2)为获取的函数所在类名、函数名、函数的参数。,穿线测试应用价值,使软件开发商、需求方、第三方测试商成本降低至少25%以上。 打破软件开发者和软件测试者的交流障碍,建立透明追溯机制。,通过技术手段建立开发与测试的高效互动与联系,大幅解放生产力。 彻底改变测试过程枯燥、无技术含量现状,测试过程变得有趣、实时可监控。 5GWM,将可实施白盒测试技术正式带入业界。 现与敏捷开发的配合,支持增量开发、需求变更、缺陷预防。 傻瓜似简洁操作模式,内部实现复杂,操作简单易理解,可向全球开发、测试人员推广。 在安全事件加速去IOE背景下,率先实现国产商用级的专业测试工具。,个人基础版 - 单机版,企业私有云版 在线云测试 专家测试,1.TT测试产品,分基础个人和企业私有云版,2.专家测试,基于我们穿线测试方法以及测试标准,对用户做专家测试服务,希望储备并培养专家测试团队,3.星云测试,是基于在穿线测试理念和方法搭建的云测是平台,我们可以提供给用户专业的测试平台和数字化分析汇总,ThreadingTest(简称“TT”)是一款白盒测试软件,将黑盒测试与白盒测试过程以及方法进行完美的融合,以黑盒的测试过程及方法,产生白盒测试的数据,同时TT也是全球首款纯软件类的商用级别的移动端白盒测试工具,可以对各种类型的移动类应用进行测试。TT是一款真正对软件测试过程和结果进行深度量化分析的智能测试工具更是一款测试数据数字化管理工具。,穿线测试的测试过程:, 个人基础版 1.用TT编译工程 2.连接并映射TT和测试设备(例Android:真机/模拟器) 3.编写并执行测试用例,示波器接受实时的测试数据 4.通过个人版开放的功能去做白盒测试分析, 企业环境中使用 1.开发工程师使用TT编译组建去编译打包工程(APK) 2.测试工程师通过安装APK,连接TT测试客户端进行测试数据收集 3.ITC企业私有云自动汇总测试数据,测试工程作白盒测试分析,ThreadingTest使用常见问题,TT插桩编译类问题: 1.如果项目存在较为复杂的项目依赖,个人版的一键式编译方式可能会编译打不成功 解决方案跟TT的技术支持沟通并走TT企业版申请的流程 2.出现语法错误,请反馈给TT的技术支持,技术支持会给出解决方案 3.如果项目不是eclipse结构的,也会出现个人版一键式编译方式失效 解决方案跟TT的技术支持沟通并走TT企业版申请的流程,TT连接类问题,一般表现为接受不到测试数据 可能的原因: 1.做端口映射的端口5037被别的应用占用,一般会占用的有(手机助手、豌豆荚、360软件管理)查看并杀死该进程之后重新做端口映射 2.设置本机IP和端口映射的顺序反了,正确的顺序是设置IP-端口映射 3.被测Android程序的Manifest文件中没有加数据传输的权限,因此接受不到数据,应加上对应的权限之后重新打包APK,安装并测试 4.公司网可能存在防水墙、防火墙,这个也会会导致端口映射不成功,白盒测试又称透明盒测试,软件测试的主要方法之一,测试应用程序的内部结构和运作运作。,函数 调用图,控制 流程图,代码逻辑 复杂度分析,静态分析常用的方法:,白盒测试工程师在做静态分析的时候需要对程序进行函数调用图和控制流程图的绘制,工作量较大,另外代码逻辑复杂度分析人工分析也比较耗费时间,通过查看函数调用关系图,可以检查函数之间的调用关系是否符合要求,是否存在递归调用,函数的调用是否过深,有没有存在独立的没有被调用的函数。从而可以发现系统是否存在结构缺陷,发现哪些函数是重要的,哪些是次要的,需要使用什么级别的覆盖要求,ThreadingTest代码结构自动图形化绘制,函数调用关系图,01 支持百万图元级别的超高速图形绘制技术。,02 支持全屏以及超平滑的放大与缩小技术、平滑的移动技术,03 支持按照类分组聚集布图以及按照函数调用关系布图,层次数量可自由定义。,04 支持逐级的子树展开和下钻功能。,05 支持在函数图元上显示覆盖率与函数相关信息的显示,CallGraph ThreadingTest的函数调用图具有以下高级特性,程序流程图是最容易理解的一种程序控制结构的图形表示法。,控制流程图,可视化的控制流程图,对主要的控制逻辑语句对应有清晰的图元显示,支持嵌套显示以及串联显示。,点击控制流图的每个图元 可以看到对应的代码段以 及代码段的执行次数、覆 盖率情况。,在控制流图的代码段,当条件语句成为选中热点后,可以看到条件语句的各个子条件的各种组合执行的真假情况。,支持缩略图的显示,可平滑的进行缩放以及全屏显示。,01,02,03,04,ControlFlow ThreadingTest的控制流程图具有以下高级特性,复杂度分析,代码复杂度指:代码中所含分支语句的数目,包括“if”,“for”, “while”, “do-while”,“switch-case”等语句。对于高复杂度的模块来进行重构,或者进一步模块化。 通过高复杂度的模块的控制流程图和逻辑框图的复杂程度可以让测试工程师与软件维护者判断该软件产品的可测试性和可维护性。,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循环体一次都没有被执行 的情况,这时会存在一个不可见段。,1. 帮助测试工程师判断软件产品的可测试性,高复杂度的软件可测试性差、需要花费的测试成本高。 2. 帮助软件维护者判断软件产品的可维护性,高复杂度的软件可维护性差,维护成本高。 3. 帮助测试工程师做测试的复杂性分析,高复杂度的代码需要设计较多或者较为充分的测试用例来达到测试目的。 4. 有了自动化的复杂度的分析,开发人员就可以针对性的对代码重构或者模块化,提高代码的可维护性、可测试性、可读性,强化代码结构,降低bug风险。,Complexity可以帮助我们做些什么?,什么是白盒测试的动态分析法? 动态分析的主要特点是当软件系统在模拟的或真实的环境中软件系统行为的分析。在动态分析技术中,最重要的技术是路径和分支测试。 逻辑覆盖法是最常见的动态分析方法之一,是以程序的内部逻辑结构为基础的测试用例设计技术。它要求测试人员十分清楚程序的逻辑结构,考虑的是测试用例对程序内部逻辑覆盖的程序。 ThreadingTest是如何做到自动获取程序内部逻辑覆盖信息的? ThreadingTest通过自主研发的自动插桩技术,在不破坏被测试程序原有逻辑完整性的前提下,在程序的相应位置上插入一些探针。通过探针收集程序的运行特征数据。基于对这些特征数据的分析,揭示程序的内部行为和特征。,01 语句覆盖,02 路径覆盖,05 条件-判定覆盖,04 条件覆盖,03 判定覆盖,06 修正 条件-判定覆盖,ThreadingTest实现了自动统计多种覆盖率,达到商业规范,覆盖率 = 测试覆盖到的程序段的个数 / 要统计的程序段的个数,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循环体一次都没有被执行 的情况,这时会存在一个不可见段。,覆盖率(SCn) = 测试覆盖到的程序段的个数 / 要统计的程序段的个数(JCn),判定覆盖 【Branch】 设计若干测试用例,运行被测程序,使得程序中每个判断的取“真”分支和取“假”分支至少经历一次,即判断真假值均曾被满足。,条件覆盖 【TRUE】 设计若干测试用例,运行被测程序,使得程序在每个条件中取“真”分支至少经历一次。即TRUE达成100。 【FALSE】 设计若干测试用例,运行被测程序,使得程序在每个条件中取“假”分支至少经历一次。 即FALSE达成100。 【BOTH】 设计若干测试用例,运行被测程序,使得程序在每个条件中取“真”和“假”分支至少经历一次。即BOTH达成100。,条件/判定覆盖 【C/DC】 设计足够的测试用例,使得判断条件中的所有条件可能至少执行一次取值,同时,所有判断的可能结果至少执行一次。即C/DC达成100。,修订的条件/判定覆盖 【MC/DC】 MC/DC是DO-178B Level A认证标准中规定的,欧美民用航空器强制要求遵守该标准。 1、程序中的每一个出口、入口都被调用至少一次。 2、程序中判定的每一个条件都执行所有可能的输出至少一次,程序中每一个判定结果执行所有可能的输出至少一次。 3、在每个判定中的每个条件都曾独立的影响判定的结果至少一次, (独立影响意思是在其他的条件不变的情况下,改变一个条件),即每个条件对结果都独立起作用。,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的计算,例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 3; i+) FishController fish = new FishController(fishName,fishTextureRegion.clone();,SC0:当while满足(a=0)时,运行a=Math.abs(random.nextInt()%41-20; SC1:当while满足(a不等于0)时,将产生一个隐藏分支 SC1+:当while非正常的结束循环时(死循环)产生的隐藏分支 测试完全充分需要设计3个测试用例,例3: 条件判定的计算(True、False、Both),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; ,TRUE :设计5个测试用例 满足所有的if时,即TRUE为充分100% TRUE覆盖=条件结果为真的数目/条件总数量。 FALSE :设计5个测试用例 都不满足所有的if时,即FALSE为充分100% FALSE=条件结果为假的数目/条件总数量。 BOTH :即设计的测试用例TRUE和FALSE都运行满足的情况,BOTH为充分100% BOTH=条件结果真假都执行过的数目/条件总数量。,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; ,Branch=判定结果真假都执行过的数目/判定的总数量。 假设上述代码绿色为真执行过、黄色为假执行过、蓝色为真假都执行过, Branch覆盖率为 1/5=25%,例4: 判定覆盖率的计算(Branch),ThreadingTest不仅实现了自动统计多种覆盖率,并且做到了各种覆盖率统计的可视化,ThreadingTest支持对各种覆盖的计算的可视化,对每种覆盖率的计算结果给出可视化的直观结果展示。 覆盖率可视化功能更直观、更清晰的向用户展示哪些块被覆盖,哪些块没被覆盖到,让用户更有效的进行测试补充、达到预期覆盖。,测试用例与源码双向追溯专利,穿线测试通过技术手段自动建立的测试制品(测试用例)与开发制品(代码逻辑)之间的双向追溯 。 正向追溯优点: 记录功能实现的代码逻辑,测试的数据可以供辅助进行大型软件维护。 迅速定位缺陷对应的代码执行情况,帮助开发快速修复缺陷,可追踪难复现缺陷。 真实记录测试用例运行的情况,为数字化软件测试提供大量原生分析性数据。 反向追溯优点: 辅助进行一致性修改 辅助进行回归测试用例自动选取,双向追溯,(图)基于穿线测试的双向追溯视图,Contents,报表说明,ThreadingTest提供了友好的图形化报表界面,充分对复杂度和覆盖率进行展示。 包括有工程的基本信息,覆盖率和复杂度统计信息,覆盖率增长统计,7种统计 信息的排行榜等,包括了几乎所有的重要信息。以柱状图,折线图,列表等直观、 友好的形式展现出来,快速的了解工程的结构和测试覆盖情况,累积覆盖率技术-可持续测试,软件开发过程中由于多次的迭代和增量开发而不可避免的产生多个版本,相对应的 也会产生多次的版本测试。针对多版本的情况ThreadingTest提供了多版本的函数级比 较和测试覆盖率合并功能。 对于多个版本实现智能覆盖率合并,以前述的函数级多版本对比为基础,通过覆盖 率合并算法,准确统计出当前最新版本的累积覆盖率,从而极大减少测试工程师的重复 测试工作。,回归测试,什么是回归测试? 回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或 导致其他代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。,回归测试过程?,根据需求、测试结果反馈,修改代码,根据修改做回归测试,补充设计测试用例,执行测试用例,管理测试用例数据库,测试用例、bug、回归测试结果反馈,ThreadingTest自动化回归测试,快!准!,ThreadingTest自动化回归测试特性,因为TT采用黑盒的测试方式得到白盒的测试结果,在回归测试时,可以使用白盒的测试结果来自动筛选测试用例,大大减少了回归测试的时间。 自动化的版本对比,分析出修改、增加、删除的代码以及这些代码相关联的测试用例,很快速的做测试用例回归测试、很快速的补充测试用例、删除已经无效的测试用例。 有效的管理测试用例数据库,自动化的帮测试人员删选出需要删除掉的测试用例集。 降低了传统人工回归分析产生的测试盲点,函数代码的修改可能导致调用该函数的代码产生错误,所以需要测试其它代码。如果项目的工程比较大,人工分析不可靠也耗精力。 适应快速的版本迭代周期,适应庞大的工程项目。,回归测试中测试用例自动筛选功能,自动筛选出的测试用例集,Robotium 概述,开源库Robotium为了弥补ActivityinstrumentationTestCase2(Android单元测试框架Instrumentation的一个类)对集成测试支持的不足而编写的。 Robotium除了在仪表盘API的基础上提供了更多的操作控件的函数以外,还通过反射等手段,通过调用系统隐藏的功能,实现了仪表盘不支持的功能。 Robotium对Instrumentation封装比较强的地方是控件的搜索 Robotium 对Activity,Dialog,Toast,Menu 都是支持的 主要用于自动化集成测试,Robotium编写集成测试用例,(1)添加robotium-solo-X-X.jar 保存到测试用例工程根目录的libs文件夹中 (2)在eclipse中右键单击测试工程,并依次选择build path-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关闭所有已打开的活动,为后面执行测试用例恢复测试环境,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 /登录的测试用例编写 ,多元化的获取View:,测试用例执行演示,Robotium 与TT集成,TT扩展Instrumentation与Robotium对接,1、TT通过扩展Instrumentation框架并提供出来相关SDK以及接口来实现robotium与 TT的深度结合 2、在原有的robotium开发过程中只需要改变相关测试类派生的相关基类就可以使用TT 相关api接口,能很容开发出基于robotium的自动化白盒测试程序,和传统的 robotium的测试流程几乎没有差别 3、结合robotium的自动化测试框架以及TT的代码级的测试结果统计,可以更加清晰透 明的可以同时得出功能级、代码级的测试结果,Robotium 与TT集成,TT扩展Instrumentation接口说明,TT在重载了Instrumentation测试类的setUp和tearDown函数的测试类中,需要分别调用super.setUp()和super.tearDown()函数,否则无法对数据进行进行测试用例的区分,如果没有需进行初始化和资源释放则不用继承setUp()和tearDown()函数,如下是TT扩展接口派生说明只列举部分其余类似,Instrumentation接口开发
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高项成本补偿合同模板(3篇)
- 高速公路护坡施工合同(3篇)
- 高速服务区施工合同(3篇)
- 安福县协管员招聘面试题及答案
- 无人机展览现场搭建与无人机飞行表演培训合同
- 产业链上下游企业股权整合及供应链优化合同
- 餐饮店铺转租与经营许可捆绑合同
- 房地产公司挂靠合作项目转让合同范本
- 人教部编版八年级道德与法治-下册-第三单元-人民当家作主-单元练习
- 经贸专业的面试题及答案
- 档案专业人员职业能力竞赛考试题库(含答案)
- 同种异体骨软骨移植与软骨修复
- 故障分析实验报告
- 行为生活方式与健康智慧树知到期末考试答案章节答案2024年杭州师范大学
- JTS-165-6-2008滚装码头设计规范-PDF解密
- 铸造企业安全生产标准化管理体系方案资料汇编(2022-2023新标准实施模板)
- 设备维修与保养(课件)
- 浅谈国内外深基坑支护技术的现状及进展
- 网络舆情应对及处置
- 工业数据采集技术及应用 -配置能源采集仪表参数
- 《应急救援知识》课件
评论
0/150
提交评论