移动测试基础 Android 应用测试总结

剪烛 · March 27, 2015 · Last by miaomiao256 replied at February 23, 2017 · 4149 hits
本帖已被设为精华帖!

楼主最近测试的是市场类和视频类应用,此list会作为我测试的记录一直更新。欢迎大家补充。

前提
所有的功能分支已完成

启动:

  1. 启动入口:桌面正常启动,最近运行启动,所有程序列表中启动,锁屏快捷启动
  2. 其他入口:从其他程序开启应用,从外部以文件形式打开应用(如果有)
  3. 退回:从其他程序退回时回到被测应用,被测应用打开其他应用再从桌面图标启动 以上需要交叉组合测试。
  4. 异常启动:崩溃后启动,写文件时被强制杀进程后启动,网络请求未收到回包强制杀进程后再启动,网络超时时启动(启动需要有超时机制)

功能介绍,引导图,流量提示等:
1 全新安装程序第一次启动,会有些初始化,或者弹框提示,功能介绍,当外部打开,比如第三方打开(一般不算做第一次启动)后,再启动程序,检查该有的动作是否都有。

权限:
1 当某些权限被安全软件或者系统禁止时,是否可以正常使用,需要注意的权限:麦克风/摄像头/定位/短信息等权限 ---_luguo
2 在做兼容性测试时,需要特别注意权限管理较严的Rom,比如魅族在摄像头等权限为默认关闭
3 第三方安全软件弹框请求禁止权限时,选择后,是否会影响到被测应用的正常流程

文件错误
1 使用错误的文件类型(但是有正确的后缀名),替代被测应用使用的文件
2 adb push 从pc上传到设备的文件如果有中文名,会生成一个错误的文件,被测应用需要适应这种错误情况

屏幕旋转:
1 确认哪些界面是需要允许横屏或者禁止横屏的
2 将屏幕锁定为竖屏或者横屏,在几个界面跳转,界面是否正常
3 当适应横屏时,是否对横屏进行了适配

流量:
1 首次启动应用的流量是否符合预期
2 在主界面有很多图片时,是否已经达到图片文件大小与显示效果的平衡
3 当需要使用较大的网络流量时(加载大图片,视频播放缓冲,下载更新包),显示出当前网速或者进度,对用户来说更友善

缓存(/sdcard/data/com.your.package/cache/):

  1. 卸载后将删除缓存,其中是否存在不应该删除的文件(下载文件,用户资料)
  2. 缓存易被360手机卫士,猎豹清理大师等清理,需检查该文件夹是否放了适合的文件

正常中断:

  1. 在所有界面执行锁屏操作,解锁后观察是否正常运行
  2. 在所有界面执行长时间锁屏操作,解锁后观察是否正常运行
  3. 在所有界面,和所有过程,按home键切后台,再切回时观察是否正常
  4. 在所有的loading过程中,按back键
  5. 在所有的loading过程中,按home键
  6. 界面切换动画时尝试多次按back键
  7. 正常的点击动作,尝试快速按两次
  8. 后摄像头和前摄像头无法同时启动,后摄像头启动还包括打开闪光灯(与手电筒类应用的兼容性)
  9. 检查键盘展开和收起的时机,与home、back、锁屏组合测试
  10. 从第三方启动后,home键回到桌面,再从桌面打开被测应用,显示是否正确(应确定是显示第三方启动界面,还是显示程序正常启动界面,前者如微信,后者如QQ)

异常中断:

  1. 断电后重启
  2. 当界面被意外崩溃,是否可以重启界面,并且恢复到崩溃之前的状态
  3. 来电结束后,返回被测应用界面
  4. 在某些特殊情况下,来电后,移动网络会被切断

用户体验:

  1. 以最挑剔最无理的用户角度来使用应用的主打功能
  2. 是否每个动作都有反馈
  3. 每个按钮都有按下的状态
  4. 当界面有返回按钮时,back将执行同样的操作
  5. 当图片需要网络拉取,或者无图片时,是否有默认图片替代
  6. 开启开发者选项,勾选显示布局边界,检查每一个按钮的可点击范围是否合理

多语言:

  1. 其他语言的语言习惯(如繁体)
  2. 英文注意复数
  3. 多语言下,需要特别检查以图片形式展示的文案(如果功能引导,启动引导图)
  4. 一致性。(一方面是代指的一致性,一方面如果有系列应用共用功能的文案也需要保持一致)
  5. 如果在简体下载了一个文件or创建了一个快捷方式or进行了一笔购买,马上切换语言去做一次同样的动作
  6. 检查英文语言下的切断、断行是否正确---by chenhengjie123
  7. 当文字长度不一致时,UI界面是否能正常适配---by chenhengjie123

升级:

  1. 是否有完整的升级策略(强制升级,灰度发布)
  2. 下载升级包过程中是否可以取消
  3. 升级包下载是否可以续传
  4. 升级过程是否可以中断(取消按钮,back键)
  5. Android系统第一次安装非官方市场应用,需要手动取消限制,此过程是否会影响到apk包安装(正对预装应用的测试)
  6. 在没有更新或者网络时,需要给予用户正确的信息表达
  7. 如果升级有忽略本次版本升级,那么当有新的升级版本时,是否还有提示升级
  8. 收到升级提示后,下载了apk并未安装,同名替换该apk,下次再收到升级提示后,是否正常升级

应用外部升级:
1 应用如果是跳网页下载安装包升级,需要在文件名加版本号或者标识,防止浏览器下载时有缓存,而无法安装最新版本---_luguo
2 交由系统下载升级安装包,尝试进行两次版本升级

列表:

  1. 列表中的文字长度超过限制
  2. 点击列表项返回后的列表项的状态变化(尤其在有多个进度条存在时,需要注意状态)
  3. 上下滑动时,是否可接受卡顿(帧率)

双卡双待:

  1. 当手机为双卡双待时,影响到的功能有:需要获取手机号码的功能,如支付;自动读取短信息

网络:

  1. 是否以较好的体验从网络问题导致的数据问题中恢复界面展示数据
  2. 是否每个需要网络请求的操作,都有做超时处理,并且测试出他的超时时间
  3. 检查每一个需要网路请求的动作在网络延迟,服务器发生错误时,界面的响应

monkey测试:

  1. 必跑monkey,不要仅跑一次,不要到测试后期才跑
  2. 更换不同的界面和不同的参数跑monkey
  3. 记得记录所有日志,如果能有日志筛选的工具更好

性能测试:

  1. cpu占用,内存,流量,耗时等数据,必须有标准和参考值(可以是市场上同类应用的类似操作的表现,或者同应用的不同版本测试) 2 特定操作(一般为主打功能)的压力测试,一般长时间大批量执行某个动作或者组合,尤其为该动作是通过JNI实现,或者使用了其他第三方sdk。一般写脚本或者录制脚本。

病毒检测:

  1. apk文件在PC上检测(http://virscan.org/
  2. 手机杀毒软件检测(http://www.3533.com/news/14/201403/99325/ 其中Avast为静态扫描dex对比特征值,易误杀)
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 54 条回复 时间 点赞

大赞大赞

赞!对android app测试都通用!

8.后摄像头和前摄像头无法同时启动,后摄像头启动还包括打开闪光灯(与手电筒类应用的兼容性)
……………………
没看懂,怎样操作?

5.如果在简体 下在下载了一个文件or创建了一个快捷方式or进行了一笔购买,马上切换语言去做一次同样的动作

1.必须有标准和参考值
……………………
啥标准?

视频类是有自己的播放器吗,有硬解吗,视频源格式编码可控吗

留名

干货!收藏了!
另外,多语言测试补充一点:当文字长度不一致时,UI界面是否能正常适配。如果有自动截断,该处使用自动截断是否合适(对于英文+中文这类差别很大的多语言这个必测)

妹子,大赞哦!真是个细心的好妹纸!

赞一个,干货

#4楼 @sanlengjingvv 目测现在的播放器一般都是默认硬解然后给个软解的选项~

雁过留名 大赞

剪烛 #12 · March 31, 2015 作者

#3楼 @sanlengjingvv 开手电筒,把闪光灯一直亮着,然后做其他操作。
错别字马上奔去改~~~~

剪烛 #13 · March 31, 2015 作者

#6楼 @chenhengjie123 是这样的!我去增加下

剪烛 #14 · March 31, 2015 作者

#9楼 @mingway_hu 恩恩。我们现在的策略是,默认硬解,特殊的软解。

赞赞赞!!下个月面试~套用你这些了~

剪烛 #16 · March 31, 2015 作者

#15楼 @jennyhui = =!!!!

赞!
我想到一点,手机开热点时启动应用程序的情况。

总结的太好了

学习了

亲,总结得太好了,赞赞赞

收藏,么么哒

剪烛 #22 · April 05, 2015 作者

#21楼 @luguo_ 么么哒(>﹏<)

建议:
1.补充,升级包浏览器容易缓存,所以新包下载地址加时间戳或者版本等(这个应该大家都知道)
2.关于软件需要请求系统类似麦克风/摄像头/定位等权限的测试,可以补充~

赞,mark下。

赞~~~~

剪烛 #26 · April 07, 2015 作者

#23楼 @luguo_ 已加,么么哒~(づ ̄ 3 ̄)づ

剪烛 #27 · April 07, 2015 作者

#25楼 @woshizh
#24楼 @seasoncool2011
#20楼 @chouchokbun
O(∩_∩)O哈哈~多谢支持,如有补充,请留言

不错,大赞。
顺便问一下:那些功能楼主实现了自动化

赞,总结的很好

#28楼 @franky 能实现的软件实现,不能实现的硬件争取实现,甚至用机械臂,履带器。

剪烛 #31 · April 08, 2015 作者

#28楼 @franky
性能测试:

  1. cpu占用,内存,流量,耗时等数据,必须有标准和参考值(可以是市场上同类应用的类似操作的表现,或者同应用的不同版本测试) 2 特定操作(一般为主打功能)的压力测试,一般长时间大批量执行某个动作或者组合,尤其为该动作是通过JNI实现,或者使用了其他第三方sdk。一般写脚本或者录制脚本。 这一部分。
剪烛 #32 · April 08, 2015 作者

#30楼 @pighero001 机械臂牛逼!

@shixue33,想问下什么情况会有来电结束后会有移动网络被切断的情况

剪烛 #34 · April 09, 2015 作者

#33楼 @tester1 应该是2G网络下,网络流量和电话通话不能同时存在,通电话时,会将网络断开

@shixue33 你们那个性能测试的标准是怎么获取的?

剪烛 #36 · April 20, 2015 作者

#35楼 @testly 其实是跟同类型的市场上的app比较,再一个跟其他版本的比较,所以要测好多数据。我们目前还是没有标准线,得出的结论也就是在同等条件下不差于xxxapp

赞,最新也再整理,看来可以偷懒很多了

学习了,谢谢楼主!
有两个问题需要请教下具体是怎么测试的:
1、写文件时被强制杀进程后启动,网络请求未收到回包强制杀进程后再启动
2、使用错误的文件类型(但是有正确的后缀名),替代被测应用使用的文件

剪烛 #39 · April 22, 2015 作者

#38楼 @zgxlz
1 比如下载一个需要的文件的过程中,用adb shell kill 杀进程;向服务器提交一个账号的关键信息,未收到回复时,强制关闭程序(需要使用fiddler来限制网络请求)
2 比如gif文件改名成jpg文件

@shixue33 gif文件改名成jpg文件是解压apk,修改里面的gif文件改为jpg文件么,这么做是测兼容性还是测什么?

#40楼 @zgxlz = =!是应用要使用的外部文件,用来测试兼容性。

myNote.Mark()

楼主,视频会测解码相关的不?

赞 总结很详细

赞赞赞!!!

总结很全面了!

学习了!

很专业

确实很全面很有参考价值!!!!

非常赞!

很全、。、、真的很赞。。

非常实用的帖子

学习了!

比较实用

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up