App 测试
1、测试范围
功能模块测试 交叉事件测试 性能测试 安全测试 兼容性测试 安装/卸载测试 接口测试 网络测试
2、功能模块测试
1)运行
2)应用的前后台切换
- APP 切换到后台,再回到 App,检查是否停留在上一次操作界面。
- APP 切换到后台,再回到 App,检查功能及应用状态是否正常。
- App 切换到后台,再回到前台时,注意程序是否崩溃,功能状态是否正常,尤其是 对于从后台切换回前台数据有自动更新的时候。
- 手机锁屏解屏后进入 App 注意是否会崩溃,功能状态是否正常,尤其是对于从后 台切换回前台数据有自动更新的时候。
- 当 App 使用过程中有电话进来中断后再切换到 App,功能状态是否正常
- 当杀掉 App 进程后,再开启 App,App 能否正常启动。
- 出现必须处理的提示框后,切换到后台,再切换回来,检查提示框是否还存在,有 时候会出现应用自动跳过提示框的缺陷。
- 对于有数据交换的页面,每个页面都必需要进行前后台切换、锁屏的测试,这种页 面最容易出现崩溃。
3)免登录
- App 有免登录功能时,需要考虑 OS 版本差异。
- 考虑无网络情况时能否正常进入免登录状态。、
- 切换用户登录后,要校验用户登录信息及数据内容是否相应更新,确保原用户退出。
- 根据 MTOP(淘宝无线开放平台)的现有规则,一个帐户只允许登录一台机器。所 以,需要检查一个帐户登录多台手机的情况。原手机里的用户需要被踢出,给出友 好提示。
- App 切换到后台,再切回前台的校验
- 密码更换后,检查有数据交换时是否进行了有效身份的校验
- 支持自动登录的应用在进行数据交换时,检查系统是否能自动登录成功并且数据操 作无误。
- 检查用户主动退出登录后,下次启动 App,应停留在登录界面
4)数据更新
- 需要确定哪些地方需要提供手动刷新,哪些地方需要自动刷新,哪些地方需要手动 +自动刷新。
- 确定哪些地方从后台切换回前台时需要进行数据更新。
- 根据业务、速度及流量的合理分配,确定哪些内容需要实时更新,哪些需要定时更 新。
- 确定数据展示部分的处理逻辑,是每次从服务端请求,还是有缓存到本地,这样才 能有针对性的进行相应测试。
- 检查有数据交换的地方,均有相应的异常处理。
5)离线浏览
- 很多应用会支持离线浏览,即在本地客户端会缓存一部分数据供用户查看。
- 在无网络情况可以浏览本地数据。
- 退出 App 再开启 App 时能正常浏览。
- 切换到后台再切回前台可以正常浏览。
- 锁屏后再解屏回到应用前台可以正常浏览。
- 在对服务端的数据有更新时会给予离线的相应提示
6) App 更新
- 当客户端有新版本时,有更新提示。
- 当版本为非强制升级版时,用户可以取消更新,老版本能正常使用。用户在下次启 动 App 时,仍能出现更新提示。
- 当版本为强制升级版时,当给出强制更新后用户没有做更新时,退出客户端。下次 启动 App 时,仍出现强制升级提示。
- 当客户端有新版本时,在本地不删除客户端的情况下,直接更新,检查是否能正常 更新。
- 当客户端有新版本时,在本地不删除客户端的情况下,检查更新后的客户端功能是 否具有了新版本的功能。
- 当客户端有新版本时,在本地不删除客户端的情况下,检查资源同名文件如图片是 否能正常更新成最新版本。如果以上无法更新成功的,也都属于缺陷。
- 升级后可以正常使用。
- 在线跨版本升级
7)定位、照相机服务
- App 有用到相机,定位服务时,需要注意系统版本差异。
- 有用到定位服务、照相机服务的地方,需要进行前后台的切换测试,检查应用是否 正常。
- 当定位服务没有开启时,使用定位服务,会友好性弹出是否允许设置定位提示。当 确定允许开启定位时,能自动跳转到定位设置中开启定位服务。
- 测试定位、照相机服务时,需要采用真机进行测试。
8)时间测试
- 客户端可以自行设置手机的时区、时间,因此需要校验该设置对 App 的影响。
- 中国为东 8 区,所以当手机设置的时间非东 8 区时,查看需要显示时间的地方,时 间是否展示正确,应用功能是否正常。时间一般需要根据服务器时间再转换成客户 端对应的时区来展示,这样的用户体验比较好。(比如发表一篇微博在服务端记录的是 10:00,此时,华盛顿时间为 22:00,客 户端去浏览时,如果设置的是华盛顿时间,则显示的发表时间即为 22:00,当 时间设回东 8 区时间时,再查看则显示为 10:00。)
10)PUSH 测试
- 检查 PUSH 消息是否按照指定的业务规则发送。
- 检查不接受推送消息时,检查用户不会再接收到 PUSH、
- . 如果用户设置了免打扰的时间段,检查在免打扰时间段内,用户接收不到 PUSH。
- 在非免打扰时间段,用户能正常收到 PUSH。
- 当 PUSH 消息是针对登录用户的时候,需要检查收到的 PUSH 与用户身份是否相 符,没有错误地将其它人的消息推送过来。一般情况下,只对手机上最后一个登录 用户进行消息推送。
- 测试 PUSH 时,需要采用真机进行测试
3、 交叉事件测试
又叫事件冲突测试,是指一个功能正在执行过程中,同时另外一个事件或操作对该 过程进行干扰测试。如:App 在前/后台运行状态时与来电、文件下载、音乐收听 等关键运用的交互情况测试等。
执行干扰的冲突事件不能导致软件应用软件异常、手机死机或者花屏等严重问题。
- 多个 App 同时运行是否影响正常功能。
- App 运行时前/后台切换是否影响正常功能。
- App 运行时拨打/接听电话。
- App 运行时发送/接收信息。
- App 运行时发送/收取邮件。
- App 运行时切换网络(2G/3G/WIFI).
- App 运行浏览网页。
- App 运行时使用蓝牙传送/接收数据。
- App 运行时使用相机、计算器手机自带设备。
- App 运行时插拔充电器。
- 注意各交叉事件的优先级别,检验系统是否能依据各事件的优先级别依次进行 处理。不能因执行优先级别高的事件而导致优先级别较低的事件吊死。
- 有中英文模式切换的手机要注意中英文模式切换后的功能实现存在的问题。
4、性能测试
1)响应时间和资源占用测试
2)压力测试
3 )特定场景测试
- 通过模拟终端低电量(例如 5%电量)的状态来测试功能在该状态下的正确性。
- 通过模拟终端处于特殊地理位置(例如上海)来测试功能在该状态下的正确性。
- 通过模拟终端处于特定网络状态下(例如 3G)来测试功能在该状态下的正确性。
4)深度性能测试
- 获取 App 在典型使用场景及待机状态下消耗的电量流量消耗。
- 获取 App 在典型使用场景及待机状态下消耗的流量。
- 获取 App 在典型使用场景及待机状态下的 CPU 占用率。
- 获取 App 在典型使用场景及待机状态下内存量。
- 获取 App 冷启动和热启动耗时内容。
- 获取 App 特定页面的内容加载耗时。
- 获取 App 退出的耗时。
- 获取 App 在典型使用场景下帧率。
5、安全测试
1) 软件权限
- 扣费风险:包括发送短信、拨打电话、连接网络等。
- 隐私泄露风险:包括访问手机信息、访问联系人信息等。
- 对 App 的输入有效性校验、认证、授权、敏感数据存储、数据加密等方面进行检 测。
- 限制/允许使用手机功能接入互联网。
- 限制/允许使用手机发送接收信息功能。
- 限制/允许应用程序来注册自动启动应用程序。
- 限制/允许使用本地连接。
- 限制/允许使用手机拍照或录音。
- 限制/允许使用手机读取用户数据。
- 限制/允许使用手机写入用户数据。
- 检测 App 的用户授权级别、数据泄漏、非法授权访问等。
2)安装与卸载安全性
3)数据安全性
- 当将密码、信用卡明细或其他的敏感数据输入到应用程序时,其不会被储存在设备 中,不以明文形式将数据写到其它单独的文件或者临时文件中,以防止应用程序异 常终止而又没有删除它的临时文件,文件可能遭受入侵者的袭击,然后读取这些数 据信息。
- 输入的密码将不以明文形式进行显示,同时密码也不会被解码。
- 不同的应用程序的个人身份证不能相互使用。 个人身份证和密码长度等必须有设定的要求。 备份应该加密,恢复数据应考虑恢复过程的异常。
6、兼容性测试
- Android、iOS 版本的兼容性。
- 手机不同操作系统版本的支持。
- 手机不同厂家系统的支持。
- 手机不同尺寸的支持。
- 手机分辨率兼容性。
- 网络的兼容性:2G/3G/4G/5G/Wifi,弱网下、断网时。
- 不同浏览器兼容性。
- 与其他 APP 兼容性。
7、安装、卸载测试
- 生成 apk 文件在真机上可以安装及卸载。
- Android 手机端通过使用安装工具,如豌豆荚。
8、 网络测试
- 外网测试主要实现模拟客户使用网络环境,检验客户端程序在实际网络环境中使用 情况进行业务操作。
- 外网测试主要覆盖到 WiFi/2G/3G/4G/5G/wap、电信/移动/联通、所有可能的组合进 行测试。
- 模拟信号屏蔽时候。
- 在高山、丘陵、火车上等特殊环境下进行全面测试。
9、 接口测试
- Client 端和 Service 端的交互。
- Client 端的数据更新和 Service 端的数据是否一致。
- Client 端更新时断开。
- Client 端更新时,Service 端挂掉
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~