面灵AI→

海能达测试岗位面试——一面

轮次
一面
时间
2026-10
来源
牛客网

《面试题目》

  1. 通信原理那部分你哪块学得比较好?介绍一下手机发射信号到接收信号的整个过程。
  2. 多进制、误码率、误信率分别是什么?
  3. MySQL 事务是什么?
  4. 项目里面的 pytest 框架是怎么搭建的?
  5. CI/CD 怎么接入 pytest?
  6. 你喜欢挑战性的还是稳定性的工作?
  7. 为什么不去成都,而选择深圳(本科学校在成都)?
  8. 为什么来做测试?
  9. 介绍一下你的科研项目。

《参考解析》

手机发射到接收的完整链路

按信源、编码、调制、信道、解调、解码的顺序讲。发送侧先把语音或数据转成数字信号,做信源编码压缩、信道编码加冗余(卷积码、Turbo 码、LDPC 之类)用于纠错,再交织打散突发错误,然后调制(QPSK、16QAM、64QAM 等)搬移到射频载波,经功放和天线发射。信号在无线信道里经历路径损耗、多径衰落和干扰,接收侧用天线与射频前端做低噪声放大和下变频,做同步(时间与频率)、信道估计与均衡抵消多径,再解调、解交织、信道译码纠错,最后信源解码还原。面试里主动提到「同步和均衡是最容易出问题的环节」会显得更懂工程实际。

多进制、误码率与误信率

多进制指一个符号携带多个比特,比如 16QAM 一个符号带 4 比特,进制越高单位带宽传的数据越多,但星座点之间距离变小、抗噪能力变差,所以高阶调制只在信噪比好的条件下用,链路自适应就是根据信道质量在 QPSK 到 64QAM 之间切换。误码率是错误比特数占总比特数的比例,误信率(误比特与误码元)则按符号或消息统计,二者的换算关系取决于一个符号映射多少比特。工程上更关心在给定信噪比下的误码率曲线,以及加了编码之后能换来多少编码增益。

MySQL 事务

事务是一组要么全成功要么全失败的操作,靠 ACID 保证:原子性由 undo log 实现(回滚就是把修改反向撤销),一致性是最终目标、由其他三个特性加上业务约束共同保证,隔离性靠锁与 MVCC,持久性靠 redo log(先写日志再落盘,崩溃后可以重放)。隔离级别四种:读未提交、读已提交、可重复读、串行化,InnoDB 默认可重复读,用 MVCC 的快照读避免大部分幻读,当前读则靠间隙锁与临键锁兜住。追问常落在「可重复读能不能完全避免幻读」「undo log 与 redo log 的区别」这两个点上。

pytest 框架怎么搭

按分层组织:用例层只写业务断言,把接口调用封装到 client 层,测试数据与配置走 fixture,环境参数从配置文件或环境变量读,避免写死。核心是用好 fixture 的作用域(function、class、module、session)做登录态与数据库连接的复用,用 conftest.py 做全局注入,用参数化(parametrize)覆盖多组数据,用 mark 给用例打标签以支持冒烟与回归分组。还要配上统一的响应校验、日志与失败截图、以及测试报告(allure 或 junit xml),让失败可定位。面试官通常会追问「用例之间如何隔离」——关键是数据自己造、自己清理,不依赖执行顺序。

CI/CD 怎么接入 pytest

把测试挂到流水线的固定阶段:提交或合并请求触发时跑冒烟集,合并到主干或发版前跑全量回归。流水线上装好依赖后以无头方式执行,通过标记筛选用例,产出报告与覆盖率并以构建产物的形式归档,失败即阻断合并或阻断发布。实践中要注意几件事:用容器或独立环境保证可重复、把环境参数与密钥交给 CI 的变量管理、对不稳定的用例单独隔离而不是直接重试掩盖、以及把执行时间和失败原因可视化。改动只影响某个模块时可以用路径或标签做选择性触发,缩短反馈周期。

求职动机类问题怎么答

「为什么做测试」不要答「开发太卷」,讲成能力匹配:测试需要同时理解业务、实现与边界条件,能更早发现系统性问题,自己的细致和对质量的在意在这里更被放大。地域类问题给出具体且稳定的理由(家庭、伴侣、长期发展、行业机会),说明是深思熟虑的选择,避免让面试官觉得随时会走。挑战与稳定的选择没有标准答案,但要和投递的岗位对齐,并补一句你对两者的理解——挑战意味着不确定性与成长,稳定意味着把流程做扎实,两者都需要人做。