测试小白打卡-07

82 阅读10分钟

题目来自Gemini

基础训练

场景设定:数字钱包的“扫码支付”功能 功能描述:用户通过 App 扫描商户收款码,输入金额并验证密码/指纹后完成支付。

训练一:生物识别与安全降级测试 问题描述:App 支持指纹或面容识别支付。 挑战:在支付验证页面,如果用户连续 3 次指纹识别失败,App 应该如何表现?如果此时用户手机的硬件传感器突然被其他系统进程占用,你的测试重点是什么?

训练二:网络事务原子性与超时处理 问题描述:支付涉及资金划扣,必须保证“要么成功,要么失败”,不能有中间态。 挑战:用户输入密码并点击“确认支付”,App 显示 Loading 转圈,此时网络从 5G 切换到极其微弱的 Edge 信号。如果在此时 App 报错“网络超时”,但用户的钱实际上已经被扣除,你会如何设计测试用例来覆盖这种“掉单”场景?

训练三:UI 状态与前后台切换测试 问题描述:支付过程包含敏感信息展示。 挑战:用户在“输入金额”页面停留时,切换到后台回复微信消息,再通过多任务栏切换回 App。请列举 3 个你认为必须验证的 UI 表现或安全策略点。

回答:

训练一:

1.应该提示“剩余几次验证,失败后会锁屏X秒”,如果继续验证失败,则锁应用或锁功能

2.测试重点是,订单状态与用户财产正常。其他系统占用完成后,软件是否还能正常使用传感器,交易状态(可能是在交易时用指纹支付)是否正常

训练二:

1.用户网络中断/超时,检查用户的账户以及订单支付状态

2.好像想不到其他的了

训练三:

1.对于用户的敏感信息,APP会自动屏蔽

2.用户敏感信息不允许截图

3.切换到微信再切换回来时,用户信息正常显示

【评价与补充:基础训练】

训练一评价:

  • 你的优点:抓住了“错误计数”和“安全锁定”的核心逻辑;关注到了传感器被占用后的功能恢复。
  • 评价及格。但对于“传感器占用”的理解可以更深入。
  • 我的补充
    1. 容错降级:当指纹连续失败或传感器被占用时,必须自动弹出“输入支付密码”作为兜底方案,不能让用户卡死在验证页。
    2. 安全性:验证指纹失败锁定后,尝试重启 App、清理后台甚至重装 App,锁定状态是否依然有效(不能通过重置 App 绕过锁定)。

训练二评价:

  • 你的优点:意识到需要核对账务和订单的一致性。
  • 评价逻辑较单薄。支付超时是金融类 App 的“最高等级事故”高发区,测试点非常多。
  • 我的补充
    1. 幂等性测试:在网络超时报错后,用户可能会反复点击“支付”按钮。必须确保后端只会扣一次钱,不会因为多次请求导致重复扣款。
    2. 异步通知处理:测试 App 在超时报错后,如果后端异步回调支付成功,App 首页或账单页能否在几秒内自动刷新状态,还是必须手动下拉刷新?
    3. 本地状态回滚:如果本地显示“支付失败”但实际已扣款,UI 上必须引导用户去“账单详情”核实,而不是简单的报错。

训练三评价:

  • 你的优点:提到了隐私遮盖和防截图。
  • 评价良好。不仅关注了功能,还关注了移动端特有的系统限制。
  • 我的补充
    1. 多任务预览图模糊:在进入多任务切换界面(Recents Screen)时,App 的预览图是否做了高斯模糊处理?防止用户在切换 App 时被旁人窥见余额。
    2. Session 有效期:切到微信停留时间过长(如超过 5 分钟),切回支付页时是否强制要求重新登录或重新进入流程,以防他人拿起手机继续操作。
    3. 内存回收:低端机会在切到后台时回收内存,切回来时 App 是否发生“白屏自启”导致之前的输入金额丢失?

测试意识训练:第一题

场景描述: 某款工具类 App 提供“暗黑模式(Dark Mode) ”切换功能。用户可以在 App 设置里手动开启,也可以选择“跟随系统自动切换”。

挑战: 如果用户设置了“跟随系统”,此时正好到了系统设定的日落时间,手机系统自动从浅色模式切换到了暗黑模式。

请问:此时作为测试人员,在不重启 App 的情况下,你认为最容易在 App 界面上出现的 3 个“视觉或交互 Bug”是什么?

回答:

1.缓存导致部分地方没有切换,呈现出一些功能是白天模式,一些功能是暗黑模式

2.不知道了

这一题你捕捉到了一个非常关键的技术点:局部刷新失败(缓存或状态管理问题) 。这在开发中确实很常见。

【评价与补充:第一题】

你的回答评价:

  • 优点:意识到了 UI 状态同步的不一致性,即“新老模式共存”的尴尬局面。
  • 评价及格。但对于移动端底层的 UI 渲染机制(如硬编码、切图资源、三方组件)理解还可以再丰富一些。

我的补充(除了你说的局部未切换外,最容易出现的 3 个 Bug):

  1. “黑字黑底”或“白字白底” : 这是最经典的 Bug。开发在写代码时,如果将文字颜色硬编码(Hardcode)为黑色,而背景设置为跟随系统的动态色。当切换到暗黑模式时,背景变黑,文字依然是黑色,导致内容“隐身”。
  2. 图片/图标未适配(脏数据感) : 有些 App 的图标是带白底背景的非透明 PNG 图片。在白色模式下看着正常,切换到暗黑模式后,图标周围会出现一圈难看的“白边”或“白方块”,非常影响视觉。
  3. 三方插件/H5 页面“破功” : App 内部嵌入的 H5 页面(如服务协议、帮助中心)或者第三方广告 SDK,往往不会自动响应原生系统的模式切换,导致原生界面黑了,但中间一块区域还是白得晃眼,产生强烈的视觉撕裂感。

今日练习:第二题

场景描述: App 的“个人中心-头像上传”功能。支持“拍照”和“从相册选择”两种方式。

挑战: 在移动端测试中,当我们点击“从相册选择”并选中一张图片后,App 并不是直接上传,而是通常会先进入一个**“图片裁剪/旋转”**的编辑预览界面。

请问:在这个“预览/裁剪”界面,针对移动端特有的操作习惯,你会设计哪 3 个“不寻常”的操作来挑战它的稳定性?

回答:

1.将图片裁剪得特别小

2.将图片旋转一定角度(角度不是45的倍数)

3.预览的头像和实际裁剪、旋转后的图片是否相同

【评价与补充:第二题】

你的回答评价:

  • 优点:关注到了边界值(极小尺寸)和结果一致性(预览与实际),这是非常扎实的测试基本功。
  • 评价中规中矩。你的第 2 点提到的“非 45 度倍数旋转”很有趣,但移动端现在的裁剪组件通常是双指自由缩放或固定角度旋转,可能不一定支持任意角度。

针对移动端“不寻常操作”,我的深度补充(这才是容易让 App 崩溃的点):

  1. 极端比例图片与内存溢出(OOM) : 尝试从相册选择一张**分辨率极高(如 1 亿像素)比例极长(长微博图)**的图片。移动端在处理这类大图裁剪时,需要将图片加载进内存,极易导致 App 闪退。
  2. 双指缩放的极限操作(多点触控干扰) : 在裁剪框内,使用三指或四指进行无规则的快速缩放和滑动。测试程序是否会因为无法识别多点触控的中心点,导致裁剪框位置偏移、图片瞬间消失(坐标计算溢出)或程序卡死。
  3. 系统级文件变动(并发异常) : 点击“从相册选择”进入预览页后,切换到后台,在手机自带相册里删掉这张原图。然后再切回 App 点击“保存/上传”。此时 App 尝试读取一张已不存在的文件路径,是测试其健壮性的绝佳时机。

今日练习:第三题

场景描述: App 内部的“消息列表”页面。用户可以通过“下拉刷新”来获取最新的消息。

挑战: 用户在电梯里(弱网环境)执行了“下拉刷新”操作,App 界面顶部出现了 Loading(加载中)动画。

请问:在 Loading 动画持续转圈的过程中,如果用户执行以下操作,你认为最能体现一个测试人员“意识深度”的 Bug 场景是什么?请描述这个场景。

回答:

如果用户此时切换到其他可刷新的页面,那么上一个页面的刷新会不会影响到当前页面的刷新

【评价与补充:第三题】

你的回答评价:

  • 优点:你关注到了多页面并发请求的冲突问题。这在 App 测试中属于中高级意识,即“跨页面状态干扰”。
  • 评价优秀。这种场景下,程序很容易因为资源抢占或回调混乱而产生 Bug。

针对你的回答,我进行深度的“意识补全”:

  1. 竞态条件(Race Condition) : 正如你所说,如果用户切换到页面 B 并也触发了刷新。如果代码逻辑写得不好,页面 A 的数据请求返回后,可能会错误地覆盖掉页面 B 的展示内容,导致“张冠李戴”。
  2. “幽灵”弹窗/Toast: 这是最常见的 Bug。用户已经离开页面 A 到了页面 B,但因为电梯里网络慢,过了一会儿页面 A 的刷新请求失败了。此时,App 突然弹出一个提示:“网络连接失败,请重试”。用户会一脸懵逼:“我现在的页面没问题啊,为什么要报错?”——这就是组件销毁后未取消异步回调的典型表现。
  3. 刷新动画状态“卡死” : 用户在页面 A 下拉,Loading 在转。此时切换到后台或进入二级页面再回来,由于弱网请求一直没结束,那个 Loading 动画可能会一直转下去,甚至遮挡了已经缓存出来的旧数据,导致页面无法操作。

总结建议

你在测试边界值(如极小、极多)和跨页面逻辑方面很有灵感。但在测试移动 App 时,可以多往**“系统资源竞争”**(内存、权限、传感器、不同网络制式切换)这个方向去想,那往往是 Bug 的深水区。