傅雪锋:Android开发的单元测试.pdf

上传人:西安人 文档编号:3332195 上传时间:2019-08-13 格式:PDF 页数:30 大小:1.22MB
返回 下载 相关 举报
傅雪锋:Android开发的单元测试.pdf_第1页
第1页 / 共30页
傅雪锋:Android开发的单元测试.pdf_第2页
第2页 / 共30页
傅雪锋:Android开发的单元测试.pdf_第3页
第3页 / 共30页
傅雪锋:Android开发的单元测试.pdf_第4页
第4页 / 共30页
傅雪锋:Android开发的单元测试.pdf_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《傅雪锋:Android开发的单元测试.pdf》由会员分享,可在线阅读,更多相关《傅雪锋:Android开发的单元测试.pdf(30页珍藏版)》请在三一文库上搜索。

1、Better Practices for betterbetterbetterbetter productsproductsproductsproducts andandandand servicesservicesservicesservices Android单元测试 傅雪锋 大大 纲纲 单元测试简介 1 为什么要单元测试 2 Android的测试框架 3 第三方测试框架 4 2013-1-162013-1-162013-1-162013-1-163 3 3 3 BetterBetterBetterBetter PracticesPracticesPracticesPractices f

2、orforforfor betterbetterbetterbetter productsproductsproductsproducts andandandand servicesservicesservicesservices 单元测试简介单元测试简介单元测试简介单元测试简介 2013-1-162013-1-162013-1-162013-1-164 4 4 4 单元测试简介 小调查 是否了解单元测试 是否在项目中实践单元测试 是否在Android项目中实践单元测试 2013-1-162013-1-162013-1-162013-1-165 5 5 5 单元测试简介 2013-1-1620

3、13-1-162013-1-162013-1-166 6 6 6 单元测试简介 经典的V模型 2013-1-162013-1-162013-1-162013-1-167 7 7 7 单元测试简介 单元测试是开发者开发者开发者开发者编写的一小段代码 单元测试用于检验被测代码的一个很小的、很明确的功能是否正确 通常而言,一个单元测试是用于判断某个特定条件下特定函数的行为 TDD - 测试驱动开发(设计),单元测试极致应用 单元测试特性 2013-1-162013-1-162013-1-162013-1-168 8 8 8 单元测试简介 TDD状态变换TDD流程 2013-1-162013-1-16

4、2013-1-162013-1-169 9 9 9 如何砌墙? 单元测试简介 TDD的一个比喻 盖房子的时候,工人师傅砌墙,会先用桩子拉上线,以使砖能够垒的 笔直,因为垒砖的时候都是以这根线为基准的。 TDD - 先写测试代码,就像工人师傅先用桩子拉上线,然后编码的 时候以此为基准,只编写符合这个测试的功能代码。 新手往往不知道拉线,而是直接把砖往上垒,垒了一些之后再看是否 笔直,这时候可能会用一根线,量一下砌好的墙是否笔直,如果不直再进 行校正,敲敲打打。 使用传统的软件开发过程就像这样,先编码,编码完成之后才写测试 程序,以此检验已写的代码是否正确,如果有错误再一点点修改。 VSVSVSV

5、S. . . . 2013-1-162013-1-162013-1-162013-1-1610101010 BetterBetterBetterBetter PracticesPracticesPracticesPractices forforforfor betterbetterbetterbetter productsproductsproductsproducts andandandand servicesservicesservicesservices 为什么要单元测试为什么要单元测试为什么要单元测试为什么要单元测试 2013-1-162013-1-162013-1-162013-1-

6、1611111111 为什么要单元测试 小调查软件开发有哪些过程? 有趣的观点 不断不断不断不断制造Bug的过程 不断不断不断不断修复Bug的过程 2013-1-162013-1-162013-1-162013-1-1612121212 为什么要单元测试 制造缺陷的阶段 修复缺陷的成本 缺陷与修复成本 发现缺陷的阶段 2013-1-162013-1-162013-1-162013-1-1613131313 为什么要单元测试 有病要尽早看,不要拖! 医生提示 2013-1-162013-1-162013-1-162013-1-1614141414 为什么要单元测试 单元测试是最好的选择 2013

7、-1-162013-1-162013-1-162013-1-1615151515 为什么要单元测试 通过单元测试尽可能早地发现缺陷,以减少维护成本 单元测试有助于加深对需求的理解,在TDD模式中尤为有效 单元测试能够让第三方快速理解接口的用法及设计思路 越高的测试覆盖率,发现潜在缺陷的几率越高 项目组其它成员,包括新加入的成员和维护人员 作为公共库的调用者 未来某个时刻的“你” 单元测试优点 2013-1-162013-1-162013-1-162013-1-1616161616 BetterBetterBetterBetter PracticesPracticesPracticesPract

8、ices forforforfor betterbetterbetterbetter productsproductsproductsproducts andandandand servicesservicesservicesservices AndroidAndroidAndroidAndroid的测试框架的测试框架的测试框架的测试框架 2013-1-162013-1-162013-1-162013-1-1617171717 Android测试框架 集成开发环境的一部分 从架构架构架构架构上帮助开发者测试应用程序各个层次的各个方面 Android测试框架提供了强大、实用的工具集 Androi

9、d测试框架 2013-1-162013-1-162013-1-162013-1-1618181818 Android测试框架 Android测试套件基于JUnit 可以访问Android系统对象 Android测试框架特性 测试框架与Eclipse的ADT集成,同时为其它IDE提供命令行工具 SDK提供monkeyrunner,用Python语言测试设备的API 提供Instrumentation框架可以控制和测试应用程序 2013-1-162013-1-162013-1-162013-1-1619191919 Android测试框架 Android需要独立的项目执行测试 测试程序的包名为:应

10、用程序包 + “.test” Android测试项目 使用InstrumentationTestRunner运行测试 尽可能地使用工具自动创建测试项目 测试项目的结构与生产项目一致 测试项目与应用程序运行在同一进程,不同线程中 2013-1-162013-1-162013-1-162013-1-1620202020 Android测试框架 Android测试项目 2013-1-162013-1-162013-1-162013-1-1621212121 Android测试框架 Instrumentation - 测试指令/装置 是在Android系统中的一系列控制方法或“hooks(钩子)” 可

11、以独立于应用程序,控制Android组件的生命周期 可以控制Android如何加载应用程序 Instrumentation使测试项目与应用程序运行在同一进程中 2013-1-162013-1-162013-1-162013-1-1622222222 Android测试框架 测试基类 - AndroidTestCase 继承自JUnit的TestCase,不能使用Instrumentation框架 提供访问系统对象(如Context)的方法 包括子类: ApplicationTestCase - 测试整个应用程序的基类 ProviderTestCase2 - 测试单个ContentProvide

12、r的基类 ServiceTestCase - 测试单个Service的基类 2013-1-162013-1-162013-1-162013-1-1623232323 Android测试框架 测试基类 - InstrumentationTestCase 继承自JUnit的TestCase,使用Instrumentation框架,用于测试Activity 测试程序可以向程序发送事件来自动进行UI测试 包括子类: ActivityTestCase - Activity测试类的基类 SingleLaunchActivityTestCase - 测试单个Activity的类 SyncBaseInstru

13、mentation - 测试Content Provider同步性的类 ActivityInstrumentationTestCase2 - 在正常的系统环境中测试单个 Activity的类 2013-1-162013-1-162013-1-162013-1-1624242424 Android测试框架 Instrumentation 测试基类 2013-1-162013-1-162013-1-162013-1-1625252525 BetterBetterBetterBetter PracticesPracticesPracticesPractices forforforfor better

14、betterbetterbetter productsproductsproductsproducts andandandand servicesservicesservicesservices 第三方测试框架第三方测试框架第三方测试框架第三方测试框架 2013-1-162013-1-162013-1-162013-1-1626262626 第三方测试框架 Robotium - 开源 是另一种通过InstrumentationTestRunner来完成Android交互式测试 它横跨多个Activities,支持功能测试,系统测试和接收测试 支持Activities、Dialogs、Toast

15、s、Menus、Context Menus 可以同Maven和Ant集成来完成持续集成测试 网址: 2013-1-162013-1-162013-1-162013-1-1627272727 第三方测试框架 Android-Mock - 开源 是一个Mock框架,能够Mock Dalvik VM上的接口和类 基于EasyMock 2.4 在编译期生成运行时需要的Mock对象 网址: 生成.apk文件,需要模拟器运行 2013-1-162013-1-162013-1-162013-1-1628282828 第三方测试框架 Robolectric - 开源 使用了shadow objects并且运行

16、测试于普通的工作站/服务器JVM 它并不依赖于Android提供的测试功能,无须模拟器、设备,效率高 无须dexing(编译成Dalvik VM使用的格式),打包,部署和运行的过程 网址: 目前并不支持Android的所有特性 2013-1-162013-1-162013-1-162013-1-1629292929 第三方测试框架 LessPainful - 商业 提供了一个多设备平台自动化测试的服务 根据不同设备环境,自动执行测试并生成报告 支持HTC,LG,Samsung Galaxy,Sony Xperia、Motorola Motodefy 网址: 2013-1-162013-1-162013-1-162013-1-1630303030 FAQFAQFAQFAQ

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/环境 > 装饰装潢


经营许可证编号:宁ICP备18001539号-1