1、首先是测试资源确认及准备
(1) 产品需求文档、产品原型图、接口说明文档以及设计说明文档等应齐全;
(2) 测试设备及工具的准备:IOS和andriod不同版本的真机,以及相关测试工具的准备。
2、 测试用例的设计与评审
(1) 根据产品需求文档、产品原型图等文档,设计客户端的一般功能测试用例;
(2) 测试用例评审、修改与完善,评审通过后着手进入正式测试阶段。
3、 UI测试
(1) 确保手头的原型图与效果图为当前最新版本,符合产品经理及用户要求;
(2) 测试过程中一切以效果图为准,若有用户体验方面的建议,可以先以邮件的形式与产品经理确认,确认通过后,可以正式向开发提出用户体验方面的问题;
(3) 由于测试环境中的数据为模拟数据,测试时必须预先考虑到正式环境中可能出现的数据类型。
4、功能测试
(1) 功能测试时主要依据编写的功能测试用例进行软件功能的遍历;
(2) 涉及的测试主要包括基本功能测试,安装、卸载、运行测试,异常处理(包括网络突然断开或者网速过慢、机器内存不足等异常情况的处理)测试。
5、中断测试
(1) 软件运行过程中接电话、收短信、锁屏、闹铃、充电,收到通知提醒后再使用软件,软件应仍可正常运行使用;
(2) 软件运行时,由前台切换到后台,再切回前台后,应仍可正常运行使用。
6、兼容性及适配测试
(1) 硬件的适配:不同手机厂商、硬件性能,不同屏幕大小的适配;
(2) OS版本的兼容:IOS6-9;Andriod3以上等,如果用了一些新的API在老的系统上不支持会导致crash;
(3) 不同分辨率屏幕的适配:移动设备的分辨率多种多样,如果app没有做比较合适的处理就可能会显示不好,甚至影响功能的操作。
(4) 兼容性测试必须在一定数量的真机上进行,由于真机类型过多,尤其Android在做兼容性测试时,可以选取典型的几种运用较多的真机,进行兼容性测试;
(5) 另外可以借助开源测试testin云测,进行更多机型的兼容性测试,testin云测提供基本的运行情况和一些截图,以及简单的测试报告,有助于扩大测试的范围。
7、 性能测试
(1) 客户端性能测试重点关注:安装卸载时间、启动时间、页面加载时间、主要功能占用的CPU、内存、流量、耗电量等,以及与同类产品相比较是否有优势;
(2) 其中页面加载时间可以利用Android调试工具DDMS获取到,在DDMS里面搜索Displayed关键字就可以看到页面加载时间;
(3) 运行过程中主要功能占用的CPU、内存、流量等可以借助开源工具emmagee(适用于Android)获取到;
(4) 至于服务器端的性能,主要利用接口对服务器施加压力,重点关注响应时间、吞吐量、并发数、事物通过率等,可以视同工具loadrunner、jmeter进行测试。
8、稳定性测试
(1) 安卓APP的稳定性常常使用monkey命令进行测试,通过随机事件流模拟人的操作,对检查程序的内存溢出、空指针有很大的作用。
(2) Monkey主要用来检测系统ANR及Crash等问题
9、自动化测试
(1) Appium支持Android和ios的平台
(2) 结合TestNG与Jekins持续集成进行自动化测试
10、测试分析及测试报告输出
以上各项测试结束后,应该形成完整的分析及报告文档(包括buglist、性能及稳定性结果分析,版本上线风险分析等内容),输出给各项相关人员。