测试基础 Android 应用测试总结

剪烛 · March 27, 2015 · Last by miaomiao256 replied at February 23, 2017 · 2503 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 Author

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

剪烛 #13 · March 31, 2015 Author

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

剪烛 #14 · March 31, 2015 Author

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

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

剪烛 #16 · March 31, 2015 Author

#15 楼 @jennyhui = =!!!!

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

总结的太好了

学习了

匿名 #21 · April 05, 2015

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

收藏,么么哒

剪烛 #22 · April 05, 2015 Author

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

匿名 #23 · April 05, 2015

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

赞,mark 下。

赞~~~~

剪烛 #26 · April 07, 2015 Author

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

剪烛 #27 · April 07, 2015 Author

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

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

赞,总结的很好

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

剪烛 #31 · April 08, 2015 Author

#28 楼 @franky
性能测试:

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

#30 楼 @pighero001 机械臂牛逼!

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

剪烛 #34 · April 09, 2015 Author

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

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

剪烛 #36 · April 20, 2015 Author

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

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

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

剪烛 #39 · April 22, 2015 Author

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

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

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

myNote.Mark()

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

匿名 #44 · May 21, 2015

赞 总结很详细

赞赞赞!!!

总结很全面了!

学习了!

很专业

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

非常赞!

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

非常实用的帖子

学习了!

比较实用

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