2024年1月17日发(作者:翦艳卉)
移动版H5项目的兼容性测试初探
本文其实就是,我对于“如何对H5项目的兼容性进行测试”这个问题的探索过程,与大家分享一下。大部分资料都是来自于网络,并通过我自己的验证得出的;还有一小部分是我自己经验总结得出的。可能有不严谨的地方,希望大家能够指正。
一、 测试流程简介:
(一) 测试计划与测试设计阶段:这个阶段主要是对项目文档进行解读,然后根据项目的计划情况,安排测试计划;根据项目的策划文档,设计相关的测试方案和测试用例。
(二) 测试执行阶段:主要进行:功能测试、回归测试、兼容性测试。功能测试的主要测试方法是:黑盒测试。根据测试用例,对已经开发完成并通过验收的功能,根据测试计划和测试用例执行功能测试、修改BUG并回归测试、兼容性测试:一般都是在功能测试完成,BUG全部清理完后才进行,主要是为了尽量减少BUG对兼容性测试结果的影响。
(三) 测试总结
目前基本就这几个阶段,但是考虑到现在开发节奏比较快,基本上没有第一阶段,直接进入执行测试阶段,在测试的时候,是边想边测试的。这就导致了会出现测试用例覆盖率不达标的情况。
二、 兼容性测试:
目的:让项目在各种运行环境下,都能有统一的表现。
如果一个项目是在多平台上运行,或者同一平台的不同环境下运行,在功能测试完成之后,都要进行兼容性测试。为的就是:让这个项目能在多个平台上能有如一的表现。
(一) 分析H5项目的运行环境:
根据平台分:android、IOS、wp
1) Android平台下的微信浏览器内核:
1. 微信6.1版以上,会调用内置的浏览器运行(QQ浏览器X5内核,基于Android 5.0 WebView Blink内核,Chrome 37)
PS:在个别机型上有区别,即使是微信6.1,也不会调用微信的浏览器运行,而是调用系统自带的浏览器运行。典型:华硕ZenFone2,比较特殊的一点是,这个手机使用了intel的CPU。
判断是否调用微信内置浏览器,可在微信打开网页后,下拉会在屏幕最上方有提示。
2. 6.1以下版本的微信,会调用系统自带的浏览器内核运行。
Android内嵌的浏览器,又根据系统版本的不同,有所区别:
a) android4.2之前的系统
b) android4.2之后的系统。浏览器内核是有区别的(虽然他们都是基于WebKit内核的)。
2) IOS平台下的浏览器:由于IOS系统的限制,微信不能使用自家的内核,只能调用Safari的内核运行。这里的话,又分为两种情况:
1. IOS8之前
2. IOS8以后包括IOS8(区别就是,IOS8中,苹果推出了新的网页浏览器控件 WKWebView。详情可取搜索WebKitin IOS8)。鉴于IO8以下设备的占
有率很低,在测试成本和时间面前,我觉得可以忽略掉。
3) 分辨率:影响页面显示
1. Android手机目前主流的分辨率有:1280*720、1920*1080、854*480、960*540
2. IOS设备目前的主流分辨率有:1136*640、1334*750、1920*1080、2048*1536、1024*768
1136*640
IOS设备 1334*750
1920*1080
1280*720 16:9
1920*1080
Android设备
854*480
960*540
2048*1536
IOS设备 4:3
1024*768
3. 所以,根据以上分辨率,可以分为两类:16:9和4:3.
4) 手机CPU和GPU,这方面对H5项目影响较小,在提高测试效率面前,可以忽略掉。
(二) 测试策略:
1) 使用:微信6.1以上、调用微信内置浏览器运行的Android手机测试(小米4)
2) 使用:微信6.1以上、调用手机自带浏览器运行的Android手机测试(华硕)
3) 使用:微信6.1以下、调用手机自带浏览器运行的Android4.1的手机测试(小米3)
4) 使用:微信6.1以下、调用手机自带浏览器运行的Android4.3的手机测试(三星S3)
5) 使用:分辨率为16:9、IOS版本是8.0以上的设备测试(iPhone6 Plus)
6) 使用:分辨率为4:3、IOS版本是8.0以上的设备测试(iPadmini2)
综上:完成在这6个设备上的测试,基本可以达到我之前指定的测试标准。
三、手机硬件:这里主要介绍下影响手机兼容性的硬件:CPU和GPU
(一) CPU:这里主要简单介绍下android设备的CPU,由于苹果对CPU数据暴露很少,所以能查到的资料也不多。
1) 高通:移动处理器的绝对领导者,移动处理器高端市场占有率很高
1. 最高型号:高通骁龙820
2. 代表设备:小米系列、国内各大旗舰设备、三星S7、S7 Edge等
2) 联发科:占据了移动处理器市场的中低端位置。Heliox20世界上首款10核移动处理器。
1. 最高型号:heliox25(美[hi:li':oʊ])
2. 代表设备:魅族MX5、红米系列、国产各种千元机等
3) 海思:华为自主研发CPU,定位高端市场
1. 最高型号:麒麟955
2. 代表设备:华为P系列、荣耀系列、Mate系列。如华为P9(955)
4) 三星猎户座:三星自主研发CPU,主要用于三星S系列旗舰手机、及魅族MX、
MX2、MX3、MX4PRO、PRO5等手机。
1. 最高型号:Exynos 7420
2. 代表设备:三星S2-三星S6,部分note系列手机
5) Intel
1. 最高型号:Atom X7系列(类似于酷睿 I7系列)
2. 代表设备:华硕ZenFone系列,联想K900等。
PS:这个CPU各种兼容性问题啊。。
6) Nvidia的Tegra系列:现在手机上很少见这个系列的CPU了,android平板上有些会用到。市场占有率很低。
1. 最高型号:Tegra X1
2. 代表设备:Google Nexus9平板
7) 联芯:国内芯片厂,定位低端
1. 最高型号:L1860C
2. 代表设备:红米2A
8) 德州仪器:在2,3年前的手机上出现过,后来不做手机CPU了
1. 代表机型:nexus2
大概总结下:
高通、联发科市场占有率较高,兼容性也比较好。海思是华为自主研发,在华为很多机型上都会用到,偶然一些应用会出现兼容性的问题,兼容性一般。三星猎户座占有率也不低,但是最新的S7系列手机中,三星都放弃使用自家的CPU改用高通了,可见其性能还是和高通有差距。兼容性方面三星CPU还是比较好的。其他:intel、tegra、联芯现在占有率都很低,基本可以忽略了,而且intel CPU的兼容性超级差。
(二) GPU:
1) Adreno:高通自家CPU自带的GPU,性能强大,有高通CPU的地方,就有这个GPU
1. 最高型号:Adreno 530
2. 代表设备:小米5
2) PowerVR系列:主要用于苹果设备的GPU,性能强大
1. 最高型号:PowerVR 7XT系列
2. 代表设备:苹果设备
3) Mali系列:ARM推出的GPU,联发科、三星CPU猎户座、海思麒麟等,各种不能研发GPU的厂商都用这种GPU
1. 最高型号:Mali T880
2. 代表设备:三星S6、华为P9等
4) Nvidia的Tegra系列:显卡大厂Nvidia研发的TegraCPU自带的GPU
1. 最高型号:Tegra X1
2. 代表设备:GoogleNexus 9
大概总结下:
移动设备的GPU基本都与CPU有关联:高通CPU都是用的Adreno,苹果设备全线都是使用PowerVR系列的GPU,德州仪器的CPU,也是使用PowerVR的GPU的。其他剩余的一些CPU厂商,基本都使用的ARM的Mali系列GPU,Nvidia的CPU也是只用他自家的GPU。
GPU方面的兼容性问题都比较少,市场占有率比较高的:Adreno、PowerVR、Mali系列,兼容性基本都没啥大问题。
2024年1月17日发(作者:翦艳卉)
移动版H5项目的兼容性测试初探
本文其实就是,我对于“如何对H5项目的兼容性进行测试”这个问题的探索过程,与大家分享一下。大部分资料都是来自于网络,并通过我自己的验证得出的;还有一小部分是我自己经验总结得出的。可能有不严谨的地方,希望大家能够指正。
一、 测试流程简介:
(一) 测试计划与测试设计阶段:这个阶段主要是对项目文档进行解读,然后根据项目的计划情况,安排测试计划;根据项目的策划文档,设计相关的测试方案和测试用例。
(二) 测试执行阶段:主要进行:功能测试、回归测试、兼容性测试。功能测试的主要测试方法是:黑盒测试。根据测试用例,对已经开发完成并通过验收的功能,根据测试计划和测试用例执行功能测试、修改BUG并回归测试、兼容性测试:一般都是在功能测试完成,BUG全部清理完后才进行,主要是为了尽量减少BUG对兼容性测试结果的影响。
(三) 测试总结
目前基本就这几个阶段,但是考虑到现在开发节奏比较快,基本上没有第一阶段,直接进入执行测试阶段,在测试的时候,是边想边测试的。这就导致了会出现测试用例覆盖率不达标的情况。
二、 兼容性测试:
目的:让项目在各种运行环境下,都能有统一的表现。
如果一个项目是在多平台上运行,或者同一平台的不同环境下运行,在功能测试完成之后,都要进行兼容性测试。为的就是:让这个项目能在多个平台上能有如一的表现。
(一) 分析H5项目的运行环境:
根据平台分:android、IOS、wp
1) Android平台下的微信浏览器内核:
1. 微信6.1版以上,会调用内置的浏览器运行(QQ浏览器X5内核,基于Android 5.0 WebView Blink内核,Chrome 37)
PS:在个别机型上有区别,即使是微信6.1,也不会调用微信的浏览器运行,而是调用系统自带的浏览器运行。典型:华硕ZenFone2,比较特殊的一点是,这个手机使用了intel的CPU。
判断是否调用微信内置浏览器,可在微信打开网页后,下拉会在屏幕最上方有提示。
2. 6.1以下版本的微信,会调用系统自带的浏览器内核运行。
Android内嵌的浏览器,又根据系统版本的不同,有所区别:
a) android4.2之前的系统
b) android4.2之后的系统。浏览器内核是有区别的(虽然他们都是基于WebKit内核的)。
2) IOS平台下的浏览器:由于IOS系统的限制,微信不能使用自家的内核,只能调用Safari的内核运行。这里的话,又分为两种情况:
1. IOS8之前
2. IOS8以后包括IOS8(区别就是,IOS8中,苹果推出了新的网页浏览器控件 WKWebView。详情可取搜索WebKitin IOS8)。鉴于IO8以下设备的占
有率很低,在测试成本和时间面前,我觉得可以忽略掉。
3) 分辨率:影响页面显示
1. Android手机目前主流的分辨率有:1280*720、1920*1080、854*480、960*540
2. IOS设备目前的主流分辨率有:1136*640、1334*750、1920*1080、2048*1536、1024*768
1136*640
IOS设备 1334*750
1920*1080
1280*720 16:9
1920*1080
Android设备
854*480
960*540
2048*1536
IOS设备 4:3
1024*768
3. 所以,根据以上分辨率,可以分为两类:16:9和4:3.
4) 手机CPU和GPU,这方面对H5项目影响较小,在提高测试效率面前,可以忽略掉。
(二) 测试策略:
1) 使用:微信6.1以上、调用微信内置浏览器运行的Android手机测试(小米4)
2) 使用:微信6.1以上、调用手机自带浏览器运行的Android手机测试(华硕)
3) 使用:微信6.1以下、调用手机自带浏览器运行的Android4.1的手机测试(小米3)
4) 使用:微信6.1以下、调用手机自带浏览器运行的Android4.3的手机测试(三星S3)
5) 使用:分辨率为16:9、IOS版本是8.0以上的设备测试(iPhone6 Plus)
6) 使用:分辨率为4:3、IOS版本是8.0以上的设备测试(iPadmini2)
综上:完成在这6个设备上的测试,基本可以达到我之前指定的测试标准。
三、手机硬件:这里主要介绍下影响手机兼容性的硬件:CPU和GPU
(一) CPU:这里主要简单介绍下android设备的CPU,由于苹果对CPU数据暴露很少,所以能查到的资料也不多。
1) 高通:移动处理器的绝对领导者,移动处理器高端市场占有率很高
1. 最高型号:高通骁龙820
2. 代表设备:小米系列、国内各大旗舰设备、三星S7、S7 Edge等
2) 联发科:占据了移动处理器市场的中低端位置。Heliox20世界上首款10核移动处理器。
1. 最高型号:heliox25(美[hi:li':oʊ])
2. 代表设备:魅族MX5、红米系列、国产各种千元机等
3) 海思:华为自主研发CPU,定位高端市场
1. 最高型号:麒麟955
2. 代表设备:华为P系列、荣耀系列、Mate系列。如华为P9(955)
4) 三星猎户座:三星自主研发CPU,主要用于三星S系列旗舰手机、及魅族MX、
MX2、MX3、MX4PRO、PRO5等手机。
1. 最高型号:Exynos 7420
2. 代表设备:三星S2-三星S6,部分note系列手机
5) Intel
1. 最高型号:Atom X7系列(类似于酷睿 I7系列)
2. 代表设备:华硕ZenFone系列,联想K900等。
PS:这个CPU各种兼容性问题啊。。
6) Nvidia的Tegra系列:现在手机上很少见这个系列的CPU了,android平板上有些会用到。市场占有率很低。
1. 最高型号:Tegra X1
2. 代表设备:Google Nexus9平板
7) 联芯:国内芯片厂,定位低端
1. 最高型号:L1860C
2. 代表设备:红米2A
8) 德州仪器:在2,3年前的手机上出现过,后来不做手机CPU了
1. 代表机型:nexus2
大概总结下:
高通、联发科市场占有率较高,兼容性也比较好。海思是华为自主研发,在华为很多机型上都会用到,偶然一些应用会出现兼容性的问题,兼容性一般。三星猎户座占有率也不低,但是最新的S7系列手机中,三星都放弃使用自家的CPU改用高通了,可见其性能还是和高通有差距。兼容性方面三星CPU还是比较好的。其他:intel、tegra、联芯现在占有率都很低,基本可以忽略了,而且intel CPU的兼容性超级差。
(二) GPU:
1) Adreno:高通自家CPU自带的GPU,性能强大,有高通CPU的地方,就有这个GPU
1. 最高型号:Adreno 530
2. 代表设备:小米5
2) PowerVR系列:主要用于苹果设备的GPU,性能强大
1. 最高型号:PowerVR 7XT系列
2. 代表设备:苹果设备
3) Mali系列:ARM推出的GPU,联发科、三星CPU猎户座、海思麒麟等,各种不能研发GPU的厂商都用这种GPU
1. 最高型号:Mali T880
2. 代表设备:三星S6、华为P9等
4) Nvidia的Tegra系列:显卡大厂Nvidia研发的TegraCPU自带的GPU
1. 最高型号:Tegra X1
2. 代表设备:GoogleNexus 9
大概总结下:
移动设备的GPU基本都与CPU有关联:高通CPU都是用的Adreno,苹果设备全线都是使用PowerVR系列的GPU,德州仪器的CPU,也是使用PowerVR的GPU的。其他剩余的一些CPU厂商,基本都使用的ARM的Mali系列GPU,Nvidia的CPU也是只用他自家的GPU。
GPU方面的兼容性问题都比较少,市场占有率比较高的:Adreno、PowerVR、Mali系列,兼容性基本都没啥大问题。