`
david_je
  • 浏览: 369125 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

持续集成在移动中的应用

阅读更多

       互联网越来越红火,更多的App,更快的迭代,更多软件的更新甚至到了一周一更新,苦逼的程序员们要面对更多的加班。开发,测试,报bug,修bug,测试,发布,在这种无休止中恶心循环。时间紧迫,为了减少开发和测试的沟通成本,很多公司的开发以及开始承担一部分测试工作了,劳动强度可见一斑 。那么问题来了,如何轻松完成开发测试工作?

       不得不说说持续集成了,持续集成也叫做CI(continous Integration)。感觉持续集成天生就是为Scrum(有的地方也叫敏捷)而生的。现在很多公司已经在内部使用Scrum的管理方式了,形成Scrum Team,以一周,两周或者四周为一个迭代。那么在这一个迭代里面,我们要完成新功能的开发,测试和交付。对应的工作有,开发或者修改bug,提交代码,功能测试,回归测试(不同的Sprint可能具体任务不同)。那么持续集成是如何在这些工作中发挥作用的呢?

     现在代码写好了,要存到代码仓库, 比如Git/SVN/CVS/CC,等等很多。如何保证提交的代码正确和有效?我们一般需要通过编译和打包去验证。如何保证开发的新功能或者修好了BUG? 需要去执行Unit case (当然还是会有部分手工测试的,后面再说)。如何保证新的修改不能影响到以前的功能?需要去执行回归测试。有这么多的工作,一定会花很多时间吧?其实不然, 我们可以好好利用持续集成去做这些事情,根本不需要你动手,只需收收邮件,查看一下测试结果就好了。那么持续集成是怎么做到的呢?

     首先说一下持续集成的架构,现在有很多开源的产品来支持它了。比如Jenkins(以前叫做Hudson),它是一种master/slave架构的软件,安装在Master的机器上,可以不断添加机器作为它的slave,分配不同的任务给不同的slave去执行。还可以和许多软件一起集成工作,比如Gerrit/Sonar/Docker/....  ,随着支持的插件越来越多,集成的软件也越来越多。

     有了它,我们工作就变成另外一种场景了。提交代码到Gerrit, 触发verify job去执行代码检查任务(自带的活着第三方的工具,如Sonar),编译,打包,执行Unit 测试或者功能测试。中间有任何问题,关注的人可以收到邮件的提醒和通知。每天晚上定时执行自动化测试的任务,第二天早上,打开邮箱就可以看到测试报告,可以相应做出工作安排和调整。等到软件发布的时候,点击一个按钮,自动化编译,打包成可执行的软件,交付给用户。这种工作是不是很惬意?

     其实要想轻松,还远没有那么简单,很明显测试用例的自动化率是一个前提。只有提高了测试用例的自动化率才能够做到真正的轻松。那么如何提高呢?这个问题也是长期困扰我的。我是做TV客户端,有很多平台,PC /Mac /Mobile(Android/iPhone/Pad)等等,客户端是一个portal,不同的平台的解决方案也是不一样的,要写自动化的测试用例是很困难的。我们的策略是,对于公共的部分,我们提取公共的接口,对接口进行测试,对于不同的测试用例,我们按照实现的难易程度去实现自动化。公共接口部分完全使用了自动化,自动39%。剩下的测试用例,难以实现的原因是有一部分是需要人工操作和识别判断的,后来我们发现,这部分我们可以使用脚本来实现,主要是python的脚本,识别和判断的部分,我们使用MIT的开源工具Sikuli去做,这样自动化率就可以提高到69%了。这样还有一个额外的好处是,开发人员可以用自己喜欢的方式去做测试了,做开发的一半都很懒,特别讨厌做重复,简单,粗暴的工作了,设计自动化框架和编写自动化测试是一个新方向。对于测试人员来说也是一个学习编程的好机会,会写程序的测试才是好测试(个人见解)。

     

0
2
分享到:
评论

相关推荐

    移动应用的持续集成和持续交付.pdf

    移动应用的持续集成和持续交付.pdf

    Xcode Server 实现 iOS 移动应用的自动化测试与持续集成

    详细介绍了使用Xcode与Xcode Server 实现 iOS 移动应用的自动化测试与持续集成过程。

    移动应用的左膀右臂:持续集成与自动化测试

    持续集成与自动化测试 移动应用需要做持续集成与自动化测试吗?我想告诉大家的是,这事非常值得做。...引入持续集成与自动化测试,它利用空闲机器资源优势,可以将移动应用研发过程中的大部分工作实现自动化,释放

    持续集成开源工具

    Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使持续集成变成经济可行 Robot Framework是一款python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端...

    七款出色的GitHub功能集成工具

    除此之外,也有越来越多的第三方软件与GitHub相对接、旨在为用户提供从项目管理到持续集成再到PaaS云服务等多种功能拓展。 GitHub最近在网站的Integrations专栏中公布了合作关系的具体细节,并表示将通过GitHub...

    node项目持续集成.zip

    软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、C#等语言的项目开发与学习资料 硬件与设备:单片机、EDA、proteus、RTOS、包括计算机硬件、服务器、网络设备、存储设备...

    gojek-flutter:由flutter框架和持续集成,持续交付创建的gojek应用

    戈耶克 克隆Gojek应用 入门 该项目是Flutter应用程序的起点。 如果这是您的第一个Flutter项目,那么有...要获得Flutter入门方面的帮助,请查看我们的,其中提供了教程,示例,有关移动开发的指南以及完整的API参考。

    人工智能-机器学习-面向移动平台软件开发的持续集成技术及应用.pdf

    人工智能-机器学习-面向移动平台软件开发的持续集成技术及应用.pdf

    持续集成工具Jenkins应用指南

    Jenkins是一款高效的工具,是持续集成、持续交付工具链中一个非常重要的部分,而且是开源的,提供了很多种类的插件供用户使用。本视频为您梳理出如何使用Jenkins设计和实现一个高效、灵活的持续集成、持续交付作业...

    39页智能云网OB域集成培训材料---电联场景.pptx

    智慧城市通过物联网基础设施、云计算基础设施、地理空间基础设施等新一代信息技术以及维基、社交网络、Fab Lab、Living Lab、综合集成法、网动全媒体融合通信终端等工具和方法的应用,实现全面透彻的感知、宽带泛在...

    互联网测试的革命性突破:HttpRunner框架调研报告.pptx

    促进持续集成: HttpRunner 与DevOps流水线的集成,使得测试可以自动触发,与开发流程无缝衔接,促进持续集成和持续交付。 API自动化测试: HttpRunner 非常适用于对API进行自动化测试,确保接口的正确性和稳定性。 ...

    区块链移动支付项目风险管理研究-以F项目为例

    项目成功与否,关系到 F 公司在金融创新的 CT 集成能力的展现, 通过区块链技术在移动支付领域的实例为做好区块链移动支付项目风险管理的研究, 对于此类区块链技术应用项目的风险管理体系建立提供了重要的可参考...

    02 移动通信工程专业体系介绍.ppt

    移动通信行业是电子信息行业中规模最大、发展最快的应用领域。在移动通 信大规模应用的带动下,到21世纪,以通信为主要应用的电子信息业已经 位列全球第五大行业之首(电子信息、能源、钢铁、汽车制造、农业)。...

    2018第四届中国移动互联网测试开发大会PPT-3

    持续集成、持续交付、DevOps 质量监控 敏捷落地 过程改进、质量体系建设、团队管理 领域专场 互联网测试:接口测试、白盒测试 移动互联网测试:通用app测试、微信小程序测试 物联网(IOT):车联网、智能家居、智能...

    2018第四届中国移动互联网测试开发大会PPT-1

    持续集成、持续交付、DevOps 质量监控 敏捷落地 过程改进、质量体系建设、团队管理 领域专场 互联网测试:接口测试、白盒测试 移动互联网测试:通用app测试、微信小程序测试 物联网(IOT):车联网、智能家居、智能...

    2018第四届中国移动互联网测试开发大会PPT-2

    持续集成、持续交付、DevOps 质量监控 敏捷落地 过程改进、质量体系建设、团队管理 领域专场 互联网测试:接口测试、白盒测试 移动互联网测试:通用app测试、微信小程序测试 物联网(IOT):车联网、智能家居、智能...

    C语言的贪吃蛇小游戏,持续更新中UnStoppedDragon.zip

    它结合了C和$C++$等传统编程语言的优点,并在软件开发领域中得到了广泛应用。C#通常用于开发Windows桌面应用程序、Web应用程序、移动应用程序以及游戏开发等领域。C#是.NET框架的一部分,这意味着它可以与其他.NET...

    spring cloud集成全渠道在线客服以及后台管理系统.zip

    spring cloud集成全渠道在线客服以及后台管理系统,所有微服务之间的消息传递采用区块链技术,持续更新中~~目标是:第一阶段:采用spring cloud微服务搭建后台管理系统第二阶段:集成在线客服,采用netty实现...

    Appium工具集,手机端自动化神器

    Appium是一个自动化测试...此外,它还可以与各种集成开发环境(IDE)和持续集成(CI)工具集成。 安装与配置:Appium需要在电脑上进行安装,提供可执行文件用于Windows和Mac OS,而Linux则提供源代码编译后运行的版本。

Global site tag (gtag.js) - Google Analytics