Android&IOS架构简介
Android与IOS对比
app的测试过程和重点关注内容
1、参加需求分析及测试资源准备
(1) 产品需求文档、产品原型图、接口说明文档以及设计说明文档等;
(2) 测试设备及工具的准备:IOS和andriod不同版本的真机,以及相关测试工具的准备。
2、 测试用例的设计与评审
(1) 根据产品需求文档、产品原型图等文档,设计客户端的一般功能测试用例;
(2) 测试用例评审、修改与完善,评审通过后着手进入正式测试阶段。
3、 UI测试(界面展示如颜色、文字、大小、横屏竖屏)
(1) 确保手头的原型图与效果图为当前最新版本,符合产品经理及用户要求;
(2) 测试过程中一切以效果图为准,若有用户体验方面的建议,可以先以邮件的形式与产品经理确认,确认通过后,可以正式向开发提出用户体验方面的问题;
(3) 由于测试环境中的数据为模拟数据,测试时必须预先考虑到正式环境中可能出现的数据类型。
4、易用性测试
(1)界面与交互性测试:符合Android交互规范,符合用户使用习惯,操作方便简单,具有一致性。
(2)可用性测试:用户体验好,用户操作方便,用户使用错误率低。
5、功能测试
功能测试时主要依据编写的功能测试用例进行软件功能的遍历;
业务逻辑测试:主要测试客户端业务逻辑是否能正常走通。
功能点测试:主要测试客户端功能点是否正常使用。
6、安装&卸载测试
主要针对编译源程序生成的APK(android package)安装文件,需要验证数字签名。 (测试要发布上线的版本)
主要测试点:
(1)生成APK文件在真机上可以安装及卸载;
(2)Android手机端的通用安装工具,如:豌豆荚及91助手等工具可以正常安装及卸载程序。
(3)覆盖安装APK文件是否报错。
7、升级测试
(1)低版本->高版本(卸载后安装/覆盖安装)
(2)高版本->低版本(只能卸载后安装)
升级后可以正常使用
8、中断测试
(1)交互性测试(交叉事件测试):客户端作为手机特性测试,包含被打扰的情况13种,来电,来短信,低电量测试等,由前台切换到后台,再切回前台后,应仍可正常运行使用。
还要注意手机端硬件上,如:待机,插拔数据线、耳机等操作不会影响客户端。
(2)异常性测试:主要包含了断网、断电、服务器异常等情况下,客户端能否正常处理,保证数据正确性。
9、兼容性及适配测试
(1) 硬件的适配:不同手机厂商、不同屏幕大小的适配;
(2) OS版本的兼容:IOS9-13;Andriod10以上等,如果用了一些新的API在老的系统上不支持会导致crash;
(3) 不同分辨率屏幕的适配:移动设备的分辨率多种多样,如果app没有做比较合适的处理就可能会显示不好,甚至影响功能的操作。
(4) 兼容性测试必须在一定数量的真机上进行,由于真机类型过多,尤其Android在做兼容性测试时,可以选取典型的几种运用较多的真机,进行兼容性测试;
(5) 另外可以借助开源测试testin云测,进行更多机型的兼容性测试,testin云测提供基本的运行情况和一些截图,以及简单的测试报告,有助于扩大测试的范围。
兼容性测试包含哪些方面?:
移动端的手机客户端兼容测试。APP测试者为了保障不同系统及版本、不同网络制式、不同分辨率和厂商都能够有很好的用户体验而面临巨大挑战,所以APP兼容性测试也是测试质量保障任务中的重要环节。
1.操作系统
①系统名称:android 和IOS
②系统版本:
Android:4.4—14 使用量多的版本:9-13
IOS:9-14使用量多的版本:12,13
③手机型号
Android:小米,华为,OPPO,vivo…
IOS:苹果
2.分辨率
常用:10801920 7201280
3.网络
①移动网络:2G/3G/4G/5G
②无线网络:wifi
4.应用兼容性
与手机硬件兼容、与外部硬件兼容、与其他App兼容
到专门的 app云测试网站进行兼容测试:如 http://www.testin.cn/
操作步骤:
(1)注册并登陆
(2)上传apk
(3)开始测试-标准兼容测试(免费的)
标准兼容测试仅仅覆盖安装、启动、运行、卸载
(4)深度兼容测试(收费)
套餐 10次 5w 赠送一次
包年 30次 15w 95折 最低14w 满10次赠送一次
包年 50次 25w 9 折 最低22w 满10次赠送一次
其它app云测试网站:
1、百度MTC-移动云测试中心 http://mtc.baidu.com/
2、阿里MQC http://mqc.aliyun.com
3、腾讯优测云测试平台 http://utest.qq.com
4、贯众云测试 http://cloudtest.komect.com/#/
5、 腾讯WeTest http://wetest.qq.com/
……
10、稳定性测试
(1) 安卓APP的稳定性常常使用monkey命令进行测试,通过随机事件流模拟人的操作,对检查程序的内存溢出、空指针有很大的作用。
(2) Monkey主要用来检测系统ANR( Application Not Responding )及Crash等问题
11、流量测试:
手机的电量与流量测试主要是为了站在用户角度思考,毕竟电量、流量消耗比较大,会影响客户的使用感受。手机端电量使用率是和CPU使用率成正比的。
由于这个没有比较详细的规定,只能给出一个通用的范围,CPU使用率不能超过10%以上,流量不要超过10M以上。一般可以通过Android手机端的一些监控软件获取数据。推荐三款手机监控软件:Emmagee、GT、Trepn Profiler
1、流量测试应该注意的测试项:
(1)应用首次启动的流量提示
(2)应用后台连续运行2小时的平均流量值
(3)应用在运行极限的平均流量值(大数据传输)
(4)针对场景法涉及的应用主流程方面的测试
(5)在首次登陆时的平均值(多台设备测试)
用户在地铁里,车上,电梯,车库等场景使用APP,我们就需要验证是否出现丢包,延时软件处理,增强用户体验
(1)模拟真实的测试环境
模拟真实的测试环境就是测试人员拿着手机使用移动2g、3g、4g网络在隧道、购物中心(人多)、山坡、基站等实地进行相应的测试。由于投入太大,大多数公司也不愿意投入大量的金钱和时间在上面,故此方法很少使用。
(2)使用Fiddler工具模拟弱网
①模拟2g网络时,网速限制在2kb/s-7kb/s之间
②模拟edge网络时、 网速限制在5kb/s-20kb/s之间
③模拟3g网络时、网速限制在20kb/s-200kb/s之间
④模拟4g网络时、网速限制在150kb/s-2M之间
12、安全测试:
1、安装包是否支持反编译代码
我们把移动应用发布出去后最终用户就会获得一个程序安装包。我们需要关注的是用户能否从这个安装包中获得项目的源代码。为什么会关注源代码代码泄露问题呢?除了保护公司的知识产权外,还有安全方面的考虑。一旦源代码泄露,带来的安全风险还是很高的。
在测试中,如何面对各种反编译的情况,开发人员通常做法就是对代码进行混淆,混淆后的源代码通过反编译软件生成的源代码是很难懂的。测试人员通常的反编译方法是使用dex2jar工具和jd-gui工具查看源代码。
操作步骤:
1.将apk包后缀名改为zip
2.将zip解压,将里面的classes.dex文件拷贝到dex2jar工具路径下
3.进入dex2jar工具路径,执行命令 d2j-dex2jar classes.dex 将dex转成转成jar文件
4.jd-GUI工具中打开jar文件
2、安装包是否签名(上线版本再检查apk是否有签名)
这一点iOS平台可能不必考虑的,因为iOS的每一个App都有正式的发布证书来签名,当发布到App Store时,App Store都会做校验,保证该App是合法开发者发布的。
对于Android来说,由于发布渠道多样,没有此类权威检查,我们需要在发布前校验一下签名使用的key是否正确,以防被恶意第三方应用覆盖安装等问题出现。
安装包是否签名的方法:
(1)将kaoyan3.1.0.apk文件的后缀名直接改成.zip,再解压,可以以文件夹的形式打开文件
(2)解出apk中RSA文件后,然后用keytool即可查看签名信息(keytool为jdk内置的工具)
例如keytool -printcert -file D:\kaoyan\META-INF\CERT.RSA
13、测试分析及测试报告输出
以上各项测试结束后,应该形成完整的分析及报告文档(包括buglist、性能及稳定性结果分析,版本上线风险分析等内容),输出给各项相关人员
测试结论,测试范围,测试人员,测试周期,缺陷列表,缺陷分析,风险分线