手机 App 测试

一、手机 App 测试的范围

  • 功能模块测试
  • 交叉事件测试
  • 性能测试
  • 安全测试
  • 兼容性测试
  • 安装/卸载测试
  • 接口测试
  • 网络测试

二、手机 App 测试的方法

1. 功能模块测试

1.1 运行

  • App 安装完成后的试运行,可正常打开软件。
  • App 打开测试,是否有加载状态进度提示。
  • App 打开速度测试,速度是否可观。
  • App 页面间的切换是否流畅,逻辑是否正确
  • 注册
    • 用户名密码长度
    • 注册后的提示页面
    • 前台注册页面和后台的管理页面数据是否一致
    • 注册后,在后台管理中页面提示
  • 登录
    • 使用合法的用户登录系统。
    • 系统是否允许多次非法的登录,是否有次数限制。
    • 使用已经登录的账号登录系统是否正确处理。
    • 使用禁用的账号登录系统是否正确处理。
    • 用户名、口令(密码)错误或漏填时能否登录。
    • 删除或修改后的用户,原用户登录。
    • 不输入用户口令和用户名、重复点(确定或取消按钮)是否允许登录。
    • 登录后,页面中登录信息。
    • 页面中有注销按钮。
    • 登录超时的处理。
  • 注销
    • 注销原模块,新的模块系统能否正确处理。
    • 终止注销能否返回原模块,原用户。
    • 注销原用户,新用户系统能否正确处理。
    • 使用错误的账号、口令、无权限的被禁用的账号进行注销。

1.2 应用的前后台切换

  • APP 切换到后台,再回到 App,检查是否停留在上一次操作界面。
  • APP 切换到后台,再回到 App,检查功能及应用状态是否正常。
  • App 切换到后台,再回到前台时,注意程序是否崩溃,功能状态是否正常,尤其是 对于从后台切换回前台数据有自动更新的时候。
  • 手机锁屏解屏后进入 App 注意是否会崩溃,功能状态是否正常,尤其是对于从后 台切换回前台数据有自动更新的时候。
  • 当 App 使用过程中有电话进来中断后再切换到 App,功能状态是否正常
  • 当杀掉 App 进程后,再开启 App,App 能否正常启动。
  • 出现必须处理的提示框后,切换到后台,再切换回来,检查提示框是否还存在,有 时候会出现应用自动跳过提示框的缺陷。
  • 对于有数据交换的页面,每个页面都必需要进行前后台切换、锁屏的测试,这种页 面最容易出现崩溃。

1.3 免登录

  • App 有免登录功能时,需要考虑 OS 版本差异。
  • 考虑无网络情况时能否正常进入免登录状态。
  • 切换用户登录后,要校验用户登录信息及数据内容是否相应更新,确保原用户退出。
  • 根据 MTOP(淘宝无线开放平台)的现有规则,一个帐户只允许登录一台机器。所 以,需要检查一个帐户登录多台手机的情况。原手机里的用户需要被踢出,给出友 好提示。
  • App 切换到后台,再切回前台的校验
  • 密码更换后,检查有数据交换时是否进行了有效身份的校验
  • 支持自动登录的应用在进行数据交换时,检查系统是否能自动登录成功并且数据操 作无误。
  • 检查用户主动退出登录后,下次启动 App,应停留在登录界面

1.4 数据更新

  • 需要确定哪些地方需要提供手动刷新,哪些地方需要自动刷新,哪些地方需要手动 +自动刷新。 - 确定哪些地方从后台切换回前台时需要进行数据更新。
  • 根据业务、速度及流量的合理分配,确定哪些内容需要实时更新,哪些需要定时更 新。
  • 确定数据展示部分的处理逻辑,是每次从服务端请求,还是有缓存到本地,这样才 能有针对性的进行相应测试。
  • 检查有数据交换的地方,均有相应的异常处理。

1.5 离线浏览

很多应用会支持离线浏览,即在本地客户端会缓存一部分数据供用户查看。

  • 在无网络情况可以浏览本地数据。
  • 退出 App 再开启 App 时能正常浏览。
  • 切换到后台再切回前台可以正常浏览。
  • 锁屏后再解屏回到应用前台可以正常浏览。
  • 在对服务端的数据有更新时会给予离线的相应提示。

1.6 App 更新

  • 当客户端有新版本时,有更新提示。
  • 当版本为非强制升级版时,用户可以取消更新,老版本能正常使用。用户在下次启 动 App 时,仍能出现更新提示。
  • 当版本为强制升级版时,当给出强制更新后用户没有做更新时,退出客户端。下次 启动 App 时,仍出现强制升级提示。
  • 当客户端有新版本时,在本地不删除客户端的情况下,直接更新,检查是否能正常 更新。
  • 当客户端有新版本时,在本地不删除客户端的情况下,检查更新后的客户端功能是 否具有了新版本的功能。
  • 当客户端有新版本时,在本地不删除客户端的情况下,检查资源同名文件如图片是 否能正常更新成最新版本。如果以上无法更新成功的,也都属于缺陷。
  • 升级后可以正常使用。
  • 在线跨版本升级。

1.7 定位、照相机服务

  • App 有用到相机,定位服务时,需要注意系统版本差异。
  • 有用到定位服务、照相机服务的地方,需要进行前后台的切换测试,检查应用是否 正常。
  • 当定位服务没有开启时,使用定位服务,会友好性弹出是否允许设置定位提示。当 确定允许开启定位时,能自动跳转到定位设置中开启定位服务。
  • 测试定位、照相机服务时,需要采用真机进行测试。

1.8 时间测试

  • 客户端可以自行设置手机的时区、时间,因此需要校验该设置对 App 的影响。
  • 中国为东 8 区,所以当手机设置的时间非东 8 区时,查看需要显示时间的地方,时 间是否展示正确,应用功能是否正常。时间一般需要根据服务器时间再转换成客户 端对应的时区来展示,这样的用户体验比较好。
    • 比如发表一篇微博在服务端记录的是 10:00,此时,华盛顿时间为 22:00,客 户端去浏览时,如果设置的是华盛顿时间,则显示的发表时间即为 22:00,当 时间设回东 8 区时间时,再查看则显示为 10:00。

1.9 PUSH 测试

  • 检查 PUSH 消息是否按照指定的业务规则发送。
  • 检查不接受推送消息时,检查用户不会再接收到 PUSH.
  • 如果用户设置了免打扰的时间段,检查在免打扰时间段内,用户接收不到 PUSH。
  • 在非免打扰时间段,用户能正常收到 PUSH。
  • 当 PUSH 消息是针对登录用户的时候,需要检查收到的 PUSH 与用户身份是否相 符,没有错误地将其它人的消息推送过来。一般情况下,只对手机上最后一个登录 用户进行消息推送。
  • 测试 PUSH 时,需要采用真机进行测试。

2. 交叉事件测试

  • 又叫事件冲突测试,是指一个功能正在执行过程中,同时另外一个事件或操作对该 过程进行干扰测试。如:App 在前/后台运行状态时与来电、文件下载、音乐收听 等关键运用的交互情况测试等。
  • 执行干扰的冲突事件不能导致软件应用软件异常、手机死机或者花屏等严重问题。
    • 多个 App 同时运行是否影响正常功能。
    • App 运行时前/后台切换是否影响正常功能。
    • App 运行时拨打/接听电话。
    • App 运行时发送/接收信息。
    • App 运行时发送/收取邮件。
    • App 运行时切换网络(2G/3G/WIFI)
    • App 运行浏览网页。
    • App 运行时使用蓝牙传送/接收数据。
    • App 运行时使用相机、计算器手机自带设备。
    • App 运行时插拔充电器。
    • 注意各交叉事件的优先级别,检验系统是否能依据各事件的优先级别依次进行 处理。不能因执行优先级别高的事件而导致优先级别较低的事件吊死。
    • 有中英文模式切换的手机要注意中英文模式切换后的功能实现存在的问题。

3. 性能测试

3.1 响应时间和资源占用测试

  • 测试 App 中的各类操作是否满足用户响应时间要求。
  • App 安装、启动、卸载的响应时间。
  • App 各类功能性操作的响应时间。
  • 在各种边界压力情况下,如电池、存储、网速等,验证 App 是否能正确响应。
    • 内存满时安装 App。
    • 运行 App 时手机断电。
    • 运行 App 时断掉网络。
  • 评估典型用户应用场景下,系统资源的使用情况。
  • Benchmark 测试(基线测试):与竞争产品对比测试,产品演变对比测试等。

3.2 压力测试

  • 反复/长期操作下、系统资源是否占用异常。
  • App 反复进行安装卸载,查看系统资源是否正常。
  • 其他功能反复进行操作,查看系统资源是否正常。
  • 大数量的测试
    • 在特定环境下,客户端一次性更新大量的数据及人员列表时,客户端能否正常 处理,分为三种情况:
      • 客户端第一次使用,第一次就更新大量数据及人员列表。
      • 客户端在平时更新中,更新大量的数据。
      • 客户端已经在手机本地下载很多数据后,再次更新大量数据。

3.3 特定场景测试

  • 通过模拟终端低电量(例如 5%电量)的状态来测试功能在该状态下的正确性。
  • 通过模拟终端处于特殊地理位置(例如上海)来测试功能在该状态下的正确性。
  • 通过模拟终端处于特定网络状态下(例如 3G)来测试功能在该状态下的正确性。

3.4 深度性能测试

  • 获取 App 在典型使用场景及待机状态下消耗的电量流量消耗。
  • 获取 App 在典型使用场景及待机状态下消耗的流量。
  • 获取 App 在典型使用场景及待机状态下的 CPU 占用率。
  • 获取 App 在典型使用场景及待机状态下内存量。
  • 获取 App 冷启动和热启动耗时内容。
  • 获取 App 特定页面的内容加载耗时。
  • 获取 App 退出的耗时。
  • 获取 App 在典型使用场景下帧率。

4. 安全测试

4.1 软件权限

  • 扣费风险:包括发送短信、拨打电话、连接网络等。
  • 隐私泄露风险:包括访问手机信息、访问联系人信息等。
  • 对 App 的输入有效性校验、认证、授权、敏感数据存储、数据加密等方面进行检 测。
  • 限制/允许使用手机功能接入互联网。
  • 限制/允许使用手机发送接收信息功能。
  • 限制/允许应用程序来注册自动启动应用程序。
  • 限制/允许使用本地连接。
  • 限制/允许使用手机拍照或录音。
  • 限制/允许使用手机读取用户数据。
  • 限制/允许使用手机写入用户数据。
  • 检测 App 的用户授权级别、数据泄漏、非法授权访问等。

4.2 安装与卸载安全性

  • 应用程序应能正确安装到设备上。
  • 能够在安装设备上找到应用程序的相应图标。
  • 是否包含数字签名信息。
  • JAD 文件和 JAR 包中包含的所有托管属性及其值必须是正确的。
    • 下载 JAVA 程序是通常会发现是两个文件,即 JAR 和 JAD。
    • JAR 文件:是许多信息经过封装后形成的捆绑体,是一个压缩文件。
    • JAD 文件:是 Java 应用程序描述器文件。
  • JAD 文件显示的资料内容与应用程序显示的资料内容应一致。
  • 安装路径应能指定。
  • 没有用户的允许,应用程序不能预先设定自动启动。
  • 卸载是否安全,其安装进去的文件是否全部卸载。
  • 卸载用户使用过程中产生的文件是否有提示。
  • 其修改的配置信息是否复原。
  • 卸载是否影响其他软件的功能。
  • 卸载应该移除所有的文件。
  • 高/低版本覆盖安装。
  • 安装、卸载、更新错误报告。

4.3 数据安全性

  • 当将密码、信用卡明细或其他的敏感数据输入到应用程序时,其不会被储存在设备 中,不以明文形式将数据写到其它单独的文件或者临时文件中,以防止应用程序异 常终止而又没有删除它的临时文件,文件可能遭受入侵者的袭击,然后读取这些数 据信息。
  • 输入的密码将不以明文形式进行显示,同时密码也不会被解码。
  • 不同的应用程序的个人身份证不能相互使用。
  • 个人身份证和密码长度等必须有设定的要求。
  • 备份应该加密,恢复数据应考虑恢复过程的异常。

5. 兼容性测试

  • Android、iOS 版本的兼容性。
  • 手机不同操作系统版本的支持。
  • 手机不同厂家系统的支持。
  • 手机不同尺寸的支持。
  • 手机分辨率兼容性。
  • 网络的兼容性:2G/3G/4G/5G/Wifi,弱网下、断网时。
  • 不同浏览器兼容性。
  • 与其他 APP 兼容性。

6. 安装、卸载测试

  • 生成 apk 文件在真机上可以安装及卸载。
  • Android 手机端通过使用安装工具,如豌豆荚。

7. 网络测试

  • 外网测试主要实现模拟客户使用网络环境,检验客户端程序在实际网络环境中使用 情况进行业务操作。
  • 外网测试主要覆盖到 WiFi/2G/3G/4G/5G/wap、电信/移动/联通、所有可能的组合进 行测试。
  • 模拟信号屏蔽时候。
  • 在高山、丘陵、火车上等特殊环境下进行全面测试。

8. 接口测试

  • Client 端和 Service 端的交互。
  • Client 端的数据更新和 Service 端的数据是否一致。
  • Client 端更新时断开。
  • Client 端更新时,Service 端挂掉。

猜你喜欢

转载自blog.csdn.net/yang_yang_heng/article/details/108196541