测试小白每日训练-03

53 阅读7分钟

执律度势,定鼎至臻

第一阶段:基础训练

场景设定: 电子票务系统的“优惠券码兑换”功能 功能描述: 用户在输入框输入 8 位字母数字混合的兑换码,点击“兑换”后,账户内增加相应的优惠券。

训练:基础功能测试

问题描述: 验证兑换码核销的基础逻辑。

挑战: 请给出 3 条 能够验证该功能“核心业务流程已实现”的测试用例。

回答:

  1. 2分钟内可以撤回消息
  2. 成功撤回后,显示“XX撤回了一条消息”
  3. 发消息1分59秒后,撤回消息
  4. 刚刚超过2分钟,撤回消息
  5. 在2分钟内弹出弹窗选择,等超过2分钟再选择“撤回”
  6. 撤回消息失败,有没有提示

评价与补充:

评价:

亮点: 你的第 3、4、5 点非常出彩。特别是第 5 点(卡在临界点打开弹窗再操作),这是典型的状态机测试,能有效发现前端倒计时和后端权限校验不一致的问题。

  • 不足: 基础测试中漏掉了最基本的对象兼容性(比如文字能撤回,图片、表情包、语音、文件能撤回吗?)。

补充遗漏点:

  • 多端同步: 手机端撤回后,电脑端(或网页端)是否同步消失并显示撤回提示?
  • 状态可见性: 如果对方正在看聊天框,撤回时对方屏幕是否实时更新(无需退出重进)?

训练:边界与约束测试问题描述: 针对“2分钟”这个时间限制和“消息内容”本身进行边界挖掘。 挑战: 除了你刚才提到的时间边界,请给出 2 个关于“撤回对象”或“撤回状态”的边界测试场景。

回答:

emm...不太清楚

内容的“边界”: 撤回一条**正在发送中(转圈圈)**的消息。

  • 逻辑: 此时消息还没完全到达服务器,撤回操作是否会导致程序崩溃或显示异常?

身份/状态的“约束”: 在群聊中,群管理员撤回普通成员的消息。

  • 逻辑: 约束不仅是针对自己的动作,还涉及权限。管理员撤回后,提示语是“管理员撤回了成员消息”还是“你撤回了一条消息”?

群管理员撤回时,对方刚好撤回了消息

今日练习:第一题

场景描述: 你负责测试一个电商 App 的“购物车”页面。现在产品经理提出了一个新需求:在购物车页面增加一个**“猜你喜欢”**的商品瀑布流,放在所有已添加商品的下方。

挑战: 作为测试,你认为引入这个新模块后,除了测试“猜你喜欢”本身好不好用,最需要担心(测试)它对原有购物车功能造成的哪个潜在影响? (请给出一个你认为最严重的风险点)。

回答:

猜你喜欢的商品,会不会被计入购物车价值计算当中

评价与补充

  • 评价:
    • 亮点: 你的切入点非常专业。在开发层面,如果底层代码复用了同一个“商品列表”的逻辑,确实极容易发生数据混淆。这直接关系到用户的钱袋子,是最高优先级的 Bug。
    • 深度: 这种意识叫作**“回归测试意识”**——关注新功能是否破坏了老功能的正确性。
  • 补充遗漏点(全局意识):
    1. 性能压力(滑不到底): “猜你喜欢”通常是无限滚动的加载。如果加载过多,会不会导致购物车页面卡顿,甚至让用户无法点击底部的“去结算”按钮
    2. 视觉干扰: 当购物车为空时,这个模块会不会反客为主,让用户误以为自己已经把这些商品“加入”购物车了?
    3. UI/UX 遮挡: 在小屏幕手机上,这个新模块是否会遮挡原有的优惠券领用或客服入口?

今日练习:第二题

场景描述: 公司要做一个**“年度账单”**功能(类似网易云或支付宝年度报告)。这个功能需要调取用户过去一整年的消费数据、足迹数据。由于数据量巨大,该功能仅计划在元旦期间上线 7 天。

挑战: 这种**“短期高并发、大数据量调取”的功能,你认为测试时最需要关注的非功能性指标**是什么?(或者说,你最怕上线那天发生什么服务器层面的事故?)

回答:

要关注服务器的处理能力,防止上线当天因为活动太火爆,导致服务器崩溃

评价与补充

  • 评价:
    • 亮点: 你的直觉很对。对于这种有时效性的“爆款”功能,**服务器宕机(崩溃)**就是最大的事故。如果用户点不开,这个功能做得再漂亮也是零分。
    • 意识: 你具备了**压力测试(Load Testing)并发(Concurrency)**的意识。
  • 补充遗漏点:
    1. 数据延迟与超时: 由于要调取一整年的大数据,如果查询 SQL 没优化,数据库可能会瞬间被“憋死”,导致用户界面一直显示“加载中...”,最后报错。
    2. 降级(Fallback)预案: 万一服务器真的扛不住了,有没有“熔断”机制?比如提示用户“由于火爆,请稍后再试”,而不是直接白屏或让整个 App 瘫痪。
    3. 缓存失效(Cache Stampede): 元旦零点大家一起点开,如果缓存在那一刻失效,所有请求直接冲击数据库,这就是可怕的“缓存雪崩”。

今日练习:第三题(最后一题)

场景描述: 你现在要测试一个金融 App 的**“强制实名认证”**功能。 需求规定:如果用户没实名,点击“转账”、“理财”、“红包”等任何涉及金钱的按钮,都必须强制弹窗跳到实名页面。

挑战: 这种**“全局拦截”的功能,测试起来最容易漏掉哪种场景?(提示:从“路径跳过”**的角度想想,有没有什么办法能绕过这个弹窗直接把钱转出去?)

回答

不太会

答案解析:绕过拦截的 3 种常见招式

  1. 多端/多入口漏洞: 你测试了点击“转账按钮”会弹窗,但如果用户通过**“最近转账记录”直接发起呢?或者通过“语音助手(嘿 Siri,转账给XX)”**发起呢?这些非主流入口最容易漏掉拦截逻辑。
  2. 后台进程恢复: 用户先进入转账页面(此时已实名或状态异常),然后把 App 挂在后台,去系统设置里撤销实名权限,再回到 App。此时页面已经打开,如果不点击按钮而是直接操作,拦截器还会生效吗?
  3. 深层链接(Deep Link): 外部如果有个网页链接,点击后直接跳转到 App 内部的转账二级页面,是否会因为跳过了首页和中间路径,导致拦截弹窗没触发?

全局总结与建议

在今天的训练中,我发现你的测试直觉表现如下:

  • 强项: 你对业务逻辑的闭环关键边界值(特别是时间边界)非常敏感。
  • 进阶方向: 以后可以多往**“关联性” (新功能对旧功能的影响)和“权限绕过”**(如果不按规矩走会怎样)去思考。

【今日任务达成!】

你已经完成了:

  • 1 道基础训练(消息撤回)
  • 3 道意识训练(购物车、年度账单、实名拦截)