一、包类型

包的类型跟打包指令是有关系的,各大公司有所不同,以下尽量转化成通用说法给大家参考(叫法可能也会有所不同)。
【不看后悔!客户端测试基础】总包回归测试发版,特殊系统、各种类型的包、兼容性设备选择思路-LMLPHP
【不看后悔!客户端测试基础】总包回归测试发版,特殊系统、各种类型的包、兼容性设备选择思路-LMLPHP

二、发版节奏(总包测试策略)

我经历过的一般是2周1版和1周1版。不管发版的频次是什么,都必须依赖下述几个工作:

1、确认版本的需求信息:

一般由项管统计,关键点是要确认list跟合入是一致的(这个一般由内部每个需求测试负责人协助确认);

2、确认版本需要执行的用例范围:

  • 通用核心用例+本版本改动影响点用例。【注意:用例是需要持续维护的】
  • 有的公司版本流程中,会有很多个环节,根据时间节点的不同,用例的数量会有删减,所以一定要确认好用例的核心等级以及与本次总包密切关联的影响面。
  • 如果有自动化,或者其他专项,那么也纳入用例池中。
  • 圈选本次执行总包的设备(容易出问题的、可抓包的,以及其他兼容性策略)

3、确认版本的协作流程:

确认版本日历:主要关注有几个打包节点、每个节点的出包和回归时间是什么、回归完毕后需要做什么(我司是tapd流转和邮件回复)、灰度流程(几轮、几天)、提审信息;
确认突发事件:合作业务或本组业务超时合入情况、严重缺陷跟车、提审打回 等
准入和准出规范:什么情况下可以接测总包、总包期间的合入标准、什么情况下可以交付提审。
确认打包信息:每个节点应该使用什么类型的包(无论如何,都得过一次要上商店的包)。
执行人员和执行安全性:若执行人员非完全内部员工,要注意给到外部同学执行的包需要进行一些定向屏蔽、部分新功能应在有保护状态下执行,防止外泄给用户感知。
总包周期监控事项:总包期间+外发后都需要重点监控crash和ANR,若发现新增品类或者增量上涨,需立即响应。

三、总包测试心得提炼

1、64位安卓包核心覆盖范围:
升级测试内容:32位低升级到32位高、64位低升级到64位高、32位高升级到64位高、32位低升级到64位高;测试可选:64位低升级到32位高。【目前还是64位的多】
注:这里的高和低,指的APP版本。

2、总包的卸载安装测试:
直接更新新包、卸载重装新包。

3、包体积:
注意每个版本都需要关注一下哦。

4、快速装包:
安卓:浏览器可以扫码
iOS:相机可以扫码
生成二维码:可以使用草料二维码

5、审核态:
部分公司业务会屏蔽一些能力以供审核,上架后再放开。

6、系统事件:
连续性操作被系统中断场景(切换应用至后台、电话、点击推送、低电量提示、闹钟 等);

四、其他概念介绍

1、双合

由于整个APP其实是由多团队甚至多部门合作的,所以此处涉及分支管理(各大公司有自己的规范,此处介绍的是其中一种)
双合:既合入master分支,又合入release分支(看下图,新的release分支都是从master分支切出的,若是没有双合,代码等于没有合入)
【不看后悔!客户端测试基础】总包回归测试发版,特殊系统、各种类型的包、兼容性设备选择思路-LMLPHP

2、震动功能原理

  • 有些业务功能会用到手机振动,振动本身依赖手机硬件:振动马达。

  • 目前主流振动马达:转子马达、线性马达;

    • 转子马达:包含常规转子马达、扁平式转子马达:
      //1、成本较低,体积小,震感比较强烈,但是震感没有方向性,振动模式单一且启停比较拖泥带水。
      2、扁平式转子马达比常规转子马达震感会更强一些,一般手机听起来嗡嗡的声音,就是转子马达。
      3、应用机型举例:荣耀70系列vivoS12等。//
    • 线性马达:包含纵向线性马达(z轴)、横向线性马达(x轴):
      //1、线性马达是将电能转化为直线运动机械能,可以进行震感调节。
      2、其中,z轴线性马达成本和体验较为平衡,不过震感相对更弱一些。例如:Redmi K50。
      3、而x轴体验更好,启停干脆利落,震感强烈,但是成本比较高,且体积较大。例如:oppo K10、三星S22、Redmi Note11,iphone13等。//
  • 马达对兼容性的影响:振动类功能,通俗来说就是通过系统,调用对应模块触发振动马达。严格意义上来说,不会有兼容性影响,因为调用振动功能是本身系统逻辑,或者是手机厂商ROM的逻辑。但是有一点要注意一下,由于线性马达震感可调,所以要考虑我们触发振动的时候的震感。

  • **振动功能生效设备分析:**振动的功能依赖于手机本身振动模块,严格来说,所有手机都可以生效,因为基本没有手机没有振动模块。不过由于涉及到调取振动模块功能方法,安卓或者ios版本的不同可能导致方法不一样,所以在较低版本的机器上面,可能就调不到,导致无法触发振动
    例如ios10作为分界线,ios10以下的版本,振动功能方法可能就与10以上的版本不同。
    并且,我们还要考虑,手机本身是可以关闭振动反馈的,那么关闭了振动反馈和没关闭振动反馈,振动效果是否还存在也要关注。

3、iOS墓碑机制

  • 墓碑机制是iOS中用于处理应用程序意外终止的一种机制:当应用程序意外终止时,iOS会将应用程序的状态保存到一个墓碑状态,以便在之后可以回复应用程序的运行。
  • iOS墓碑机制的实现主要依赖于UIApplicationDelegate协议中的三个方法,分别是applicationWillTerminate:、applicationDidEnterBackground:和applicationWillEnterForeground:。

五、设备和兼容性

1、特殊设备收集:

【不看后悔!客户端测试基础】总包回归测试发版,特殊系统、各种类型的包、兼容性设备选择思路-LMLPHP

2、兼容性设备选择思路:(可以用来支持测试和采购)

【不看后悔!客户端测试基础】总包回归测试发版,特殊系统、各种类型的包、兼容性设备选择思路-LMLPHP

01-21 16:30