一、测试工具
1.苹果端:
UIAutomation 苹果自家的
Appium 同时支持android,提供的api也基本一致,代码复用率高
Calabash 同时支持android,提供的api也基本一致,代码复用率高
2.安卓端:
UIAutomator 谷歌官方提供,只能做原生APP的自动化测试,语言java
Monkey 理论上不算UI自动测试框架,更大作用测试app的稳定性
MonkeyRunner 可录制,但是脚本根据坐标轴定位,兼容性差
Robotium 使用的人较多,文档也比较齐全,也支持webview,不支持跨进程, 语言java
Appium 支持Hybrid app,也支持跨进程,可以用众多语言编写脚本java,ruby,python,c#……目前不支持安卓toast的获取
Calabash 语言Java ,底层Robotium 同样不支持跨进程
二、测试内容
1.测试资源的确认与准备
①产品需求文档、产品原型图等文档,设计客户端的一般功能测试用例;
②测试设备以及工具的准备,ios和android不同版本真机,相关测试准备。
2.测试用例的设计与评审
①根据产品需求文档、产品原型图等文档,设计客户端的一般功能测试用例;
②测试用例评审、修改与完善,评审通过后着手进入正式测试阶段。
3.中断测试
①软件运行过程中接电话、收短信、锁屏、闹铃、充电,收到通知提醒后再使用软件,软件仍可正常使用;
②软件运行时,由前台切换到后台,再切回前台后,应仍可正常使用。
4.性能测试
①客户端性能测试重点关注:安装卸载时间、启动时间页面加载时间、主要功能占用的CPU、内存、流量、耗电量等,以及与同类产品相比较是否占有优势;
②页面加载时间可以利用Android测试工具DDMS获取到,在DDMS中搜索Displayed关键字就可以看到页面加载时间;
③运行过程中主要占用的CPU、内存、流量等可以借助开元工具emmagee(适用于Android)获取到;
④服务器端的性能,主要用接口对服务器施加压力,重点关注响应时间、吞吐量、并发数、事务通过率等,可以用工具loadrunner、jmeter进行测试。
5.UI测试
①确保手中的原型图与效果图为当前最新版本,符合产品经理及用户的要求;
②测试结果中一切以效果图为准,若有用户体验方面的建议,可以现以邮件的形式与产品经理确认,确认通过后,可以正式向开发提出用户体验方面的问题;
③由于测试环境的数据为模拟数据,测试时必须预先考虑到正式环境中可能出现的数据类型。
6.稳定性测试
①android App的稳定性常常使用monkey命令进行App测试,通过随机事件流模拟人的操作,对检查程序的内存溢出、空指针有很大的作用;
②monkey主要用来检测系统ANR及Crash等问题。
7.兼容性及适配测试
①硬件的适配:不同手机厂商、硬件性能、不同屏幕大小的适配;
②OS版本(operating system同一操作系统的不同版本)的兼容:ios8-10,android4以上等。有些新的api在老机子上运行会导致crash。
③不同分辨率屏幕的适配:移动设备的分辨率多种多样,如果 app 没有做比较合适的处理就可能会显示不好,甚至影响功能的操作。
④兼容性测试必须在一定数量的真机上进行,由于真机类型过多,尤其 Android 在做兼容性测试时,可以选取典型的几种运用较多的真机,进行兼容性测试。
8.功能测试
①功能测试时主要依据编写的功能测试用例进行软件功能的遍历;
②涉及的测试主要包括基本功能测试,安装、卸载、运行测试,异常处理(包括网络突然断开或者网速过慢、机器内存不足等异常情况的处理)测试。