持续集成中的自动化实践_第1页
持续集成中的自动化实践_第2页
持续集成中的自动化实践_第3页
持续集成中的自动化实践_第4页
持续集成中的自动化实践_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、持续集成中的自动化实践技术创新,变革未来目录为什么做持续集成,痛点在哪里?1自动化实践,为了自动化而自动化?2持续集成实践,仅仅为了效率? No3CI到CD, 突破科技,启迪未来4QA5 为什么做持续集成,痛点在哪里?面临的问题1. 手动打包,费时费力易出错;2. 各个开发手动出包环境不统一,出包内容有差别开发3. Build记录无法追溯,问题定位困难 为什么做持续集成,痛点在哪里?面临的问题我可能用了个假的测试包为什么只有我的测试有问题3. 谁有xxx tag的包,我想验证一个问题4. 这些工具用起来好麻烦测试 为什么做持续集成,痛点在哪里?面临的问题1. 灰度期间这些问题都是什么类型2.

2、集成测试阶段与灰度阶段的测试数据对比QA3. 现在的流程真的完美无缺,无法改进么? 为什么做持续集成,总结一下提升开发效率节省人力资源统一了测试入口标准并规范化 降低工具上手难度增加测试维度覆盖使测试介入开发流程阶段 提前降低BUG修复成本自动化部署,流程更透明 自动化实践,为了自动化而自动化?单元测代码静接口自UI自动试态扫描动化化 自动化实践,为了自动化而自动化?单元测试AndroidRobolectric/Junit4+Mockito + PowerMockiOSXCTestSOAJunit4 + Mockito +PowerMock 自动化实践,为了自动化而自动化?单元测试Androi

3、d 单元测试案例: Junit4 + Mockito + PowerMock1. 痛点:JVM上运行纯JUnit单元测试时没有 androidcontext, 里面只定义了一些接口,所有方法的实现都 是 throw new runtimeException(“stub”),因此需 要使用Android提供的Instrumentation系统,将单元 测试代码运行到模拟器或真机上, 执行效率有所折扣2. 为什么使用PowerMock: Mockito是通过创建proxy的方 式来实现mock, 因此对于static,final,private方法 都是不能mock的,而PowerMock是通过使

4、用CGLib来操 纵字节码的方式实现mock, 所以可以弥补Mockito的不 足自动化实践,为了自动化而自动化?单元测试Demo Script 自动化实践,为了自动化而自动化?单元测试iOS 单元测试: XCTest:XCode自带单测工具, 在XCode5时引入,XCode6时增加了对性能测试,异步测试的支持每个配置的Unit Test Class均是继承于XCTestCase 最重要的三个方法:(void)setUp:准备测试环境;(void)tearDown:脚本结束后执行,清理测试影响;measureBlock: 性能测试方法,用来计算测试block中方法 执行时间,通过与期望性能值

5、对比可以判断是否能够通过 性能测试自动化实践,为了自动化而自动化?单元测试Demo Script 自动化实践,为了自动化而自动化?代码静 态扫描Infer / FindbugsInfer / Xcode Analyze InferFacebook开源的一款代码静态分析工具 Java/Objective-C中均捕捉的BUG类型如下:资源泄露问题(Resource Leak)空指针/引用问题(Null Dereference)Objective-C中捕捉的BUG类型如下:内存泄露问题(Memory Leak)内存死锁问题(Retain cycle)参数非空检查(Parameter Not Null

6、 Checked)本地变量非空检查(Ivar Not Null Checked)自动化实践,为了自动化而自动化?代码静 态扫描Infer Tips: 初次运行时,确保项目是清理过的。可以通过 (make clean,gradle clean etc)两次运行之间,需清理项目,否则-incremental选项会因 为增量编译而无结果输出,如使用的是非增量编译方式, 则无需如此,比如:infer - javac Hello.java,编译 Java 文件。3. 成功运行之后,在同一目录下,你可以通过inferTraceBugs命令浏览更加详细的报告自动化实践,为了自动化而自动化?代码静 态扫描In

7、fer Report: 自动化实践,为了自动化而自动化?代码静 态扫描FindBugs检查class文件,将字节码与自带或用户自定义的bug pattern进 行对比以发现可能的问题, problem example below: 自动化实践,为了自动化而自动化?代码静 态扫描自定义扫描规则: 自动化实践,为了自动化而自动化?接口自动化SwaggerUIJMeter 自动化实践,为了自动化而自动化?接口自动化SwaggerUI + Spring-boot 接口测试管理:添加依赖到gradle脚本添加SwaggerUI配置来激活对应服务 自动化实践,为了自动化而自动化?接口自动化SwaggerU

8、I + Spring-boot 接口测试管理:Demo Api 自动化实践,为了自动化而自动化?接口自动化SwaggerUI + Spring-boot 接口测试管理: 自动化实践,为了自动化而自动化?接口自动化JMeterTestPlanCreate Thread GroupDevelop Test ScriptsExecute Test PlanAnalyze Test Result基本介绍:Jmeter是一款非常优秀开源的接口/性能测试工具 常用控件:测试计划、线程组、控制器、配置元件、定时器、 前置处理器、后置处理器、断言、监听器基本的测试流程如下:自动化实践,为了自动化而自动化?接口

9、自动化Jmeter的使用: 测试计划是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器。线程组代表一定数量的并发用户,它可以用来模拟并发用户发送请求。实际的请求内容在 Sampler中定义,它被线程组包含。监听器负责收集测试结果,同时也被告知了结果显示的方式。逻辑控制器可以自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。断言可以用来判断请求响应的结果是否如用户所期望的。它可以用来隔离问题域,即在确保功 能正确的前提下执行压力测试。配置元件维护Sampler需要的配置信息,并根据实际的需要会修改请求的内容。前置处理器和后置处理器负

10、责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。定时器负责定义请求之间的延迟间隔。自动化实践,为了自动化而自动化?接口自动化Jmeter的使用 自动化实践,为了自动化而自动化?UI自动化Appium 自动化实践,为了自动化而自动化?UI自动化Why Appium跨平台跨开发语言兼容其他工具非侵入式设计 自动化实践,为了自动化而自动化?UI自动化Appium + TestNG控件层操作层驱动层PageObject层用例层配置层xml,yaml 自定义测 试套件自动化实践,为了自动化而自动化?UI自动化UI自动化策略覆盖率产出效率 持续集成实践

11、,仅仅是为了效率?No代码拉取静态扫描编译检查单元测试接口测试UI自动化测试提测 持续集成实践,CI-Service Framework 单测工具UI自动化测试工 具Monkey代码扫描工具接口自动化工具测试数据搜集基础分析自定义展示提交触发手动触发DailyBuild研发自测,通 过构建测试实时合并主干代码管理构建方式工具数据持续集成实践,仅仅是为了效率?NoCI实践的主要价值体现测试提早介入项目代码静态扫描&代 码编译检查,使得 测试介入编码阶段;尽早发现代码问题, 降低bug修复成本;统一测试入口标准统一出包避免出包 不一致引起的bug;统一出包提高了测 试包的复用性,降 低重复操作和沟通 成本;提升测试效率引入不同的自动化 工具,增加产品开 发过程的透明度, 降低沟通成本,效 率更高;积累开发、测试过 程中的数据,测试 结果定期分析(定 期报告) 未来展望,CI-CD技术效率质量 未来展望,CI-CD 未来展望,持续集成到持续交付快速发布。能够应对业务需求,并更快地实现软件价值。编码

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论