【转载】Android端手机测试体系
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版本的定位利器,可以真机哟。他也是可以做功能测试的
【转载】Android端手机测试体系的更多相关文章
- Android端手机测试体系
1.冒烟测试 跟web端的测试流程一样,你拿到一个你们开发做出来的apk首先得去冒烟,也就是保证他的稳定性,指定时间内不会崩溃.这款原生sdk自带的monkey可以当做我们的测试工具.就跟我之前博客所 ...
- 锅巴视频工作室 ----------------android端蓝牙测试demo--app
android端蓝牙测试demo--app 这个是为一个客户做蓝牙项目时的一个测试demo,用来测试蓝牙单片机的收发情况,代码中没有做一些兼容性测试,请理解 锅巴视频工作室,专注于android视频相 ...
- opencv 手写选择题阅卷 (四)Android端 手机应用开发
opencv 手写选择题阅卷 (四)Android 手机应用开发 在PC端把代码调通以后开始开发Android 手机应用,因为主要功能代码为C++代码,所以需要通过NDK编译,JAVA通过JNI方式调 ...
- Android端项目测试
目录 一.概述 二.使用工具 三.测试 1.测试主要的两大功能 进入主界面,测试排行榜查看功能是否能运行 测试83端口打卡能否运行 修改个人信息已经注册功能 2.测试参数是否正确 3.测试刷新能否使用 ...
- 腾讯技术分享:Android版手机QQ的缓存监控与优化实践
本文内容整理自公众号腾讯Bugly,感谢原作者的分享. 1.问题背景 对于Android应用来说,内存向来是比较重要的性能指标.内存占用过高,会影响应用的流畅度,甚至引发OOM,非常影响用户体验.因此 ...
- 使用Frida简化Android端应用安全测试
@author : Dlive 在对Android应用进行Web漏洞测试时,经常遇到一种情况:HTTP传输的数据带有签名字段 处理这种情况的方法通常是逆向签名算法,但是如果算法在so中,而且so加壳了 ...
- 如何做好 Android 端音视频测试?
在用户眼中,优秀的音视频产品应该具有清晰.低延时.流畅.秒开.抗丢包.高音效等特征.为了满足用户以上要求,网易云信的工程师通过自建源站,在SDK端为了适应网络优化进行QoS优化,对视频编码器进行优化, ...
- pc端和android端应用程序测试有什么区别?(ps面试题)
pc端和android端应用程序测试有什么区别?(ps面试题) [VIP7]大连-凭海临风(215687736) 2014/4/10 8:56:171.测试环境不同PC平台一般都是windows an ...
- 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)
1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...
随机推荐
- 忘记Mysql登录密码
1,使用安全模式跳过验证: 如果 Mysql在运行,Kill掉. 如果mysqld_safe无法启动,可用管理员权限sudo . 2,本地登录: 启动Mysql 3,修改密码: 5.7之后, 更改密码 ...
- 一个TextView内显示不同颜色的文字
String format = "<font color='#FC8262'>%s</font>:%s"; String text = String.for ...
- hdu 2476 String Painter
第一道区间dp题,感觉题意不是很好理解 题意:一次可以转换某一个位置的字符,或是一串连续的字符,举第一个例子zzzzzfzzzzz 1:aaaaaaaaaaa 2: abbbbbbbbba 3: ab ...
- JavaScript基础——使用运算符
JavaScript运算符允许你改变一个变量的值.你已经熟悉了用于赋值给变量的=运算符.JavaScript提供了几种不同的运算符,它们可以划分为两大类:算数运算符和赋值运算符. 1.算数运算符 你可 ...
- Lattice Diamond 学习之编译、检查和设置约束
在新建工程以及完成代码的输入之后.则就要进行编译,并检测错误. 一. Generate Hierarchy(产生层次结构). 1. 点击Generate Hierarchy 图标或者Design -- ...
- MySQL中varchar转int
order by ... cast(sort as signed) 或 convert(sort,signed) (sort为待转化字段)
- 资源监控工具--spotlight
1.被监控服务器为Ubuntu server,先在服务器上创建一个用户,专门用于监控使用! 因为远程监控服务器,需要获取服务器的资源,所以必须要有权限.使用文档明确说明,不能使用root用户,但是我用 ...
- 【翻译九】java-同步方法
Synchronized Methods The Java programming language provides two basic synchronization idioms: synchr ...
- HDU4288 Coder(线段树)
注意添加到集合中的数是升序的,先将数据读入,再离散化. sum[rt][i]表示此节点的区域位置对5取模为i的数的和,删除一个数则右边的数循环左移一位,添加一个数则右边数循环右移一位,相当于循环左移4 ...
- Oracle merge
oracle merge 語法: