有赞 GO 项目单测、集成、增量覆盖率统计与分析

一、引言 我是一名中间件 QA,我对应的研发团队是有赞 PaaS,目前我们团队有很多产品是使用 go 语言开发,因此我对 go 语言项目的单测覆盖率、集成以及增量测试覆盖率统计与分析做了探索。 二、单测覆盖率以及静态代码分析 2.1、单测覆盖率分析 Go 语言自身提供了单元测试工具 go test,单元测试文件必须以 *_test.go…

Read More

有赞移动基础设施建设的实践和思考

移动基础设施的建设已经不用再过多解释,每个涉及移动开发的企业都在一步一步地建设移动基础设施,目标是为了服务移动团队,提供移动开发全流程的技术支撑,减少研发成本、提升开发效率、保障稳定质量。 有赞,是一个商家服务公司。我们帮助每一位重视产品和服务的商家私有化顾客资产、拓展互联网客群、提高经营效率,全面助力商家成功。随着近些年来业务的快速发展,移动领域功能越来越复杂,迭代速度越来越快,我们在移动基础设施方面的建设日益完善。 12月7日,有赞移动技术沙龙向大家介绍了在移动基础建设方面的成果,到场的小伙伴们也十分热情。这里对有赞移动基础建设做一个系统的介绍,也分享一下我们的思考。 下图是目前有赞移动的整体架构图,现在每天需要经历上百次构建,每周迭代一个版本,…

Read More

有赞灰度发布与蓝绿发布实践

背景 近几年,随着有赞用户的迅速增长和业务的快速发展,对业务开发人员要求越来越高,一方面要求为用户提供稳定的服务,一方面要求进行快速业务迭代。然而,随着公司业务复杂度和服务化整体规模的增长,单个业务功能涉及的微服务接口数、服务化调用链路长度都在迅速增加,业务的回归测试越来越难以覆盖到所有的调用链路和业务逻辑,通过仅在测试环境进行业务测试的方式来保证系统稳定性的难度越来越高。 基于系统稳定性和快速业务迭代的综合考虑,业务应用开发团队采取了新版本服务灰度上线的方式,即新版本服务并非全量发布到线上环境,而是发布少数几个实例进行灰度验证,没有问题后再全量发布。在部分核心服务进行接口升级和逻辑迁移时,还会通过在业务逻辑代码中增加黑白名单或者流量百分比控制的方式,逐步将旧版本接口实现迁移至新版本接口实现。该方式较好地权衡了服务稳定性和业务迭代效率,但仍存在以下问题: 需要业务开发人员在服务接口中编码大量与业务逻辑无关的黑白名单或流量百分比控制代码,对业务入侵比较大; 调整黑白名单或流量控制百分比,…

Read More

有赞iOS-基于二进制的编译提效策略

一、需求背景 自有赞零售正式发布以来,已迭代百余个版本,业务的发展免不了带来工程代码的飞速增加,时至今日,有赞零售工程的业务代码数量已达24w行,所使用的的二方/三方 Pod 库的数量达到了100+,业务模块包括商品,交易,库存,会员等模块一共有15+;工程的急速膨胀给我们的日常开发中带来了诸多痛点: 工程编译速度降低,clean-build 一次需要25min左右 打包速度降低,在打包提测窗口增加了等待的时长 Merge Request 时触发的编译检查速度降低,多人员合并时造成堵塞…

Read More

有赞指标库实践

一、概述 1.1 遇到的挑战 不知道大家在日常工作中是否会经常遇到如下类似的问题: 商家:为什么 A 页面上的数据和 B 页面上的数据对不上?开发:我去看看(一段时间后),A 是来自 a 表,B 是来自 b 表,一个包含 XXX…

Read More