Flutter自动化学习

学习内容1

【干货】闲鱼工程师是如何构建持续集成流水线,让研发效率翻倍的

精益开发模式 2-1-1 2周需求交付周期 1周需求开发周期 1小时集成时长
面临的要求和挑战

  • 业务对交付响应时间越来越快 (速度为王 反摩尔定律,交付时间越迟 商品价值打折就越厉害)
  • 团队规模变大,项目沟通成本上升 (多个平台,多个角色协同成本越来越高)
  • 多分支并行增加额外成本 (精益开发的核心改变是各个需求独立不影响,分别进行测试和集成,保持主干的稳定)
  • 随时来的提测都能测 (如何更好的应对测试)

所以 构建一个从需求到代码开发,再到测试的流程,并将其工具化,自动化就显得十分必要和紧迫,而持续集成就是这一流程的重要形式体现

名词解释精益开发模式,团队基于看板组织协作,以持续地交付需求为目标,需求按优先级,逐步进入开发、提测。

客户端持续集成的难点

  • 如何将研发过程各环节关联起来 关键活动包括 创建需求->创建代码分支->创建打包项目->提交代码->打包->提交测试->修复->提交集成->发布

    • 如何做到需求和代码分支关联 确保代码可追溯
    • 如何做到做到代码分支和打包项目关联,代码变动可自动触发打包
    • 如何做到代码范围和测试范围关联,确保测试回归范围
  • 多分支并行 如何进行有条不紊的进行集成
  • 如何做到一提交代码就触发测试,测试进一步左移
  • 如何降低自动化测试成本
流程化

核心流程是 一建立需求分支,交付通道就已建立,直到需求发布。

  • 首先开发按照规范创建需求分支,自动将分支和需求进行绑定,同时创建打包项目将需求和打包地址绑定,这样一旦提交代码,就可以根据需求,代码提交内容,给出影响范围,触动自动打包,每次变更都会触发打包
  • 打包成功后,根据merge,requestpush,定时等不同的触发方式,自动触发相应的测试件,进行一系列的自动化测试
  • 测试件执行完后,执行结果会自动反馈,协助团队能够持续发现问题从而提高集成指令

完成第一步后,发现整个流程中,很多是依赖人工操作的,容易出错,影响效率

无人化

为了支撑流水线的运行,以无人化,自动化,可扩展为目标,主要分为精益开发流程协同支撑无人化及测试验证自动化两部分
Flutter自动化学习_第1张图片
fish CI主要是研发流程支撑,入需求绑定 监听变更 触发打包 触发测试 fish guard主要测试件调度,执行,结果通知 以及后续测试件扩展 主要测试件包括 UI识别 UI遍历 Monkey 单元测试 后续增加 静态扫描 扩展自己的自动化测试边界

数据度量

如果你无法度量它,你就无法改进它
Flutter自动化学习_第2张图片
指标主要分为响应能力,效率,质量三个维度
总结与规划
简单总结下,我们做得事情,第一步是拉通整个交付过程,有一个稳定的交付过程,第二步保证交付的效率,即响应变快了,集成变快了,质量反馈变快了,第三步持续交付,关键词是“持续地”,频次上提出了更高的要求,集成的频率变高了,以前一个月集成一次,现在每天都能集成,从一个月一次,到nightly build,再到随时集成。即相比以前,让开发同学“更”有信心集成一次变更并发布。
自动化工具 appium jenkins

你可能感兴趣的:(flutter)