秋招|米哈游测开一面+二面面经

秋招|米哈游测开一面+二面面经
最新回答
只影

2023-02-07 16:23:46

米哈游测开一面面经(1小时)
  1. 自我介绍与项目介绍

    需清晰阐述项目背景、技术栈、个人职责及成果,重点突出与测试开发相关的实践(如自动化测试框架设计、性能优化等)。

  2. 购物车测试场景

    功能测试:添加/删除商品、修改数量、库存校验、价格计算准确性。

    兼容性测试:不同浏览器/设备端显示与操作一致性。

    异常测试:网络中断、库存不足、并发操作冲突(如多用户同时修改购物车)。

    性能测试:高并发下响应时间、服务器资源占用(CPU/内存)。

  3. Redis测试场景

    缓存穿透/击穿/雪崩:模拟空请求、热点key过期、大量缓存同时失效场景。

    数据一致性:验证缓存与数据库数据同步机制(如双写一致性、失效策略)。

    持久化测试:RDB/AOF持久化配置下数据恢复能力。

    高可用测试:主从切换、集群故障转移对业务的影响。

  4. Web端上传图片问题排查

    前端检查:文件大小限制、格式校验、网络请求是否成功发送顷握。

    后端检查:接口参数解析、文件存储路径权限、磁盘空间慧乎察是否充足。

    工具辅助:使用Chrome DevTools查看Network请求详情,或通过tcpdump抓包分析。

  5. HTTP请求与响应内容

    请求内容:请求行(方法/URL/协议版本)、请求头(Host/User-Agent/Cookie)、请求体(POST数据)。

    响应内容:状态行(协议版本/状态码/状态信息)、响应头(Content-Type/Server)、响应体(返回数据)。

  6. HTTP请求方式及GET/POST区别

    方式:GET、POST、PUT、DELETE、HEAD等。

    GET vs POST

    GET:数据附在URL后,有长度限制,适合获取数据(如搜索)。

    POST:数据在请求体中,无长度限制,适合提交数据(如登录)。

    生活例子

    进程:工厂生产流程(独立资源分配)。

    线程:车间内工人协作(共享资源,分工完成同一任务)。

  7. 后端认为不是Bug的处理

    复现问题:确认环境、步骤、数据是否一致。

    沟通确认:提供日志/截图,明确需求文档中的预期行为。

    妥协方案:若为非核心功能,可记录为“待优化项”并评估影响范围。

  8. 数据库索引相关

    索引类型:B-Tree(普通索引)、Hash(等值查询)、全前茄文索引(文本搜索)。

    加索引后测试

    执行EXPLAIN分析SQL执行计划,确认索引是否被使用。

    对比加索引前后查询时间(如使用time命令或性能监控工具)。

    定量分析:通过压测工具(如JMeter)统计QPS、响应时间提升比例。

  9. Linux命令

    切换路径:cd /target/path

    实时显示日志:tail -f /var/log/app.log

    显示error关键字上下10行:grep -A 10 -B 10 "error" /var/log/app.log

  10. MySQL命令

    创建数据库:CREATE DATABASE test_db;

    查询表结构:DESCRIBE users;

    插入数据:INSERT INTO users (name, age) VALUES ('Alice', 25);

  11. 手撕代码:两个列表组成字典

    keys = ['a', 'b', 'c']values = [1, 2, 3]result = dict(zip(keys, values)) # 输出: {'a': 1, 'b': 2, 'c': 3}
  12. 共享单车二维码测试

    功能测试:扫码跳转正确页面、车辆解锁/上锁状态同步。

    兼容性测试:不同扫码工具(微信/支付宝/专用App)、二维码破损/遮挡。

    安全测试:防伪造二维码攻击、用户权限校验(如非会员限制使用)。

米哈游测开二面面经(40分钟)
  1. 自我介绍与项目介绍

    重点突出技术深度(如算法优化、复杂场景测试方案)及跨团队协作经验。

  2. 医学算法转测开动机与收获

    动机:结合医学背景与测试技术,提升算法鲁棒性(如医疗影像识别中的异常数据处理)。

    收获:掌握全链路测试方法(单元/集成/系统测试)、熟悉医疗行业数据规范(如HIPAA)。

  3. 接口实现流程(登录)

    前端发送用户名/密码至后端。

    后端验证数据合法性,查询数据库匹配用户信息。

    生成JWT令牌并返回,前端存储令牌用于后续请求认证。

  4. JWT机制确认账号信息

    从HTTP请求头(Authorization: Bearer <token>)解析JWT。

    验证签名(防止篡改),解码Payload获取用户ID等字段。

    根据用户ID查询数据库或缓存获取详细信息。

  5. 项目中间件

    常用中间件:Redis(缓存)、RabbitMQ(消息队列)、Kafka(日志收集)、Nginx(负载均衡)。

  6. MySQL设计考虑问题

    范式化:避免数据冗余(如用户表与订单表分离)。

    索引优化:高频查询字段加索引,避免过度索引影响写入性能。

    分库分表:数据量过大时按业务或ID范围拆分。

  7. Nginx介绍

    功能:反向代理、负载均衡、静态资源服务、SSL终止。

    配置示例

    upstream backend { server 127.0.0.1:8080; server 127.0.0.1:8081;}server { location / { proxy_pass
    http://backend;
    }}
  8. 数据一致性

    Redis与MySQL:通过消息队列(如RocketMQ)实现最终一致性,或使用事务保证强一致性。

    MySQL锁

    悲观锁:SELECT ... FOR UPDATE锁定行。

    乐观锁:版本号控制(如UPDATE table SET version=version+1 WHERE id=1 AND version=0)。

  9. 前后端分离优缺点

    优点:解耦开发、独立部署、技术栈灵活。

    缺点:跨域问题、SEO优化困难、首次加载慢(需加载JS框架)。

  10. 查询接口测试用例设计

    正常场景:有效ID返回对应数据。

    异常场景:无效ID(返回404)、超长ID(边界值测试)、SQL注入(如id=1 OR 1=1)。

    性能场景:高并发下接口响应时间。

  11. 接口测试工具

    Postman(手动调试)、JMeter(压测)、Fiddler(抓包分析)。

  12. Fiddler测试HTTP/HTTPS区别

    HTTP:直接抓包查看明文请求/响应。

    HTTPS:需安装Fiddler根证书并配置解码SSL流量,否则显示加密数据。

  13. 新员工试用期通过流程

    直属领导评估(KPI完成度、团队协作)、HR面谈(文化适配性)、最终审批。

  14. 业务开发流程

    需求评审→技术设计→开发→自测→提测→测试→上线→监控。

  15. 应用层协议

    HTTP:无状态,明文传输,默认端口80。

    HTTPS:HTTP+SSL/TLS加密,默认端口443。

  16. 浏览器输入URL流程

    DNS解析→建立TCP连接→发送HTTP请求→服务器处理→返回响应→渲染页面。

  17. 浏览器解析文件顺序

    HTML解析构建DOM树→CSS解析构建CSSOM树→合并为Render Tree→布局(Layout)→绘制(Paint)→复合(Composite)。

    JS会阻塞DOM构建(除非异步加载)。