面试1:软件测试工程师/中高级

126 阅读6分钟

一、自我介绍(暖场与表达能力)

  1. 请用2分钟简要介绍你的测试工作经历和核心优势,重点说明与应聘岗位的匹配点。

技术能力考察

  1. 用例设计
-   如何针对“微信朋友圈图片上传功能”设计测试用例?需覆盖功能、兼容性、异常场景。

deepseek_mermaid_20250605_6c6b94.svg

-   你在用例评审中发现需求逻辑矛盾如何处理?举例说明。

✅ **案例**:在京东企业购需求评审时,发现“未实名用户可下单但不可支付”的流程矛盾,推动增加实名引导弹窗,避免35%订单流失

2. 缺陷管理

-   描述你用过最复杂的Bug定位过程(需包含工具链使用,如Fiddler+数据库+日志)。
    -   ✅ **案例**:小象优品支付失败问题
        1.  Fiddler抓包发现订单号生成异常
        1.  MySQL执行`SELECT MAX(order_id) FROM orders`确认断号
        1.  Linux查看日志`grep 'OrderService' app.log`定位到Snowflake算法时钟回拨  
        **最终**:推动开发增加时钟同步校验
-   
-   **开发拒绝修复你认为的高危Bug,如何处理?**
    -   **步骤**:
        1.  录制用户操作视频证明可复现
        1.  用ELK统计影响用户比例(>15%)
        1.  联合产品经理评估业务损失
        1.  上升至技术总监决策

3. 专项测试

-   弱网测试有哪些具体手段?如何模拟300ms延迟+30%丢包?
    # Android模拟300ms延迟+30%丢包
    adb shell settings put global captive_portal_https_url https://g.cn
    
    
-   安全测试中“防止数据篡改”你会设计哪些测试点?
-   **防数据篡改测试点**  
    ✅ **关键测试**:

    -   修改HTTP参数(如金额、数量)
    -   重放请求(Burp Suite)
    -   越权操作(普通用户访问管理员API)

二、项目经验深挖

京东项目(重点考察B2B场景)

  1. 京东企业购

    • 你提到“协同团队参与需求评审并提意见”:具体纠正过哪些需求设计问题?结果如何?
    • 接口自动化维护中,遇到接口频繁变更如何保证脚本稳定性?

Q:你提到“对需求设计不合理处给予意见”,请举例说明具体场景和你的解决方案?
> ✅ 参考答案要点

    -   **场景示例**:需求要求“购物车批量下单时,默认选中全部商品”,但未考虑超库存商品的处理逻辑。
    -   **风险分析**:若用户批量下单包含库存不足商品,会导致整单失败,体验差。
    -   **解决方案**:建议改为“自动过滤无效商品+弹窗提示”,并推动产品补充库存校验规则。
    -   **结果**:降低订单失败率27%(需准备具体数据支撑)。

Q:接口自动化维护中,如何应对接口频繁变更?
> ✅ 参考答案要点

    -   **技术手段**        -   封装公共方法解耦(如统一管理URL/参数)
        -   使用`pytest.mark.skip`标记临时跳过失效用例
        -   结合Swagger自动同步接口文档变更

    -   **流程手段**        -   推动开发团队约定“接口冻结期”
        -   每日构建失败用例自动通知责任人

AI项目(考察新技术适应力)

  1. Hobby社交平台

    • 测试AI生成视频功能时,如何设计验证逻辑?如何量化“生成质量”?
    • 多模态技术测试中遇到的最大挑战是什么?如何解决?

Q:测试AI生成视频时,如何量化“生成质量”?
✅ 参考答案要点

  • 客观指标

    • 分辨率/帧率符合规格
    • 文件大小在阈值内(防崩溃)
    • 生成耗时≤5s(性能)
  • 主观指标

    • 组织10人用户小组进行“语义一致性”评分(1-5分)
    • 对比输入文本与生成视频的关键元素匹配度(如“海滩”需出现海浪/沙滩)

Q:测试中如何解决多模态技术带来的挑战?
✅ 参考答案要点

  • 问题定位:图片生成视频时出现肢体扭曲

  • 解决流程

    1. 用Fiddler抓取AI模型输入/输出数据
    2. 通过日志定位到DeepSeek模型预处理层丢失关键节点
    3. 推动算法团队增加姿态校验模块
    4. 设计边界用例:多人重叠/快速运动场景

小象优品(自动化与性能重点)

  1. 自动化实践

    • 2000条自动化Case如何管理?数据驱动如何实现?

    image.png

    • 框架中pytest插件二次开发做了哪些工作?(如自定义标记、钩子函数)

    • 弱网测试中,如何用Python模拟网络延迟?

      import requests
      def set_network_latency(url, latency_ms):
          proxy_api = "http://toxiproxy:8474/proxies"
          # 创建延迟代理
          requests.post(proxy_api, json={
              "name": "latency_proxy",
              "listen": "0.0.0.0:8080",
              "upstream": f"{url}",
              "enabled": True,
              "toxics": [{
                  "name": "latency",
                  "type": "latency",
                  "attributes": {"latency": latency_ms} 
              }]
          })
          # 测试使用代理访问
          return requests.get("http://toxiproxy:8080", proxies={"http": "http://localhost:8080"})
      

四、Python专项技能(结合测试场景)

  1. 基础能力

    • pytest编写测试类:实现一个HTTP接口的GET请求测试,包含状态码断言和JSON字段校验。
    • 如何用pytest.fixture实现测试前后的数据库连接/断开?
  2. 进阶能力

    • 简历提到使用openpyxl:如何读取Excel测试数据并转化为pytest参数化用例?
    • requests封装中,如何设计重试机制(如超时重试3次)?
  3. 问题解决

    • 自动化脚本中遇到ElementNotVisibleException,列举至少3种处理方式。
    • 如何用multiprocessing模块并行执行100个接口用例?结果如何汇总?

五、个人情况与软技能

  1. 学习与沟通

    • 最近半年学习了什么新技术?如何应用到工作中?
    • 测试中与开发发生严重分歧(如缺陷定级),如何处理?
  2. 抗压与流程

    • 线上出现紧急Bug时,你的排查与协作流程是怎样的?
    • 如何保证高强度版本迭代中的测试质量?(如1周发版3次)
  3. 职业规划

    • 未来3年希望在测试领域达到什么目标?如何实现?

六、陷阱问题(验证简历真实性)

  1. 工具疑点确认

    Q:简历中多次提到“弹道”,请问它具体指什么工具?有哪些核心功能模块?

    • ✅ 期望答案:禅道(Zentao)的笔误,应描述缺陷跟踪流程(提交->分配->修复->验证)
  2. 技术深度验证

    Q:你在JMeter性能测试中“分析瓶颈”,请描述MySQL数据库瓶颈的典型表现及优化手段?

    • ✅ 期望答案:

      • 表现:慢查询日志中出现SELECT ... WHERE未用索引
      • 定位SHOW PROCESSLIST查看阻塞线程
      • 优化:添加索引/查询重构/读写分离
  • 针对京东项目追问:“你在需求评审中提出的3个优化建议,哪个被否决了?为什么?”
  • 针对AI项目:“如果DeepSeek模型API响应从200ms劣化到2s,如何定位问题边界?”

七、软技能进阶问题

Q:若版本上线前2小时发现P0级Bug,但产品坚持上线,如何处理?
✅ 参考答案要点

  1. 风险量化:立即评估影响范围(如“导致10%用户支付失败”)

  2. 紧急方案

    • 提供降级方案(如关闭故障模块)
    • 准备热修复补丁
  3. 推动决策

    • 联合技术负责人向产品总监汇报风险
    • 书面记录决策过程(邮件/钉钉)