【转载】Android端手机测试体系

时间:2021-04-09 06:02:56

1.冒烟测试

  跟web端 的测试流程一样,你拿到一个你们开发做出来的apk首先得去冒烟,也就是保证他的稳定性,指定时间内不会崩溃。这款原生sdk自带的monkey可以当做 我们的测试工具。就跟我之前博客所说的,monkey测试模拟了用户的按键输入,触摸屏输入等等,看设备多久时间出异常。因为它得用到adb命令,那么同 学们可能还得去自学一下adb命令。如果抓到crash(比如内存溢出,空指针异常什么的),及时向你家开发及时反馈,你也可以把它看成一个性能测试工具。

2.安装,卸载测试 

这项对web应用可能测得比较少,这一块很可能归拢到我在后面讲的适配性测试里面。在不同机型测试你们应用的安装,以及卸载,看看会不会出现问题;

这是个第三方手机助手蔓延的时代,那么发布到手机助手上,检查能不能装卸也是很重要的

 

3.在线升级

一个手机apk得顺应时代的需求,定期时不时的进行更新,在我第一份工作里,很重要的一个内容就是测试在线升级功能。

开发给你一个新版本,你得去测试安装卸载,以及功能流程

4.功能测试

你测试了你们apk的功能测试用例。涵盖三个方面:

4.1业务逻辑测试,测试你家公司apk的业务逻辑流的

4.2功能测试:测试你家apk的功能点的。反正我又不知道你家apk是啥,你自己照着需求书设计呗,测试方法不详细说了

4.3与web端的交互测试。很多apk,比如淘宝啊,京东的app,会跟web客户端进行功能的交互,我想大家都用app来购物,那么你买的东西能正常在web端查看到,这就是你的测试点了。大家可以理解这个意思吧。

5.稳定性及异常性测试

稳定性及异常性测试主要两点:

5.1.交互性测试:客户端作为手机特性测试,包含被打扰的情况13种,来电,来短信,低电量测试等,还要注意手机端硬件上,如:待机,插拔数据线、耳机等操作不会影响客户端。         5.2.异常性测试:主要包含了断网、断电、服务器异常等情况下,客户端能否正常处理,保证数据正确性。

其实这一块又可以跟monkey牵扯到了哈哈

6.性能测试

这一块我不太了解,还是把我自己的想法跟大家说下。

测试点跟web应该差不多,比如尖峰性能啊,压力测试啊,基准性能等等

   1.尖峰性能,在一个时间点,你app的用户量出现井喷现象,有名的双11抢猫猫活动嘿嘿

   2.压力测试,逐渐加压

   3.基准,压服务器端接口及客户端在不同网络环境下响应速度。主要为258原则

  对性能这**兴趣的同学,可以先学学性能有名的理发师模型,比较有趣的。

  在一块,我曾帮别人百度到 loadrunner测试手机apk,很幸运,他成功解决了他的问题。我的想法或许,android端或许,注意是或许,将app的什么 socket,tcp/IP映射到web端的测试工具上,比如jmeter,来进行测试,这是我的一个猜想。另外的大神或许会给我们好的测试方法意见

7.UI测试

界面易用,简介,符合用户者的口味。

 

8.适配性测试

 也就是兼容性测试。

 1.手机分辨率:320*240 、480*320、800*480等等

 2.不同手机版本,2.3,4.2,4.3等等,用户面尽量测的覆盖率高一点

 3.手机系统,很多手机厂商喜欢在android原生系统的基础进行修改,你得测试啦

 4.手机尺寸:3.4,5.0,4.7等等,这里我来插一下话,我在自学android开发的时候有时候会想,如何将自己开发的app调到适合这么多android机型。百分比是个不错的选择

9.电量及流量测试

  用户除了你app的基础功能,适配,UI美观。还关心耗不耗流量跟电量。一般非唤醒状态,后台状态会比较低耗能。这个测试范围,得看你的公司定下的基准。广播貌似可以**用电量,大家了解了可以留言告诉我学习学习哈哈

10.内存泄露

这个东西你可以用monkey抓到,当然也可以DDMS抓

11.回归测试工具

 这个版块的测试工具为大家介绍monkeyrunner,robotium,appnium。

 我一直认为一般小公司,用测试工具,主要是主要功能的回归 。只有大公司才有本钱请大神用自动化黑盒工具来做大规模的测试覆盖。因此我把这三个工具归属于回归测试工具

 11.1monkeyrunner

 该monkeyrunner工具提供了编写控制Android设备或**器从Android的代码之外程序的API。随着monkeyrunner,您可以编写安装一个Android应用程序或测试包,运行它,发送击键它,需要它的用户界面截图,并将截图工作站上的Python程序。

 脚本用jython,what is jython?It is A mix of python and Java。因此可以用java api,当然你也可以扩展。

 11.2appnium

 Appium是一个开源、跨平台的测试框架,可以用来测试原生及混合的移动端应用。Appium支持IOS、 Android及FirefoxOS平台。Appium使用WebDriver的json wire协议,来驱动Apple系统的UIAutomation库、Android系统的UIAutomator框架。Appium对IOS系统的支持得 益于Dan Cuellar’s对于IOS自动化的研究。Appium也集成了Selendroid,来支持老android版本。

 跨架构,native hybrid webview

 跨设备:android ios

 跨语言:java python ruby

 跨app,多个app直接交互

 native本地应用,如android的信息应用

 hybrid native跟webview的结合

 webview 浏览器应用

 11.3robotium

 Robotium是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试, 它提供了模拟各种手势操作(点击、长按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。Robotium结合Android官方提供的测试 框架达到对应用程序进行自动化的测试。另外,Robotium 4.0版本已经支持对WebView的操作。Robotium 对Activity,Dialog,Toast,Menu 都是支持的。

 robotium底层是android的instrument,通过Solo对象来创建一系列操作。但是只能android端,不像appnium跨设备。

 这里扩展一下大家的知识面,如何定位元素,我总结了三个,还有其他方法,请大家留言。

 针对坐标的:

 1.monkey的recorder,之前的博客有详细讲

 2.hierarchyviewer:sdk自带的工具。很多朋友会问商业机为什么不行,因为谷歌做了安全措施。无版本限制,如果你想测4.2以上版本也可以。注意,开发板或者模拟器可以用。

 效率为获得一个界面的所有节点和图片时间为10s左右

 3.uiautomator ,4.2以上android版本的定位利器,可以真机哟。他也是可以做功能测试的