Quick Guide
测试流程
- 功能测试
- 冒烟测试(不符合打回)
- 特性测试
- ui
- 功能
- 兼容性测试
- 合版测试
- 特性功能
- 全量功能
- 渠道包测试
- 上线测试
- 版本问题跟踪
测试周期
测试周期可按项目的开发周期来确定测试时间,一般测试时间为1~2周(即15个工作日),根据项目情况以及版本质量可适当缩短或延长测试时间。
测试资源
测试任务开始前,检查各项测试资源。
- 产品功能需求文档;
- 产品原型图;
- 产品效果图;
- 行为统计分析定义文档;
- 测试设备(ios3.1.3-ios5.0.1;Android1.6-Android4.0;Winphone7.1及以上;Symbian v3/v5/Nokia Belle等);
- 其他
日报及产品上线报告
- 测试人员每天需对所测项目发送测试日报。
- 测试日报所包含的内容为:
- 对当前测试版本质量进行分级;
- 对较严重的问题进行例举,提示开发人员优先修改;
- 对版本的整体情况进行评估。
- 产品上线前,测试人员发送产品上线报告。
- 上线报告所包含的内容为:
- 对当前版本质量进行分级和历史问题记录对比;
- 附上测试报告(功能测试报告、兼容性测试报告、性能测试报告以及app可用性能标准结果);
- 总结上线版本的基本情况。若有遗留问题必须列出并记录解决方案。
版本反馈收集
- 应用市场
- App内反馈系统
- 埋点技术
测试点
非功能测试
针对 APP 应用的非功能性需求, 在 APP 应用开发初期, 可能需要对 APP 应用内容本身, 在线下展开针对性的实用性调研测试或者参考友商,
特性测试
UI测试
- 确保原型图和效果图为当前最新版本,符合产品经理及用户需求;测试过程中一切以效果图为准,若有用户体验方面的建议,可以先与产品经理确认,确认通过后,可以正式向开发提出用户体验方面的问题。
- 在不同环境或者版本下测试出的数据差异需保留
功能测试
- 按照用户的需求(需求说明书、原型等]去检验开发的代码实现是否满足用户的功能性需求。
- 测试对象: 功能点(单独模块) —-》流程测试(多模块)
- 测试方法: 等价类与边界值组合
回归测试
验证完特性后,把所有特性功能合成一个版本,对App的所有基本功能(核心功能)进行全面回归
专项测试
兼容性测试
- 硬件
- 设备型号
- 屏幕尺寸
- 屏幕分辨率
- 网络类型
- 软件
- 系统版本
- App版本
- 不同系统
- 与主流App是否兼容
安装/卸载/升级测试*
- 安装类型
- Andriod :.apk
- ios:.lpa
- 不同的安装渠道
- Andriod
- 手机的应用商店
- 第三方软件:豌豆荚
- -官网
- iOS:
- 官网
- APP Store
- Andriod
- 不同的系统版本
- 各种的安装方式
- 正常情况
- 正常安装测试,检查是否安装成功
- APP版本覆盖测试
- 回退版本测试
- 在不同型号、系统、屏幕大小、分辨率上的手机进行安装·
- 安装完成后:能否正常启动应用程序
- 安装完成后,重启于机能否正常启动应用程序
- 异常情况
- 安装时内存不足
- 安装过程中的意外情况(强行断电、断网、来电话了、查看信息)等等
- 能否取消安装
- 正常情况
- 各种卸载方式
- 正常情况
- 直接删除安装文件夹卸载是否有提示信息。
- 用自己的卸载程序进行卸载,检查是否卸载干净
- 用第三方工具,检查是否卸载干净
- 不同系统、硬件环境、网络环境下进行卸载
- 卸载后再次安装,是否正常使用
- 异常情况
- 卸载中出现异常情况能否恢复(比如手机关机,内存、没电等),程序是否还能运行
- 卸载后是否有残留,是否能够再次进行安装
- 是否可以取消卸载软件恢复使用
- 正常情况
- 各种升级方式
- 更新版本需要提示用户
- 考虑是否进行强制升级
- 否:可取消升级,但是有提示
- 是
- 软件存在严重缺陷
- 软件不能够向前兼容
- 是否能够跨版本升级
- 断点续传
交叉事件测试
APP 应用的交叉事件测试又称: 冲突测试或干扰测试。 一般多用于考察应用在运行过程中, 对于外界干扰的处理能力。
测试点:
- 运行时接收来电/短信/消息推送/收取邮件
- 运行时出现系统弹窗, 运行时切换外部设备等。
- 插拔耳机
- 网络切换
- 系流自带应用(摄像头、计算器)
- 多个App同时运行是否影响正常功能
- App运行时前/后台切换是否影响正常功能
- App运行时切换网络(2G、3G、wifi)/浏览网络/使用蓝牙传送/接收数据
推送消息测试
消息推送测试主要目的就是为了唤醒或提醒用户
- 对象
- 全部推送
- 部分推送
- 精确推送
- 消息形式
- 弹窗
- 消息通知栏
- 短信
- 邮件
- 测试关注点
- push消息应该按设定规则发送特定用户
- APP在后台运行时,应能正常收到push消息
- 设备在锁屏状态下,应能正常收到APP的Push消息
- 设备网络断开重连后,应能收到push消息
- 系统设置不接受APP通知消息时,用户应该不在收到push消息
- 在非免打扰时间段,用户能正常收到push。
用户体验度测试
APP 应用用户体验度测试主要是从用户使用角度出发, 主观的感知产品或服务的可用, 易用及友好程度的测试形式.
测试点:
- 界面设计:美观性
- 功能易用性:保持登录(APP) 页面层级关系在4层左右
- 横竖屏切换,
- 系统功能响应等.
- 是否有空数据界面设计,引导用户去执行操作。
- 是否滥用用户引导。
- 是否有不可点击的效果,如:你的按钮此时处于不可用状态,那么一定要灰掉,或者拿掉按钮,否则会给用户误导
- 菜单层次是否太深
- 交互流程分支是否太多
- 相关的选项是否离得很远
- 一次是否载入太多的数据
- 界面中按钮可点击范围是否适中
- 标签页是否跟内容没有从属关系,当切换标签的时候,内容跟着切换
- 操作应该有主次从属关系
- 是否定义Back的逻辑。涉及软硬件交互时,Back键应具体定义
- 是否有横屏模式的设计,应用一般需要支持横屏模式,即自适应设计
稳定性测试
APP 应用稳定测试测试一般是通过测试工具实现在一定时间范围内的无序操作, 来检测应用的稳定运行能力,
测试点:
- 闪退
- 系统崩溃
- 没响应
常见的测试工具如下:
- Monkey
- UICrawler
- Maxim
客户端性能测试
一款 APP 应用是否优秀不仅仅体现在功能可用性上, 同时也需要关注 APP 应用在不同类型设备上的性能表现, 如果性能表现不够稳定, 则会在一定程度上影响某一部分用户的使用体验.
- 极限测试:在各种边界压力情况下,如电池、存储、网速等,验证App是否能正确响应。
- 内存满时安装App
- 运行App时手机断电
- 运行App时断掉网络
- 内存不足
- 电量不足
- 响应能力测试:测试App中的各类操作是否满足用户响应时间要求 。(安装包放到云测上可以测试)
- App安装、卸载的响应时间
- App各类功能性操作的影响时间
- 压力测试:反复/长期操作下、系统资源是否占用异常。(itestin)
- App反复进行安装卸载,查看系统资源是否正常
- 其他功能反复进行操作,查看系统资源是否正常
- 性能评估:评估典型用户应用场景下,系统资源的使用情况。(Jmeter)
- APP的启动时间是否过长;
- AFP使用时对CPU、内存的占用情况;
- APP使用时,电量流星的消耗情况;
- 反复长期的操作情况下,系统资源的使用情况。
性能测试指标
- 内存
- CPU
- 流量
- 电量
- 启动速度
- 界面切换速度
内存溢出和内存泄漏
- 内存溢出oul of mermory,是指程序在申清内存时,没有足够的内存空问供其使用,出现out of memory;
- 内存泄漏 memory leak,是指程序在申请内存后,无法释放已申请的内存空问,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光;memory leak会最终会导致out of memory
- 冷启动与热启动
- app被后台杀死后,在这个状态打开app,这种启动方式叫做冷启动;
- 热启动;指app没有被后台杀死,仍然左后台运行,通常我们再次去打T开这个app,这种启动方式叫热启动。
服务端性能测试
测试点:
- 单机容量测试:可以检测到单机服务器在90%的响应时间和成功率都达标的前提下,能够承载多少用户量。
- 24小时稳定性测试:使用特定游戏模型压测24小时,服务无重启,内存无泄漏,并且各事务成功率达标。
指标
- 响应时间
- 吞吐量
- 并发数
- 事物通过率等
测试工具:
- LoadRunner
- JMeter
安全测试
测试点:
- 反编译性
- 数据安全
- 键盘安全
- 通信保密性及安全策略等方面的验证.
其他测试
注册
- 同表单编辑页面
- 用户名密码长度
- 注册后的提示页面
- 前台注册页面和后台的管理页面数据是否一致
- 注册后,在后台管理中页面提示
注销
- 注销原模块,新的模块系统能否正确处理。
- 终止注销能否返回原模块,原用户。
- 注销原用户,新用户系统能否正确处理。
- 使用错误的账号、口令、无权限的被禁用的账号进行注销
登录测试
- 登录
- 登录方式
- 快速登录
- 免登录
- 密码修改
- 多端登录是否限制
- 密码修改
- 离线(游客模式)
- 页面权限控制
- 跳转登录
导航测试
- 按钮、对话框、列表和窗口等;或在不同的连接页面之间需要导航
- 是否易于导航,导航是否直观
- 是否需要搜索引擎
- 导航帮助是否准确直观
- 导航与页面结构、菜单、连接页面的风格是否一致
图形测试
- 横向比较。各控件操作方式统一
- 自适应界面设计,内容根据窗口大小自适应
- 页面标签风格是否统一
- 页面是否美观
- 页面的图片应有其实际意义而要求整体有序美观
- 图片质量要高且图片尺寸在设计符合要求的情况下应尽量小
- 界面整体使用的颜色不宜过多
内容测试
- 输入框说明文字的内容与系统功能是否一致
- 文字长度是否加以限制
- 文字内容是否表意不明
- 是否有错别字
- 信息是否为中文显示
- 是否有敏感性词汇、关键词
- 是否有敏感性图片,如:涉及版权、专利、隐私等图片
弱网测试
- 各个功能正常
- 可以浏览本地数据
- 退出app再开启app时能正常浏览
- 切换到后台再切回前台可以正常浏览
- 锁屏后再解屏回到应用前台可以正常浏览
- 在对服务端的数据有更新时会给予离线的相应提示
- 丢包会重试
- 最小原则:不能闪退
协议测试
直接协议访问,服务端要做校验
定位、照相机服务
- App有用到相机,定位服务时,需要注意系统版本差异
- 有用到定位服务、照相机服务的地方,需要进行前后台的切换测试,检查应用是否正常。
- 当定位服务没有开启时,使用定位服务,会友好性弹出是否允许设置定位提示。当确定允许开启定位时,能自动跳转到定位设置中开启定位服务。
- 测试定位、照相机服务时,需要采用真机进行测试。
时间测试
- 客户端可以自行设置手机的时区、时间,因此需要校验该设置对app的影响。
- 中国为东8区,所以当手机设置的时间非东8区时,查看需要显示时间的地方,时间是否展示正确,应用功能是否正常。时间一般需要根据服务器时间再转换成客户端对应的时区来展示,这样的用户体验比较好。比如发表一篇微博在服务端记录的是10:00,此时,华盛顿时间为22:00,客户端去浏览时,如果设置的是华盛顿时间,则显示的发表时间即为22:00,当时间设回东8区时间时,再查看则显示为10:00。
测试工具
自动化工具
- Appium
- Airtest
- uiautomator2
稳定性测试工具
- Monkey
- MonkeyRunner
- Maxim
- UICrawler
性能测试工具
- GT
- Perfdog
- SoloPi
弱网测试&抓包工具
- QNET
- Fiddler
- Charles
- Whistle
兼容性测试工具
- TestIn
- 腾讯优测
- 百度MTC
- 阿里MQC
安全测试工具
- OWASP ZAP
- Drozer
- MobSF
- QARK