测试范围
功能模块测试 交叉事件测试 性能测试 安全测试 兼容性测试 接口测试 网络测试
1 功能模块测试
1.1 运行
- App 安装完成后的试运行,可正常打开软件。
- App 打开测试,是否有加载状态进度提示。
- App 打开速度测试,速度是否可观。
- App 页面间的切换是否流畅,逻辑是否正确
1.2 注册
- 用户名密码长度
- 注册后的提示页面
- 前台注册页面和后台的管理页面数据是否一致
- 注册后,在后台管理中页面提示
1.3 登录
- 使用合法的用户登录系统。
- 系统是否允许多次非法的登录,是否有次数限制。
- 使用已经登录的账号登录系统是否正确处理。
- 使用禁用的账号登录系统是否正确处理。
- 用户名、口令(密码)错误或漏填时能否登录。
- 删除或修改后的用户,原用户登录。
- 不输入用户口令和用户名、重复点(确定或取消按钮)是否允许登录。
- 登录后,页面中登录信息。
- 页面中有注销按钮。
- 登录超时的处理。
1.4 注销
-
注销原模块,新的模块系统能否正确处理。(
- ==场景示例==:用户A在订单管理页执行注销操作后,系统应清除本地缓存数据并跳转至登录模块。此时新用户B登录后访问订单模块,需确保不显示用户A的历史订单记录,且订单列表初始化加载正常12。
- ==异常情况==:若新模块未正确初始化,可能导致用户B看到用户A的订单数据(数据残留问题)。
)
-
终止注销能否返回原模块,原用户。(
- ==场景示例==:用户A触发注销流程时,在二次确认弹窗中选择"取消"操作,系统应保持当前用户登录状态,且页面停留在原模块(如个人中心),所有功能操作不受影响23。
- ==异常情况==:取消注销后若出现需重新登录或功能异常(如页面刷新),则存在会话管理缺陷。
)
-
注销原用户,新用户系统能否正确处理。(
==场景示例==:用户A注销后,用户B使用同一设备登录。需验证以下内容:
- 本地存储的A用户偏好设置(如主题、语言)是否被清除
- 新用户B首次进入时,系统是否加载默认配置而非继承A用户数据
- 若APP支持多账户切换,需确保账户隔离(如聊天记录、缓存文件独立存储
)
-
使用错误的账号、口令、无权限的被禁用的账号进行注销。(
- ==错误凭证注销==:尝试使用已失效的token或伪造的Session ID执行注销,系统应提示"会话无效"并强制跳转至登录页
- ==被禁用账号注销==:管理员禁用用户A账号后,A尝试注销时系统应提示"账号已停用"并阻止后续操作,同时清除本地敏感数据23。
- ==无权限操作==:普通用户试图调用管理员专用的批量注销接口时,系统应返回"权限不足"提示并记录安全日志
)
1.5 安装
- 生成 apk 文件或者ios的ipa文件在真机上可以安装
- Android 手机端通过使用安装工具,如豌豆荚。
- 安装时出现异常(关机、断网或者弱网,卡死),是否会提示且恢复后能否继续安装
- 安装时存储空间不足
- 安装时手动取消后再次安装
- 正在运行时覆盖安装
- 低版本覆盖安装高版本
- 卸载后安装
备注:
能够在安装设备上找到应用程序的相应图标且是否可以正常运行。
安装路径应能指定。
没有用户的允许,应用程序不能预先设定自动启动。
1.6 卸载
- 打开旧版app时,是否有更新提示,且在不同的手机版本上都能更新成功;
- 打开新版app时,不显示更新提示,在设置中检查更新,提示已更新到最新版本;
- 打开旧版app时,是否有更新提示,且在不同的手机版本上都能更新成功;
- 打开新版app时,不显示更新提示,在设置中检查更新,提示已更新到最新版本;
- 若app时强制更新,用户打开旧版app时,有更新提示,旧版app新版功能不可用,用户退出app,再进入app时,仍有强制更新提示;
- 若app不是强制更新,用户打开旧版app,有更新提示,取消更新,再次打开时,仍有更新提示;
- 在不删除客户端的情况下,用户是否能更新成功,查看新版功能是否正常;
- 更新过程中,突然网络不好是否有提示;
- 更新过程中,突然死机,断电,卡死,手机恢复正常后,是否能更新成功;
备注:
卸载用户使用过程中产生的文件是否有提示。
1.7 升级更新
- 从临近版本升级
- 跨版本升级
- 不同渠道升级(应用商场,手机助手)
- 升级提醒成功(可不提醒,可以提示升级,强制升级)
- 应用内升级时非wifi提醒
备注:
- 打开旧版app时,是否有更新提示,且在不同的手机版本上都能更新成功;
- 打开新版app时,不显示更新提示,在设置中检查更新,提示已更新到最新版本;
- 打开旧版app时,是否有更新提示,且在不同的手机版本上都能更新成功;
- 打开新版app时,不显示更新提示,在设置中检查更新,提示已更新到最新版本;
- 若app是强制更新,用户打开旧版app时,有更新提示,旧版app新版功能不可用,用户退出app,再进入app时,仍有强制更新提示;
- 若app不是强制更新,用户打开旧版app,有更新提示,取消更新,再次打开时,仍有更新提示;
- 当客户端有新版本时,在不删除客户端的情况下,用户是否能更新成功,查看新版功能是否正常;
- 更新过程中,突然网络不好是否有提示;
- 更新过程中,突然死机,断电,卡死,手机恢复正常后,是否能更新成功;
- 当客户端有新版本时,在本地不删除客户端的情况下,检查更新后的客户端功能是 否具有了新版本的功能。
- 当客户端有新版本时,在本地不删除客户端的情况下,检查资源同名文件如图片是否能正常更新成最新版本。如果以上无法更新成功的,也都属于缺陷。
1.8 应用的前后台切换
- APP 切换到后台,再回到 App,检查是否停留在上一次操作界面。
- APP 切换到后台,再回到 App,检查功能及应用状态是否正常。
- App 切换到后台,再回到前台时,注意程序是否崩溃,功能状态是否正常,尤其是对于从后台切换回前台数据有自动更新的时候。(
==示例1:购物车页面数据同步中断==
用户正在提交购物车订单(页面处于数据上传状态),此时切换APP至后台(如点击Home键)。等待30秒后重新切回前台,需验证:
- 网络请求是否自动重连并完成订单提交,而非直接崩溃
- 页面是否保留用户已选择的商品信息(如数量、优惠券),未因切换导致数据丢失
- 若后台数据已更新(如库存不足),切换回前台时是否弹窗提示更新状态
==示例2:实时聊天消息推送==
用户A在聊天页面发送图片(上传进度50%时切换至后台),此时用户B发送新消息。当用户A切回前台时需验证:
- 图片上传任务是否自动恢复并显示进度条,而非卡在中断状态
- 用户B的新消息是否实时展示在聊天列表,无消息重复或乱序
- 页面滚动位置是否保持在切换前的上下文,避免界面错位
)
- 手机锁屏解屏后进入 App 注意是否会崩溃,功能状态是否正常,尤其是对于从后 台切换回前台数据有自动更新的时候(
==示例1:导航应用GPS数据更新==
用户使用导航APP时锁屏,5分钟后解锁返回页面,需验证:
- GPS定位是否立即重新连接并更新当前位置,而非因线程阻塞导致APP无响应
- 路线规划数据是否与锁屏前一致,未因进程挂起而丢失
- 若导航过程中路线已自动更新(如拥堵绕行),解锁后是否弹窗提示变更详情
==示例2:支付页面倒计时中断==
用户在支付页面等待倒计时(如15分钟支付有效期),中途锁屏10分钟后解锁,需验证:
- 倒计时是否准确扣除锁屏耗时(剩余5分钟),而非继续从15分钟开始
- 支付接口Token是否仍有效,不会因超时导致支付失败或崩溃
- 页面元素(如金额、收款方信息)是否正常渲染,未出现乱码或空白
)。
- 当 App 使用过程中有电话进来中断后再切换到 App,功能状态是否正常
- 当杀掉 App 进程后,再开启 App,App 能否正常启动。
- 出现必须处理的提示框后,切换到后台,再切换回来,检查提示框是否还存在,有时候会出现应用自动跳过提示框的缺陷。
- 对于有数据交换的页面,每个页面都必需要进行前后台切换、锁屏的测试,这种页面最容易出现崩溃。(
==示例1:股票行情实时刷新==
在股票详情页(每秒刷新最新价格)执行快速前后台切换10次,需验证:
- 数据请求队列是否正常管理,避免并发线程过多引发内存溢出
- 页面渲染是否稳定,频繁刷新不会导致图表组件崩溃
- 切换回前台时是否优先加载缓存数据,再静默更新差值,避免长时间白屏
==示例2:后台数据强制更新冲突==
用户浏览新闻列表时切换至后台,此时服务端推送新数据(如突发新闻)。当用户切回前台时需验证:
- 新旧数据合并逻辑是否正常,未出现重复条目或排序错乱
- 若更新数据量过大(如1000条),是否分页加载而非一次性渲染导致卡死
- 页面滚动条位置是否智能定位到用户最后浏览点,而非强制跳转顶部
)
1.9 免登录
- App 有免登录功能时,需要考虑 OS 版本差异。
- 考虑无网络情况时能否正常进入免登录状态。(==示例==:新闻类APP在无网络时,允许用户查看已缓存的新闻列表,但需通过Toast提示“当前处于离线模式”。需验证本地用户信息(如用户ID、Token)读取逻辑是否正常,且功能模块降级合理)
- 切换用户登录后,要校验用户登录信息及数据内容是否相应更新,确保原用户退出。
- 根据 MTOP(淘宝无线开放平台)的现有规则,一个帐户只允许登录一台机器。所 以,需要检查一个帐户登录多台手机的情况。原手机里的用户需要被踢出,给出友好提示。
- App 切换到后台,再切回前台的校验(==示例==:金融类APP切换至后台超过5分钟后,返回前台时需重新验证指纹或密码。测试时需调整系统时间模拟超时场景,并检查敏感操作(如转账)是否被拦截)
- 密码更换后,检查有数据交换时是否进行了有效身份的校验(==示例==:用户修改密码后,尝试使用免登录功能进行支付操作,系统应自动触发Token失效机制,强制跳转至登录页并要求重新认证。需检查支付接口是否返回“401 Unauthorized”状态码)
- 支持自动登录的应用在进行数据交换时,检查系统是否能自动登录成功并且数据操作无误(==示例==:邮件APP开启自动登录后,测试发送邮件时是否携带有效Token,且邮件成功进入发件箱)。
- 检查用户主动退出登录后,下次启动 App,应停留在登录界面
1.10 数据更新
- 需要确定哪些地方需要提供手动刷新,哪些地方需要自动刷新,哪些地方需要手动 +自动刷新。
- 确定哪些地方从后台切换回前台时需要进行数据更新。
- 根据业务、速度及流量的合理分配,确定哪些内容需要实时更新,哪些需要定时更新。
- 确定数据展示部分的处理逻辑,是每次从服务端请求,还是有缓存到本地,这样才 能有针对性的进行相应测试。
- 检查有数据交换的地方,均有相应的异常处理(如有进行数据交换时,网络弱网或者中断,app该如何处理以及是否提示)。
1.11 离线浏览
很多应用会支持离线浏览,即在本地客户端会缓存一部分数据供用户查看。
- 在无网络情况可以浏览本地数据。
- 退出 App 再开启 App 时能正常浏览。
- 切换到后台再切回前台可以正常浏览。
- 锁屏后再解屏回到应用前台可以正常浏览。
- 在对服务端的数据有更新时会给予离线的相应提示。
1.12 定位、照相机服务
- App 有用到相机,定位服务时,需要注意系统版本差异。
- 有用到定位服务、照相机服务的地方,需要进行前后台的切换测试,检查应用是否正常。
- 当定位服务没有开启时,使用定位服务,会友好性弹出是否允许设置定位提示。当 确定允许开启定位时,能自动跳转到定位设置中开启定位服务。
- 测试定位、照相机服务时,需要采用真机进行测试。
1.13 时间测试
- 客户端可以自行设置手机的时区、时间,因此需要校验该设置对 App 的影响。
- 中国为东 8 区,所以当手机设置的时间非东 8 区时,查看需要显示时间的地方,时间是否展示正确,应用功能是否正常。时间一般需要根据服务器时间再转换成客户端对应的时区来展示,这样的用户体验比较好。
- 比如发表一篇微博在服务端记录的是 10:00,此时,华盛顿时间为 22:00,客户端去浏览时,如果设置的是华盛顿时间,则显示的发表时间即为 22:00,当 时间设回东 8 区时间时,再查看则显示为 10:00。
1.14 PUSH 测试
- 检查 PUSH 消息是否按照指定的业务规则发送。
- 检查不接受推送消息时,检查用户不会再接收到 PUSH.
- 如果用户设置了免打扰的时间段,检查在免打扰时间段内,用户接收不到 PUSH。
- 在非免打扰时间段,用户能正常收到 PUSH。
- 当 PUSH 消息是针对登录用户的时候,需要检查收到的 PUSH 与用户身份是否相符,没有错误地将其它人的消息推送过来。一般情况下,只对手机上最后一个登录用户进行消息推送。
- 测试 PUSH 时,需要采用真机进行测试
- 设置push消息显示的位置,是否与配置一致。
- 收到push消息时,是否可以正常打开
- App在前台使用时,收到push消息如何提示,正常来说运行时消息推送不会送入消息栏
- App在后台使用时,消息栏可以接收到推送提醒,点击后从消息栏消失
- App离线,是否能收到PUSH消息
1.15 横竖屏测试
- 每个界面都要做横竖屏切换是否正常
- 尤其针对有表格存在的页面
2 交叉事件测试
又叫事件冲突测试,是指一个功能正在执行过程中,同时另外一个事件或操作对该 过程进行干扰测试。如:App 在前/后台运行状态时与来电、文件下载、音乐收听 等关键运用的交互情况测试等。
执行干扰的冲突事件不能导致软件应用软件异常、手机死机或者花屏等严重问题。
- 多个 App 同时运行是否影响正常功能。
- App 运行时前/后台切换是否影响正常功能。
- App 运行时拨打/接听电话。
- App 运行时发送/接收信息。
- App 运行时发送/收取邮件。
- App 运行时切换网络(2G/3G/WIFI).
- App 运行浏览网页。
- App 运行时使用蓝牙传送/接收数据。
- App 运行时使用相机、计算器手机自带设备。
- App 运行时插拔充电器,电量告警。
- 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 在典型使用场景下帧率。
3.5 性能测试工具
性能测试工具:GT
监控常见的性能指标,CPU,内存,流量,电量,流畅度
抓取log,抓包
GT的使用:
部分需要root权限

4 安全测试
4.1 软件权限
- 扣费风险:包括发送短信、拨打电话、连接网络等。
- 隐私泄露风险:包括访问手机信息、访问联系人信息等。
- 对 App 的输入有效性校验、认证、授权、敏感数据存储、数据加密等方面进行检 测。
- 限制/允许使用手机功能接入互联网。
- 限制/允许使用手机发送接收信息功能。
- 限制/允许应用程序来注册自动启动应用程序。
- 限制/允许使用本地连接。
- 限制/允许使用手机拍照或录音。
- 限制/允许使用手机读取用户数据。
- 限制/允许使用手机写入用户数据。
- 检测 App 的用户授权级别、数据泄漏、非法授权访问等。
4.3 数据安全性
- 当将密码、信用卡明细或其他的敏感数据输入到应用程序时,其不会被储存在设备 中,不以明文形式将数据写到其它单独的文件或者临时文件中,以防止应用程序异 常终止而又没有删除它的临时文件,文件可能遭受入侵者的袭击,然后读取这些数 据信息。
- 输入的密码将不以明文形式进行显示,同时密码也不会被解码。
- 不同的应用程序的个人身份证不能相互使用。
- 个人身份证和密码长度等必须有设定的要求。
- 备份应该加密,恢复数据应考虑恢复过程的异常。
5 兼容性测试
- Android、iOS 版本的兼容性。
- 手机不同操作系统版本的支持。
- 手机不同厂家系统的支持。
- 手机不同尺寸的支持。
- 手机分辨率兼容性。
- 网络的兼容性:2G/3G/4G/5G/Wifi,弱网下、断网时。
- 不同浏览器兼容性。
- 与其他 APP并发兼容性。
6 网络弱网测试
- 外网测试主要实现模拟客户使用网络环境,检验客户端程序在实际网络环境中使用 情况进行业务操作。
- 外网测试主要覆盖到 WiFi/2G/3G/4G/5G/wap、电信/移动/联通、所有可能的组合进 行测试。
- 模拟信号屏蔽时候。
- 在高山、丘陵、火车上等特殊环境下进行全面测试。
- app在网络不好时,是否给出提示;
- app网络不好时,会出现重复提交,用户不断点击的问题,开发是否做判断;
- 当网络由不好变为良好时,软件功能能否正常使用
8 接口测试
- Client 端和 Service 端的交互。
- Client 端的数据更新和 Service 端的数据是否一致。
- Client 端更新时断开。
- Client 端更新时,Service 端挂掉。
2085

被折叠的 条评论
为什么被折叠?



