摘要:在冒烟测试执行过程中,开发可以跟测试确定一个合理的冒烟用例数。另外在中台测试组每月或每季度会成立专项测试小组专门执行对应的专项测试。
一、团队概况
有赞帮助每一位重视产品和服务的商家成功,目前旗下拥有:有赞微商城、有赞零售、有赞美业、有赞小程序等SaaS软件产品,适用全行业多场景,帮商家网上开店、网上营销、管理客户、获取订单。
有赞业务中台测试团队按照职责划分为六条线:交易组、营销组、用户赋能组、商品大数据组、基保工具组和稳定性组,各组职能如下:
接下来给大家介绍一下中台测试团队的质量保障体系以及我们在测试效率提升上做的事情。
在定义里面测试是对软件规格说明、软件设计和编码的最后复审。但软件质量不是测出来的,而是贯穿整个软件开发生命周期,需要各方配合,测试环节的目的只是在产品交付之前尽可能多的发现问题,测试是一个找错的过程,但无法保证经过测试的代码一定正确,无法证明程序无错。为了保证尽可能地交付高质量软件,我们会要求测试人员介入软件整个生命周期的各个关键节点,如下图所示:
做正确的事比正确地做事更重要,问题发现越晚,修复的成本就越高,在需求阶段测试左移,开发测试产品一起参与需求评审,测试参与技术评审,提前发现设计问题、可测性问题,当然这会需要开发和测试有比较强的需求分析能力和测试分析能力。
2.2 开发阶段 我们会提供冒烟测试用例,并要求开发在提测之前完成执行,有两个目的,一是减少提测的轮数,提测打回的次数越多,资源浪费就越多;二是很多开发不是不想测而是不知道测什么,冒烟测试阶段测试会给开发用例,可以帮助开发梳理要自测的用例。在冒烟测试执行过程中,开发可以跟测试确定一个合理的冒烟用例数。另外关于冒烟质量的评价,我们有提测打回的机制,3次打回需求可以不测。
开发阶段,我们对于核心应用的静态代码扫描以及单测也有一定的要求。
上图是 Martin Fowler 博客里面截的测试金字塔,越是上层的测试,就会耗费越多的精力、时间和成本。假设我们在验收阶段发现了问题,这个时候修复代码会导致之前测过的功能很可能需要重新测试一遍,项目延期的风险很高,而且bugfix有引入新bug的风险。所以我们希望在单测或者静态代码扫描阶段可以尽可能发现问题,降低成本。
中台需要提供各种能力到上层,目前我们整体的用例量 10000+,如此庞大的用例量无法通过单纯的功能测试进行很好地质量保障,搭建完善的自动化保障体系非常重要。
除了要求各应用的单测覆盖率和有效性以外,我们会花费较多精力在不同维度的集成测试上,如上图所示,其中展现层的业务编排通过集成测试和拨测系统进行保障,这里面还有外部调用的情况,比如电商、零售,所以我们的集成测试还会包含电商零售的P1P2场景。在UI层,业务稳定的线,会做一部分UI自动化,覆盖核心场景。
在这个环节,部分业务线会根据项目情况做专项测试,包括:异常测试、性能测试、安全测试和兼容性测试。另外在中台测试组每月或每季度会成立专项测试小组专门执行对应的专项测试。
2.4 发布阶段在发布阶段,我们提供了快车发布流程、SOA合并发布流程和 iron 公交车发布流程,各线根据业务实际情况会做微调,尽量精简并适合各自业务特点的发布流程把控。这样做的好处显而易见,上车的功能会经过测试的二次check,跟分开多带带发相比,质量更有保障,原先多次测试介入合并成一次,更能节约测试资源。
此外根据项目情况,可以选择灰度发布,灰度发布会在生产环境稳定集群之外,额外部署一个小规模的灰度集群,并通过流量控制,引入部分流量到灰度集群,进行正式生产发布前的灰度验证。流量控制可支持百分比、店铺ID等,如果灰度发布验证有问题,则流量重新切回稳定集群即可。
针对应用的不同情况,还可以接入流量回放平台,采集线上请求到预发环境执行,然后对比线上和预发响应,如果响应结果不一致则判断可能是预发部署的代码分支有bug,加速回归速度。
2.5 上线阶段在这一环节,主要通过线上业务监控和拨测系统进行质量防护,线上拨测的用例是场景化的,即使使用量非常少的业务场景也能发现问题,但不足的点在于无法发现一些特殊店铺才会触发的问题以及一些偶现问题,需要业务监控进行补充。针对前端核心场景,也会有部分的UI自动化运行。
三、中台测试效率提升为了提升大家的测试效率,我们开发了很多工具。部分也在测试博客内做了详细的介绍,篇幅有限,简单介绍几个。
3.1 测试平台 测试平台包含数据工厂、用例平台、mock工厂、云测平台、测试报告等。大家可以点击到具体的文章查阅详细设计思路。
微服务化后,快速迭代的门槛越来越低,但是对复杂系统稳定性的考验却在成倍增长,在复杂的分布式服务体系中,故障发生的随机性和不可预测性都大大增加了。混沌工程可以提高系统弹性,通过设计和执行一系列实验,帮助我们提前发现系统中潜在的问题,除了常规故障注入,也可以探究更多其他的非故障类的场景。关于混沌工程的介绍可以看这里
3.3 持续交付 为了让项目更有质量地交付,我们深度参与并设计了持续交付流程,实现底层调度逻辑,将质量保障策略融入整个pipeline,让产品交付的质量得到更好的保障。
公交车系统的作用是为了让整个发布测试流程更有效率,同时通过将多人变更合并发布,节约测试轮次。另外公交车系统与持续交付系统也做了一些融合,比如开发自测的需求可以在发车时及时关注到自动化测试结果。
在介绍质量保障体系时提到过上线后的节点,我们主要通过线上业务监控和拨测系统进行质量防护,关于拨测系统的详细介绍可以见这里。
3.6 性能测试平台性能测试平台目前分成单接口压测和全连路压测两块,除了让压测过程更加简单便捷以外,还提供了自动生成压测结果图表的功能,方便大家生成压测报告。
3.7 度量平台我们提供了数据度量平台,通过分析项目过程、质量数据以及上线以后的各类数据表现,判断出不同纬度的质量情况以及软件开发生命周期中出现的问题,方便及时调整优化,这部分数据比较敏感,暂时不给截图了。
3.8 覆盖率与精准我们目前用的覆盖率工具是 JaCoCo ,在之前的博客里面,也跟大家介绍过我们针对 JaCoCo 做的改造,使它支持计算增量代码覆盖率。另外结合调用链,我们做了精准测试工具,可以通过代码改动,精确评估影响范围。
以上是团队的大致情况介绍,篇幅有限,很多东西没有罗列。有赞测试组在持续招人中,大量岗位空缺,欢迎大家加入,可以一对一详细讲解,有意向换工作的同学欢迎发简历到 winta【@】youzan.com ,当天即可回复。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/75928.html
摘要:因此数据中台必须具备智能化能力,能够为业务提供一定的智能数据分析能力。宜信作为一家金融科技公司,更多面对的是金融领域的智能业务需求。 showImg(https://segmentfault.com/img/bVbqQM0?w=1155&h=492); 内容来源:宜信技术学院第1期技术沙龙-线上直播|AI中台:一种敏捷的智能业务支持方案 主讲人介绍:井玉欣 宜信技术研发中心AI应用团队...
摘要:基于的动态配置推送。对于任务中心这种多任务平台型的配置,有一定影响。基于回调和配置的扩展点流程共建在建中通过扩展点共建方式,将流程编排的能力,暴露给内外部的开发者,完成任务中心的共建。 一、聊聊本文想说什么: 为更好帮助商家的会员快速成长,保持用户活性,完善用户的成长体系,有赞用户中心-会员成长团队基于现有的业务场景,设计了一套较完备任务中心系统。同时也有很多通用技术组件能够落地。...
摘要:年加入有赞作为兼联合创始人,目前在有赞管理着多人的技术团队,带领团队致力于打造中国领域最好的开店软件解决方案。访谈内容如下,还请大家多提建议和反馈,大不了继续去骚扰崔玉松老师。 前不久,获悉有赞科技发布了个有赞云,据说开发者随便搞搞,分分钟便可以上线一个商城,略有不明觉厉之感。好不容易抓到了正在度假的有赞 CTO 兼联合创始人崔玉松老师,就毫不专业地用微信发了一堆问题列表过去。好在玉松...
阅读 1346·2021-11-25 09:43
阅读 2001·2021-07-26 23:38
阅读 661·2019-08-30 15:53
阅读 2259·2019-08-30 15:43
阅读 1139·2019-08-29 18:40
阅读 1930·2019-08-26 13:28
阅读 1900·2019-08-23 18:20
阅读 464·2019-08-23 15:07