2023年6月21日发(作者:)
APP专项测试内容 除了⼀般功能性测试和性能测试外,app还需要⼀些专项测试来发现更为深层的问题。之所以称为专项测试,是因为这些测试主要针对某个特殊⽅⾯或问题的,如兼容性测试、流量测试、电量测试、弱⽹环境测试、安全测试等。兼容测试兼容性测试使功能测试,只不过侧重在不同的软硬件环境,这是由终端设备的型号多样性决定的。测试核⼼内容包括· 测试软件是否能在不同的操作系统平台上兼容,或测试软件是否能在同⼀操作平台的不同版本上兼容;· 软件本⾝能否向前或向后兼容;· 测试软件能否与其他相关的软件兼容;· 数据兼容性测试,主要是指数据能否共享等。针对App通常会考虑到如下软硬件环境:操作系统版本及⼤版本下的⼩版本,如安卓系统4下⾯有⼦版本号:4.0.2、4.2、4.4等。屏幕分辨率,如果代码缺少对分辨率做适配除了,就会出现错位,拉伸、模糊等各种显⽰问题。⽹络类型,这可能涉及app中对不同⽹络的策略,及对不同⽹络带宽、延时和稳定性的处理,要考虑到3G、4G、wifi⽹络下的功能情况。对于⼿机M版⽹站,要考虑不同的浏览器类型,这包括主流⼚商⼿机上⾃带的浏览器,及主流第三⽅浏览器。各种机型和版本不可能都覆盖,因此要遵循⼀个通⽤的选择机型原则,如下根据APP的⽤户特征挑选出要覆盖的设备范围,以保证我们选择的机型,就是在实际应⽤当中主要⽤户群使⽤的机型。考虑⽬前市场当中⼿机的主流分辨率,这⾥可以将分辨率分为⼏个级别(⼀种常见的分法是720P(1280x720),1080P(1920x1080),2K(2x1080p)和4K),我们选择的机型能够覆盖所有级别即可。系统版本的不断更新,可能导致之前可以正常使⽤的软件功能出现异常,我们要保证软件可以对⼀个系列的操作系统有较好的兼容性,所以有必要考虑主要⽤户群使⽤了哪些版本的系统。⼀般选择少数主流设备上执⾏全部⽤例,在其他兼容性范围内的设备上覆盖主要功能的⽤例。将⽤户反馈问题较多的部分机型也纳⼊兼容测试的列表中,毕竟经常出现问题的地⽅就是需要我们更加关注的。启动时间测试启动时间对于App的性能测试,启动时间是个重要指标,启动时间分为两种情况,⼀种是冷启动时间(通常是系统重启,即在启动前没有该App进程的情况),另⼀种是热启动,即App从被切换到前台(点back退出后再点击图标启动,⼿机系统中有该APP进程)。QA测试时,⼀般关注冷启动的启动时间。冷启动的流程即为App启动流程的全过程, 需要创建App进程, 加载相关资源, 启动Main Thread, 初始化⾸屏Activity等。常⽤的测试⽅法有1、 通过adb命令,如adb logcat、adb shell am start -W packagename/MainActivity(app的包名和包的启动页)命令,-W就是wait的意思其中adb shell am 命令执⾏成功后,将返回三个测量到的时间:C:Userschenping>adb shell "pm list packages | grep dang"package:2C:Userschenping>adb shell "dumpsys package 2 | grep ER -B4" : 42c07de8 2/.StartupActivity filter 42c08038 Action: "" Category: "T" Category: "ER"C:Userschenping>adb shell am start -W 2/.StartupActivityStarting: Intent { act= cat=[ER] cmp=2/.StartupActivity }Status: okActivity: 2/.StartupActivityThisTime: 3942TotalTime: 3942CompleteThisTime:⼀般和TotalTime时间⼀样,除⾮在应⽤启动时开了⼀个透明的Activity预先处理⼀些事再显⽰出主Activity,这样将⽐TotalTime⼩。TotalTime:应⽤的启动时间,包括创建进程+Application初始化+Activity初始化到界⾯显⽰。TotalTime表⽰新应⽤启动的耗时,包括新进程的启动和 Activity 的启动,但不包括前⼀个应⽤Activity pause 的耗时。也就是说,开发者⼀般只要关⼼ TotalTime 即可,这个时间才是⾃⼰应⽤真正启动的耗时。2、代码⾥埋点流量测试流量是指能够连接⽹络的设备在⽹络上所产⽣的数据流量。这⾥只关注⽤户层⾯的流量⼀般对于APP流量的测试需要考虑以下两种场景,⼀种是活动状态,也就是⽤户对APP操作⽽直接导致的流量消耗;静默转态,也就是⽤户没有操作APP,APP处于后台转态时流量的消耗。流量测试通常的⽅法为1、 通过抓包软件,查看⼯具上的流量统计信息2、 查看linux流量统计⽂件,如查看某个应⽤的流量,⼤致步骤为⾸先通过ps| grep 包名 获取该应⽤pid;再通过cat /proc/{pid}/status命令获取uid;再通过cat /proc/uid_stat/{uid}/tcp_snd 命令获取发送的流量(单位byte),通过cat /proc/uid_stat/{uid}/tcp_rcv获取接收的流量。这样就可以⼤致知道该应⽤消耗的流量了。CPU测试测试⼀款APP在各种场景下CPU的占⽤率情况也是⽐较重要的指标。⼀般APP的CPU测试也需要考虑两种场景,⼀种是活动转态,即APP处于操作活动中,第⼆种是APP什么操作都没有,默默在后台等待。测试CPU占⽤率的⽅法有1、 ⼿机⾃带监控2、 dumpsys命令,如adb shell dumpsys cpuinfo | grep {packagename}3、 top命令,如adb shell top | grep {packagename}shell@virgo:/data $ dumpsys cpuinfo | grep dangdang 6.4% 7728/2: 5.1% user + 1.3% kernel / faults: 4493 minor 3.9% 7923/2:ddrn: 2.5% user + 1.4% kernel / faults: 152 minor内存测试对于智能⼿机⽽⾔,内存⼤⼩是固定的;因此,如果单个app的内存占⽤越⼩,⼿机上可以安装运⾏的app就越多;或者说app的内存占⽤越⼩,在⼿机上运⾏就会越流畅。所以说,内存占⽤的⼤⼩,也是考量app性能的⼀个重要指标。1、同样使⽤top命令,查看应⽤占⽤内存的数量,其中RSS字段表⽰实际占⽤的物理内存数,单位KB2、adb shell dumpsys meminfo
2023年6月21日发(作者:)
APP专项测试内容 除了⼀般功能性测试和性能测试外,app还需要⼀些专项测试来发现更为深层的问题。之所以称为专项测试,是因为这些测试主要针对某个特殊⽅⾯或问题的,如兼容性测试、流量测试、电量测试、弱⽹环境测试、安全测试等。兼容测试兼容性测试使功能测试,只不过侧重在不同的软硬件环境,这是由终端设备的型号多样性决定的。测试核⼼内容包括· 测试软件是否能在不同的操作系统平台上兼容,或测试软件是否能在同⼀操作平台的不同版本上兼容;· 软件本⾝能否向前或向后兼容;· 测试软件能否与其他相关的软件兼容;· 数据兼容性测试,主要是指数据能否共享等。针对App通常会考虑到如下软硬件环境:操作系统版本及⼤版本下的⼩版本,如安卓系统4下⾯有⼦版本号:4.0.2、4.2、4.4等。屏幕分辨率,如果代码缺少对分辨率做适配除了,就会出现错位,拉伸、模糊等各种显⽰问题。⽹络类型,这可能涉及app中对不同⽹络的策略,及对不同⽹络带宽、延时和稳定性的处理,要考虑到3G、4G、wifi⽹络下的功能情况。对于⼿机M版⽹站,要考虑不同的浏览器类型,这包括主流⼚商⼿机上⾃带的浏览器,及主流第三⽅浏览器。各种机型和版本不可能都覆盖,因此要遵循⼀个通⽤的选择机型原则,如下根据APP的⽤户特征挑选出要覆盖的设备范围,以保证我们选择的机型,就是在实际应⽤当中主要⽤户群使⽤的机型。考虑⽬前市场当中⼿机的主流分辨率,这⾥可以将分辨率分为⼏个级别(⼀种常见的分法是720P(1280x720),1080P(1920x1080),2K(2x1080p)和4K),我们选择的机型能够覆盖所有级别即可。系统版本的不断更新,可能导致之前可以正常使⽤的软件功能出现异常,我们要保证软件可以对⼀个系列的操作系统有较好的兼容性,所以有必要考虑主要⽤户群使⽤了哪些版本的系统。⼀般选择少数主流设备上执⾏全部⽤例,在其他兼容性范围内的设备上覆盖主要功能的⽤例。将⽤户反馈问题较多的部分机型也纳⼊兼容测试的列表中,毕竟经常出现问题的地⽅就是需要我们更加关注的。启动时间测试启动时间对于App的性能测试,启动时间是个重要指标,启动时间分为两种情况,⼀种是冷启动时间(通常是系统重启,即在启动前没有该App进程的情况),另⼀种是热启动,即App从被切换到前台(点back退出后再点击图标启动,⼿机系统中有该APP进程)。QA测试时,⼀般关注冷启动的启动时间。冷启动的流程即为App启动流程的全过程, 需要创建App进程, 加载相关资源, 启动Main Thread, 初始化⾸屏Activity等。常⽤的测试⽅法有1、 通过adb命令,如adb logcat、adb shell am start -W packagename/MainActivity(app的包名和包的启动页)命令,-W就是wait的意思其中adb shell am 命令执⾏成功后,将返回三个测量到的时间:C:Userschenping>adb shell "pm list packages | grep dang"package:2C:Userschenping>adb shell "dumpsys package 2 | grep ER -B4" : 42c07de8 2/.StartupActivity filter 42c08038 Action: "" Category: "T" Category: "ER"C:Userschenping>adb shell am start -W 2/.StartupActivityStarting: Intent { act= cat=[ER] cmp=2/.StartupActivity }Status: okActivity: 2/.StartupActivityThisTime: 3942TotalTime: 3942CompleteThisTime:⼀般和TotalTime时间⼀样,除⾮在应⽤启动时开了⼀个透明的Activity预先处理⼀些事再显⽰出主Activity,这样将⽐TotalTime⼩。TotalTime:应⽤的启动时间,包括创建进程+Application初始化+Activity初始化到界⾯显⽰。TotalTime表⽰新应⽤启动的耗时,包括新进程的启动和 Activity 的启动,但不包括前⼀个应⽤Activity pause 的耗时。也就是说,开发者⼀般只要关⼼ TotalTime 即可,这个时间才是⾃⼰应⽤真正启动的耗时。2、代码⾥埋点流量测试流量是指能够连接⽹络的设备在⽹络上所产⽣的数据流量。这⾥只关注⽤户层⾯的流量⼀般对于APP流量的测试需要考虑以下两种场景,⼀种是活动状态,也就是⽤户对APP操作⽽直接导致的流量消耗;静默转态,也就是⽤户没有操作APP,APP处于后台转态时流量的消耗。流量测试通常的⽅法为1、 通过抓包软件,查看⼯具上的流量统计信息2、 查看linux流量统计⽂件,如查看某个应⽤的流量,⼤致步骤为⾸先通过ps| grep 包名 获取该应⽤pid;再通过cat /proc/{pid}/status命令获取uid;再通过cat /proc/uid_stat/{uid}/tcp_snd 命令获取发送的流量(单位byte),通过cat /proc/uid_stat/{uid}/tcp_rcv获取接收的流量。这样就可以⼤致知道该应⽤消耗的流量了。CPU测试测试⼀款APP在各种场景下CPU的占⽤率情况也是⽐较重要的指标。⼀般APP的CPU测试也需要考虑两种场景,⼀种是活动转态,即APP处于操作活动中,第⼆种是APP什么操作都没有,默默在后台等待。测试CPU占⽤率的⽅法有1、 ⼿机⾃带监控2、 dumpsys命令,如adb shell dumpsys cpuinfo | grep {packagename}3、 top命令,如adb shell top | grep {packagename}shell@virgo:/data $ dumpsys cpuinfo | grep dangdang 6.4% 7728/2: 5.1% user + 1.3% kernel / faults: 4493 minor 3.9% 7923/2:ddrn: 2.5% user + 1.4% kernel / faults: 152 minor内存测试对于智能⼿机⽽⾔,内存⼤⼩是固定的;因此,如果单个app的内存占⽤越⼩,⼿机上可以安装运⾏的app就越多;或者说app的内存占⽤越⼩,在⼿机上运⾏就会越流畅。所以说,内存占⽤的⼤⼩,也是考量app性能的⼀个重要指标。1、同样使⽤top命令,查看应⽤占⽤内存的数量,其中RSS字段表⽰实际占⽤的物理内存数,单位KB2、adb shell dumpsys meminfo
发布评论