一、确定设备和平台
(一)操作系统:
1.Android5.1、Android5.0、Android4.4、Android7.0
2.iOS8、iOS7
(二)终端设备
1.智能手机
2.平板电脑
3.智能电视
4.其他设备
(三)硬件参数
1.屏幕尺寸
2.分辨率
3.像素密度
4.特殊功能
二、关注网速慢的情况
1.3G
2.EDGE
3.GPRS
4.飞行模式
三、多任务和意外情况处理
1.接听来电
2.不同APP切换
3.同类APP冲突
4.拔掉耳机
四、避免手势冲突
1.单击
2.连击
3.向右滑动
4.向左滑动
5.向上滑动
6.向下滑动
7.双指分开和捏合
8.双指按住屏幕旋转
9.三指向上滑动
10.三指向下滑动
11.四指向左滑动
12.四指向右滑动
13.五指聚拢
14.长按屏幕
15.摇晃设备
五、关注用户体验
1.横竖屏
2.WebView
3.操作系统规范
4.用户使用习惯
5.辅助功能
6.不同颜色和背景的状态栏显示
7.连击按钮
8.多点触控
六、通知和消息展示
(一)Manifest权限声明
(二)第一次申请权限很关键
1.让用户先了解APP
2.设计友好的界面
3.让用户触发授权
(三)合适的通知和消息提示
1.iOS状态栏双倍宽度
2.角标计数
(四)消息推送
1.关闭自有服务器APP是否崩溃
2.推送API出错时APP如何处理
(五)错误提示
1.不要显示错误代码
2.不要显示很繁琐的解决步骤
3.不要打印log
4.明确引导用户解决问题
七、支持操作系统特性
1.Android碎片化
2.恶意软件和病毒
3.APP间通信处理方式
4.是否支持扩展卡
5.对桌面插件的支持
6.兼容ART和Dalvik运行环境
7.特定设置下APP是否正常
八、缓存和同步
(一)为什么要使用缓存机制
1.需要提供网络服务
2.有一部分数据不需要实时更新
3.可以针对某种数据设置固定的过期时间
(二)缓存机制
1.RAM:操作系统自动处理
2.ROM:测试清除缓存和数据
3.CDN:测试时间到期之后
4.测试用户手动刷新
5.及时推送更新
(三)消息同步
1.不同操作系统同步
2.不同设备同步
3.不同版本同步
4.不同APP同步
5.手动刷新同步
九、适应特定ROM用户界面
1.三星TouchWiz
2.HTC Sense
3.小米MIUI
4.华为EMUI
5.魅族Flyme
6.OPPO ColorOS
7.阿里巴巴YunOS
8.索尼Xperia
9.LG UX
10.苹果iOS
十、支持多种文件格式
1.文本格式
2.图片格式
3.视频格式和编码
4.音频格式和编码
十一、支持多语言和地区
1.时间和日期
2.不同语言文字
3.复制粘贴
十二、重点测试高内存占用的功能
(一)用Xcode检查iOS应用内存占用
(二)打开/system/build.prop查看Android应用内存占用
1.初始内存:dalvik.vm.heapstartsize
值越大越消耗内存,APP运行越快
2.内存增长极限:dalvik.vm.heapgrowthlimit
3.内存失控最大值:dalvik.vm.heapsize
(三)USB调试模式查看内存
1.查看所有APP内存
adb shell dumpsys meminfo
2.查看当前APP内存
adb shell dumpsys meminfo AppPackageName
十三、降低流量和电量消耗
1.安装包大小
2.断点传续
3.APP占用存储容量
4.APP流量消耗
5.APP电量消耗
十四、增量升级必不可少
(一)测试增量升级
1.升级后登录信息能正常显示
2.升级后购买的道具可用
3.升级后数据库正常
4.升级前版本正常
(二)测试卸载
(三)测试数据清除
十五、确保成功集成和调用第三方API
1.地图、支付等API
2.第三方登录和分享
3.消息推送
4.外部链接
5.文件关联
6.和输入法、语音等APP交互
十六、尽量不使用非标准控件
(一)尽量使用系统组件
(二)第三方类库的问题
1.兼容性
2.性能
3.升级维护
十七、提前关注操作系统升级
(一)iOS 9新特性
1.备忘录
2.地图
3.邮件
4.iCloud Drive
5.多任务处理
6.Siri
(二)Android 7.1新特性
1.图片输出
2.圆形图标
3.表情包
十八、尽量减少依赖
1.减少对Web项目的依赖
2.减少对服务器数据库的依赖
3.减少对第三方库和API的依赖
十九、进行自动化和探索性测试
(一)测试金字塔
1.手动测试
2.UI测试+端到端测试
3.第三方库和API测试
4.功能测试+集成测试
5.单元测试+组件测试
(二)自动化测试工具
1.Appium
2.Calabash
3.UiAutomator
4.Robotium
二十、进行性能和安全性测试
1.测试联网速度
2.测试不同网速下操作流畅度
3.测试页面渲染性能
4.测试操作数据库性能
5.使用JMeter、ZAP测试后台服务性能
6.测试是否保存了临时数据和已删除数据
7.测试会话是否过期
8.测试请求中是否包含明文用户信息
9.测试请求是否加密
10.测试数据库存储是否安全
11.测试WebView安全性
二十一、使用log定位问题
1.Crashlytics
2.Splunk MINT Express
3.TestFlight
4.HockeyApp
二十二、充分使用持续集成和持续部署
1.Jenkins
2.SVN共享
3.网盘分发