针对这部分缺陷,我们通过不间断获取、分析线上日志的方式,及时发现线上发生的缺陷,并自动化录入到对应的缺陷管理项目中,我们对日志内容进行规则自动分析并按照主站、移动端、桌面端归一分类指派给对应的负责人修复,整体效率和信息及时性在潜移默化中得到很大提升。

语雀是什么软件_语雀有没有手机端_雀语知识库

3.3. 覆盖率治理增量覆盖率 PR 合并卡点

增量覆盖率卡点的意义,相信不用多说。当新代码无单测合入就会导致整体覆盖率越来越低,会加剧代码腐化。因此,我们在 PR 环节加入了增量代码检测能力,为评审人和开发同学提供直观的覆盖率报告,同时也希望能激励大家能够及时补充单测用例;(也是扩展了代码管理平台的能力)

实现分析: 每次单元测试执行后生成的覆盖率信息和 PR 的 diff 信息通过计算获取增量的覆盖率信息,最后通过macaca-istanbul工具 生成覆盖率报告 (支持颜色渲染和缩略图)。

语雀有没有手机端_雀语知识库_语雀是什么软件

全量覆盖率-项目覆盖率治理

语雀团队很注重测试覆盖率,一直以来保持在比较高的覆盖率水平,项目覆盖率的跟踪这块原来也都有,但是年久失修一些项目的覆盖率数据没有及时更新和维护。

我们通过搜集、合并分散在各 CI 任务中的项目覆盖率数据,然后每周通过钉钉进行覆盖率播报,有效恢复了各项目的覆盖率跟踪,实现了覆盖率的长期统计跟踪机制。

实现分析: 收集 CI 中运行的单测任务覆盖率信息 -> 测试结束时合并相应的覆盖率数据上传到 Reliable,并按周进行覆盖率数据的播报。

雀语知识库_语雀是什么软件_语雀有没有手机端

3.4. 线上不可用治理

先说说为什么做这个事,过去,语雀会有遇到因为低版本或不支持的浏览器造成的线上不可用问题,经常也会收到用户类似的反馈,很影响用户体验。web 应用其实都会有类似的问题,从根本上杜绝是我们的目标。

我们针对低版本内核不兼容、白屏的死角问题,进行监控和不支持引导。同时建设了浏览器版本分布情况的准确的感知能力。我们的目标是做到三个一定:

一定没有不明确的浏览器版本

明确的浏览器版本一定可用

主流的浏览器一定支持自动化回归

3.5. CI 问题跟踪

语雀日常 CI 任务经常因为一些问题不通过,非常影响研发效率。其中有工具的问题、有用例本身设计不稳定(比如缺少 mock、时序调用错乱、断言粒度不合理等)。

为了促进大家日常及时解决不稳定问题,及时通知反馈问题的指派人,我们实现了 CI 问题的自动化跟踪机制。

通过高度的自动化,使收敛变得自然,研发变得高效。

雀语知识库_语雀有没有手机端_语雀是什么软件

4. 持续交付

没有持续集成的时候是怎样的:

开发合并了 PR 之后,需要人工及时部署更新,然后反馈给开发同学,让开发同学去验证,虽然只是些点击和通知操作,但环节之间都是割裂的需要人工执行,打断工作节奏不说,费心费力。并且自动化的功能性集成测试也是缺失的。

为了解决这些问题,我们重点建设了稳健的 CICD,从代码合并开始,到后面的部署、自动化测试回归一气呵成,敏捷理念中的持续集成是实际在做的,让持续测试成为了我们的基本规约。

雀语知识库_语雀有没有手机端_语雀是什么软件

4.1. 主站点

通过日常迭代分支的 PR 合并,触发对应的 CI 流水线任务,完成持续部署和持续测试。

会有详尽的通知,比如直接给到迭代验证地址链接,直接能看到已部署的 PR 信息,看到持续测试的报告链接等等,尽可能为研发同学带来便利,提升研发体验和效率。

语雀是什么软件_雀语知识库_语雀有没有手机端

4.2. 桌面端 CICD

不仅仅是主站,我们桌面端和移动端的开发同学也能享受到尊贵的 CICD 服务。

桌面端实际上是一款桌面应用客户端软件,桌面端的持续测试和持续部署是通过办公网的一台 macmini 实现测试回归环境,在构建平台触发构建后会异步通知 macmini 进行自动化集成测试和报告的发送。

语雀有没有手机端_雀语知识库_语雀是什么软件

4.3. 移动端CICD

移动端的持续集成通过构建平台打包后 使用 蚂蚁云测平台(提供移动端真机测试服务) 触发执行UI自动化测试任务,在执行完毕之后也会发送相关报告到钉钉群中。

语雀有没有手机端_雀语知识库_语雀是什么软件

4.4. CI 提效

CI 慢、不稳定的问题一直以来是语雀团队的痛点问题,极其影响研发效率。我们从各个细节优化了整体ci的效率和稳定性。

从各个细节优化,使 CI 缩短了执行时间,提高了成功率, 减少了人工重试负担。

优化后,正常 15 分钟以内可以完成一轮全量回归。

语雀是什么软件_语雀有没有手机端_雀语知识库

完善的 CICD 能力,使得在语雀做研发是一件很幸福的事。极大提升了研发同学们的工作体验和效率。

5. UI 自动化技术

测试金字塔: 相信有同学见过,这种下宽上窄的三角形结构,代表在各层自动化的建议投入分配比例。

语雀的单测是开发同学们自己负责的,QA 同学负责 UI 自动化测试部分的测试。在我加入语雀之前,语雀在 UIA 领域就有比较多的实践,UI 自动化是我们一直坚持的质量保障手段。

相信也有很多质量团队尝试过 UI 自动化,但很少能有坚持持续做的,原因有很多,比如下面的一些因素:

其实语雀质量作为“过来人”,也是遇到过同样的困难,语雀的 UIA 成功和团队前期摸索的持续投入有很大的关系。

语雀有没有手机端_语雀是什么软件_雀语知识库

语雀有没有手机端_语雀是什么软件_雀语知识库

目前进入了收益期,通过 UIA 目前已发现的关键问题已达到 70+,相当于避免了多次 hotfix,有效避免了大量线上缺陷的发生。

UIA 的一些优势:

5.1. Macaca 套件

Macaca 是一套面向用户端软件的测试解决方案,提供了自动化驱动,环境配套,周边工具,集成方案,旨在解决终端上的测试、自动化、性能等方面的问题。

我们的自动化能力就是基于 Macaca 扩展实现的。

Macaca 是设计典型的 C/S 架构,提供了标准化的驱动层,消除了各技术平台测试技术栈的差异。用户侧的 API 设计只需要遵从 W3C webdriver 标准 就可以轻松实现多技术栈接入,驱动各类浏览器/设备的自动化测试执行。

语雀有没有手机端_语雀是什么软件_雀语知识库

语雀有没有手机端_雀语知识库_语雀是什么软件

5.2. 多浏览器

我们的 UIA 覆盖了 Web 端 Chrome/Firefox/Safari/Edge 多种主流浏览器,全量 UIA 回归任务基本能够在 30 分钟内完成

积累用例总数 2k+ 500 余条用例涵盖了已有业务核心链路和功能,自动化率达到了 51%

多端回归我们是通过封装 macaca-playwright 驱动实现的,playwright 是微软开源的驱动框架,提供了比较全面、强大的 web UI 测试能力。

雀语知识库_语雀有没有手机端_语雀是什么软件

雀语知识库_语雀是什么软件_语雀有没有手机端

样例报告,过程中提供视频回放,每个细节都可以回溯:

语雀是什么软件_雀语知识库_语雀有没有手机端

5.3. 桌面端 UIA

通过研究和实践系统自动化能力,将系统操作能力封装为 macaca-macos 驱动。

使我们的自动化技术从基于浏览器跨度到基于操作系统层面,实现了桌面端 UIA 技术框架升级。

结合自研的 AppTester 桌面端应用测试框架,支撑了语雀桌面端的 UI 自动化测试。

语雀有没有手机端_语雀是什么软件_雀语知识库

语雀有没有手机端_语雀是什么软件_雀语知识库

桌面端 UIA

5.4. 移动端 UIA

移动端的 UIA,我们采用了 内部云测平台(提供真机测试服务) 的方案,搭配我们自研的 macaca app inspector (元素拾取工具)、 Macaca Reporter 测试报告 和 Reliable 报告持久化服务,实现了完整的移动端自动化测试方案。

语雀有没有手机端_雀语知识库_语雀是什么软件

样例报告:

5.5. UIA 白屏巡检

UI 自动化的另一个应用场景就是巡检。监测线上出现导致不可用的稳定性故障,及早发现,及时告警、止损当然我们运维同学也是配了很多监控报警的,线上的白屏巡检是一种补充保障手段。

实现原理:

通过对线上静态页面和预期页面进行像素级对比,发现线上页面有较大出入时,及时告警。

目前每 10 分钟会不间断执行一次,实现 10 分钟内的白屏发现和告警。

语雀是什么软件_雀语知识库_语雀有没有手机端

移动端也有完备的巡检:

我们通过云测平台设置定时计划实现,目前日常巡检是 iOS 和 Android 端每间隔 4 小时轮换执行一次,每次执行时随机选取一台空闲设备来执行全量的测试用例

雀语知识库_语雀是什么软件_语雀有没有手机端

语雀有没有手机端_语雀是什么软件_雀语知识库

5.6. 录制器

随着 UIA 用例数量的增加,用例维护成本成为不可忽略的负担。我们尝试通过 UI 录制器减轻维护工作。

团队自研的 macaca-recorder 工具基于插件化设计,通过录制的方式生成测试脚本。一个关键特点是支持模板开发,可以定制化录制所需的 UIA 脚本,这样无论封装或者使用什么样的测试框架,都可以灵活支持。

github地址:

语雀是什么软件_雀语知识库_语雀有没有手机端

雀语知识库_语雀是什么软件_语雀有没有手机端

6. 总结6.1. 质量 3.0

通过这样的一个个方案的切实落地,实践之前提到的”教练模式”。实现了业务质量和质量工程齐头并进,让语雀的质量迈入了一个新的台阶, 这里可以用一个工业革命的比喻让大家更好地理解。

从刀耕火种的农耕社会 -> 初步探索工业化 -> 全面工业化(质量 3.0)

雀语知识库_语雀是什么软件_语雀有没有手机端

6.2. 结语

至此语雀的质量体系和自动化能力介绍完了。这是两位 QA 同学会能和确知的语雀数字花园,欢迎一起交流,互相学习。

确知:

会能:

还没有使用过语雀的朋友,也欢迎尝试使用我们的产品。

限时特惠:本站每日持续更新海量各大内部网赚创业教程,会员可以下载全站资源点击查看详情
站长微信:11082411

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。