APP是英文Application的简称,由于iPhone等智能手机的流行,APP指智能手机的第三方应用程序。比较著名的APP商店有Apple的iTunes商店,Blackberry用户的BlackBerry App World,Android的Android Market,还有诺基亚的Ovi store,以及微软的应用商城。
主流App:
1、苹果系统版本 iOS(版本:7.0-9.0)
2、安卓 Android(版本:2.0-6.0)
3、微软 windowsphone
4、塞班系统版本 Symbian(s40、v60等)
主流开发语言:
1、iOS平台开发语言为Objective-C、swift;
2、安卓 Android开发语言为java;
3、微软Windows phone7开发语言是C#;
4、塞班symbian系统版本开发语言是C++。
(1)测试方向
在某项测试职业调查中,App测试一向在测试界都被认为是一项很简单的测试工作。不管简单还是困难,App测试和其他测试工作一样也会有App功能测试、性能测试、自动化测试等测试工作。所以做好App测试,也是一项很好的测试工作。
在进行了手工的功能测试,也开发了一些自动化测试用例后,测试工作看比较完整了,但是当我们的App在大量的用户那里被安装后还是会暴露出很多问题。比如:设备兼容性问题,流量消耗过多,电量消耗过快,在不同网络下手机白屏等。因此我们需要对这些问题进行专项的研究,所以接下来我们会介绍一些常用的专项的测试方法给大家,比如:兼容性测试、电量测试、网络测试…等等。
(2)APP专项测试
1、兼容性测试
兼容性测试问题是比较容易遇到的问题,特别是App用户量越来越大后,而且终端设备型号也越来越多,也加剧了这方面的碎片化,使得兼容性成为不得不考虑的问题,我们也称此为兼容性测试。严格来说兼容性测试也称为功能测试,只不过策重在软硬件的环境上而已
1.如何确定测试机型的范围
因为市面终端机型的众多,所以我们不可能把有限的测试人力和时间都放在兼容性测试上,因此如何在众多机型中确定测试范围又成为我们的研究对象 。
显然机型的确定范围是没有标准答案的,因为这取决于产品本身所处的测试阶段以及对质量的要求。不过这里有一个思路:
可以尽量覆盖该产品的主要用户。这里我们就选取市面比较流行的机型的来作为测试机型范围的选取,而流行的机型的数据如何获取,这里向大家推荐友盟
通过友盟(https://www.umeng.com/)我们可以得到相关的热门Android测试机型:
通过友盟下的指数下的设备指数,我们可以看到设备的关注点一般有:系统、分辨率、联网、机型都是我们需要确定好机型的重要指标
友盟的扩展指数:社交、应用、市场指数(了解部分)
针对兼容APP机型通常我们会考虑以下几个方面:
操作系统:
针对iOS,我们需要考虑iOS版本6、7、8、9,目前部分企业已经抛弃6和7.
针对Android,需考虑2.3、4.x以及5和6.0(6.0目前机型较少)。
屏幕分辨率
由于显示屏技术不断提升和更新,手机屏幕分辨率也在逐步提升,截止目前,主流机型大致经历了800*480、960*640、1280*720、1920*1080、2560*1440几个阶。对于iOS,相对简单一些,主要考虑近几代iphone机型。如果一个App对屏幕分辨率没有做过处理,那么软件就会出现错位、遮挡、留白、拉伸等各种问题
硬件系统构架
Android机型主要有32位和64位的ARM架构、Intel Atom(x86) 等。iOS使用自家平台。
不同厂家的ROM
这个主要是针对Android系统的,比如:魅族的flyme,小米的米柚(miui)、LG的ux、三星的 Touch WIZ等,这些都是经过Android手机厂商对系统进行了深度的定制。如果ROM不兼容则会出现调用相机以及底层服务部兼容的情况
网络类型
我们通常会考虑手机在WiFi、2g、3g、4g下的使用情况。网络类型的考虑主要就是App对网络的策略,以及对于不同网络的带宽、延迟和稳定性的处理。
解放双手的云测试平台——Itestin
针对兼容性测试,如果单纯的只是进行手工测试,通常我们手里的测试机是比较有限的,而且测试机型的增多也会带来测试时间的增加,故目前有一些较大的App云测试平台提供了上千台的真机可供使用,这里就使用itestin为例,进行兼容性测试:
打开http://www.testin.cn
选择标准兼容测试或者深度兼容测试
上传带测试的App并查看结果
另外,该测试平台提供线下的录制和回放的自动化测试,但有些需要
付费购买,需要准备一些相关的预算。
iOS由于系统的封闭性,兼容性的测试也很简单,这里不进行一 一赘述。
兼容性测试用例的编写示例:
2、稳定性测试
稳定性测试 monkey
1.进入 adb shell
2.su root
3.找到安装程序的包
monkey -p 包名 -v 次数
monkey -p 计算器 -v 次数 calculator2
monkey出错 也会有log日志产生 。例如使用照相机。
指定指定按键进行操作。使用hierarchyviewer。获取所需按键的坐标值,填入 x y 中
报hierarchyiewer 过时 ,在 debug monitor 中运行。
脚本monkey:
type = point
count = 4
speed = 1.0
start >> data
LaunchActivity(com.android.calculator2,com.android.calculator2.Calculator )
包名 应用名
captureDispatchPointer(0,0,0,301,331,0,0,0,0,0,0)按键按下去
captureDispatchPointer(1,1,1,301,331,0,0,0,0,0,0)按键松开
UserWait(200) 单位是毫秒。
captureDispatchPointer(0,0,0,179,480,0,0,0,0,0,0)按键按下去
captureDispatchPointer(1,1,1,179,480,0,0,0,0,0,0)按键松开
UserWait(200) 单位是毫秒
保存为 文件名.script 的 文件名。
先打开 motion,再打开 hierarchyviewer等
把文件传入 手机
进入 adb shell
monkey - p 包名 -v -f 脚本名字 次数
事先要打开应用。
monkey -p com.android.calculator2 -v -f /data/local/m.script 10
m.script
type= point
count= 4
speed= 1.0
start data >>
LaunchAc(com.android.calculator2,com.android.calculator2.Calculator);
UserWait(200);
cpatureDispatchPointer(0,0,0,187,719,0,0,0,0,0,0,0);
cpatureDispatchPointer(1,1,1,187,719,0,0,0,0,0,0,0);
UserWait(200);
cpatureDispatchPointer(0,0,0,63,610,0,0,0,0,0,0,0);
cpatureDispatchPointer(1,1,1,63,610,0,0,0,0,0,0,0);
UserWait(200);
cpatureDispatchPointer(0,0,0,178,596,0,0,0,0,0,0,0);
cpatureDispatchPointer(1,1,1,178,596,0,0,0,0,0,0,0);
UserWait(200);
cpatureDispatchPointer(0,0,0,300,594,0,0,0,0,0,0,0);
cpatureDispatchPointer(1,1,1,300,594,0,0,0,0,0,0,0);
UserWait(200);
网友评论