专栏首页QAPM-腾讯客户端性能分析【私有化质量实践1】出了问题要“坐牢”的SDK
原创

【私有化质量实践1】出了问题要“坐牢”的SDK

春节快乐,干货来袭。具备强大功能的第三方SDK,广泛的应用在APP的设计开发阶段,成为整个软件供应链中不可或缺的一部分。但这也同时意味着,一旦处于供应链上游环节的SDK失守,不仅给大量应用带来安全隐患,更会影响无数用户的网络安全。QAPM进入金融行业以来,一直顺应形势加强应用安全防护,不断提高风险控制,与客户共享行业红利。前言

后台都还好,SDK跟着这些金融类产品发布。我们总开玩笑说,一旦出问题,都是“坐牢”的事情,瑟瑟发抖呀。当然,也许“坐牢”不必,但是前一阵某金融行业内部的产品,就在银监会通报批评了,这种情况可以让你的产品自此在金融行业人间蒸发。那么在这里,SDK的质量如何确保呢?

我们的实践

为了确保SDK的质量保证,我们建立了从测试到发布的流水线,最大程度的确保了SDK的质量。下面,我们就来看看具体的流程吧。

SDK自动化测试流水线

1)SDK风险控制

痛点:SDK不简单的,也很复杂,手工测试极为困难,而且难免疏漏,极有可能造成无法挽回的危机。因此,如何打通流水线和WeTest兼容性测试,降低SDK的风险,对SDK进行风险控制,成了我们急需解决的问题。

解决方案:首先是建立SDK发布流水线,在这里,我们将流水线分为测试流水线和正式发包流水线。

整个发布流程我们大体可以总结为以下四步:

1、codedog扫描-增加质量红线,致命和错误问题数小于0,圈复杂度不超过现有标准,否则不通过;

2、编译测试;

3、金刚扫描(0漏洞标准)- 增加人工审核,如发现有漏洞,停止发布;

4、正式发布 - 发布成功后,回写TAG,同步后台最新版本。

其次,在WeTest兼容性测试过程中,我们主要分为以下两个步骤进行:

1)由流水线定时触发构建及wetest测试(中午晚上各一次)

2)查看测试产品的数据是否符合预期(各数据是否正常展示)

综合以上步骤,我们就打通了流水线和WeTest兼容性测试,从而有效地对SDK进行了风险控制。

2)真机测试

痛点:相对于Demo App,真实App场景复杂,难以获取全面且真实的数据反馈,针对iOS和Android端,我们拥有不同的真机测试方式,从而最大程度的确保测试结果的准确性。

解决方案:

iOS:在测试真机数量较少的情况下,借助于腾讯视频App的数据进行测试,通过腾讯视频的NewMonkey流水线打包ipa文件,然后将ipa文件安装到本地的测试机,全功能上报到QAPM,如果没有发现关于QAPM的SDK上报,则表明SDK正常,从而获取真实且全面的测试结果。

Android:Demo App由于数据都是我们制造的,测试时问题都能发现,与真实App的差别在于真实App的场景较为复杂,无法准确获知问题的发生是否与环境有关,比如说手机环境其他应用的cpu占用比较高,导致其自身cpu的时间片获取不到,运行会比较卡顿,这些东西是无法预估的。针对此类问题,我们使用LeapPic进行测试,LeapPic功能丰富,具有我们埋的一些测试点,事件随机发生,理论上能实现全场景覆盖,并且在跑WeTest测试的时候,我们中午以及晚上各进行一次测试,确保真机测试的客观性与准确性。

Android SDK: https://git.code.oa.com/tencent_cloud_mobile_tools/sop_doc/tree/master/%E7%A7%81%E6%9C%89%E4%BA%91/SDK/Android%20SDK

iOS SDK:

https://git.code.oa.com/tencent_cloud_mobile_tools/sop_doc/tree/master/%E7%A7%81%E6%9C%89%E4%BA%91/SDK/iOS%20SDK

3) 性能测试

痛点:单台设备的性能无法衡量,不能客观且准确的得出性能测试结果。

解决方案:使用多台设备进行性能测试,获取准确且客观的性能数据。同时,在没有自动化测试的情况下,我们会进行手动测试。为了测出该功能的性能消耗,我们一般会准备不包含该功能的app和包含该功能的app,通过两者之间的性能差值来确定性能消耗,为确保手动测试的性能数据报告的可信程度,会分为两种情况:

1、多设备下的monkey测试

使用apm自身的资源监控能力,这种测试手段由于monkey的场景不确定性,仅用作于参考。

2、单设备的同场景测试

通过WeTest的本地自动化工具和perfdog工具,我们可以针对这两个app的同一个场景进行同样的自动化操作,来查看app的fps、cpu以及内存消耗。

写在最后

新的一年,QAPM将持续为各行业提供更丰富的产品、服务和价值,助力客户实现商业价值。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 从0到1,QAPM在私有化实践过程中的质量保障

    QAPM(移动监控)在TMF中交付已经走过两个年头,两年的时间,我们也在不断成长。截止到2020年12月,QAPM私有化工单数量收敛,安灯工单数48单下降到8单...

    010101011001
  • Mac UT实践小结

    开发UT实现:朱浩禹 测试UT实现:韩小晴、余轶斐 FT其他参与者:陈智、熊琦楠 (名字均按首字母排序) 一、为何要做单元测试? 腾讯视频Mac项目研发质量较...

    腾讯移动品质中心TMQ
  • 美国代表新提案:泄露隐私数据,就该让CEO坐牢

    今天,这则美国参议员提案让舆论炸了锅。不少网友聚集在Hacker News跟帖讨论。

    量子位
  • 一篇清晰易懂的Python操控手机APP攻略!

    最近由于一直处于在家远程办公状态,新的一年,很多公司、部门事情要处理,比较忙,公号原创文的创作速度明显减慢!亲爱的读者们,你们都等着急了吧。

    测试开发技术
  • 数据治理与安全运营 | 企业安全俱乐部「上海站」看点回顾

    最近周围的人都很兴奋焦躁,还经常对着日历念念有词,空气中充斥着一股高考倒计时的紧迫感,显然,这是因为2019年4月24日,《复仇者联盟4:终局之战》「FreeB...

    FB客服
  • 私有化IM来啦!

    ? 背景: 在移动互联网时代,即时通信是一种最基础的产品场景。但当前主流的即时通信软件,对一些企业,特别是对于政务、金融、医疗等领域的企业来说,数据不够安全,...

    腾讯云音视频
  • 移动端地图哪些事

    在App中接入地图是很多项目的需求,咱们可选的有百度地图SDK,高德地图SDK甚至是腾讯地图SDK,当然了谷歌中国区地图就不说了……那么问题来了今天说的是啥呢?...

    大话swift
  • APP 精细化运营中,动态运营是关键!

    腾讯移动分析(MTA)首家推出可视化埋点功能,方便App运营者可视化配置数据埋点,简化原有数据代码、审核、发布上架流程;快捷配置,即时生效,精细化运营瞬间加速。

    腾讯大数据
  • 解锁设计优质API的五种秘籍

    原文标题:Secrets to Great API Design,作者:Tasia Potasinski

    Lemon黄
  • 黄文才:云智天枢AI中台架构及AI在K8S中的实践

    2019年9月7日,云+社区(腾讯云官方开发者社区)主办的技术沙龙——AI技术原理与实践,在上海成功举行。现场的5位腾讯云技术专家,在现场与开发者们面对面交流,...

    云加社区技术沙龙
  • 微信支付V3开发包Payment Spring Boot收到了第一个PR

    开源就是这样,不是一味的索取,甚至有些同学感觉理所应当的索取,开源帮助了你,如果条件允许也希望你能够反哺开源,互利共赢才是一个良好的生态循环。zacone同学在...

    码农小胖哥
  • 美图App的移动端DNS优化实践:HTTPS请求耗时减小近半1、引言2、相关文章3、内容概述4、LocalDNS VS  HTTP DNS5、美图APP的DNS 优化策略探索5、美图APP无侵入的 S

    本文引用了颜向群发表于高可用架构公众号上的文章《聊聊HTTPS环境DNS优化:美图App请求耗时节约近半案例》的部分内容,感谢原作者。

    JackJiang
  • 如何做好一次知识或技术分享

    不论一个分享的背景是什么,分享价值的衡量都只能根据听众的受益来衡量,听众才是整个分享的核心,如果听众不能从分享中受益,那这个分享将毫无意义。

    KenTalk
  • 结对编程的正确姿势,你会了吗?

    极限编程的各个实践已经广为人知,也颇具争议,我听到最多的话题当属结对了: “我的小伙伴总拿着键盘不放,只听过麦霸,来到骚窝竟然还有键霸!” “我总算明白为什么面...

    ThoughtWorks
  • 专栏 | 产品经理思维:谈AI 时代的智能服务管理

    提到智能管理,可能大家首先想到的就是智能质检,这类应用与客服机器人有着本质的区别。前者是 AI 帮助人做数据挖掘、人机协同,后者是机器完全替代人来完成封闭场景的...

    机器之心
  • Game AI SDK开源版本发布:基于图像的游戏场景自动化框架

    ? 导语   2020年7月,我们探讨了AI与自动化测试的关系,并向大家介绍了腾讯互动娱乐事业群TuringLab团队出版的《AI自动化测试:技术原理、平台搭...

    WeTest质量开放平台团队
  • 英特尔QSV技术在FFmpeg中的实现与使用

    https://www.baijiayun.com/web/playback/index?classid=18091958472800&session_id=2...

    LiveVideoStack
  • 【穿山甲系列】老司机的千里眼——穿山甲SDK

    APP发布后,在用户侧出现的问题统称为“线上问题”。如果“线上问题”出现了:

    腾讯移动品质中心TMQ
  • 一周简报|智齿客服:智能客服的改造者

    编辑导语 智齿客服:智能客服的改造者; 时代拓灵孙学京:VR再好,也需要声音来衬托; TuSDK:刷脸时代来临,人脸识别先行; TalkingData 联合 K...

    BestSDK

扫码关注云+社区

领取腾讯云代金券