设计文档与演进记录与测试与质量证据

共 34 题
#

1. 你做的设计文档被同事评价"读不懂",面试官问"你怎么看反馈"怎么 argue

A 认为是同事水平问题
B 坚持文档已经很清楚
C 接纳反馈,反思"以读者为中心"并给出改进 ✓ 正确答案
D 不再写文档
#

2. 你的设计文档被团队 review 时没人提反对意见,面试官质疑"是不是走形式"

A 说没人反对就是方案好
B 不关心评审
C 说评审就是形式
D 承认零反对可能是假象,主动邀请挑战、先列风险求真实反馈 ✓ 正确答案
#

3. 你的项目里做了视觉回归测试但缺少基础用例库,面试官质疑测试体系不完整,怎么 argue 补齐路径

A 承认测试分层失衡,给出先补核心用例再补边界异常的结构化补齐路径 ✓ 正确答案
B 说视觉回归就够了
C 说测试不重要
D 只补视觉回归
#

4. 你做的设计文档写在 Confluence 里公司私有,面试官问"能展示吗"怎么 argue 抽象

A 说完全不能展示
B 说涉密就没办法
C 直接泄露内部文档
D 抽象出可公开的设计方法、架构与取舍,形成脱敏版展示 ✓ 正确答案
#

5. 你做的设计文档只考虑了 happy path,面试官问"为什么不考虑异常"怎么 argue

A 说 happy path 就够
B 拒绝补异常
C 说异常是运行时的事
D 承认异常路径是设计盲区,补充失败重试、降级、幂等等异常设计 ✓ 正确答案
#

6. 你做的设计文档被 leader 说"太学术化",面试官问"为什么这样写"怎么 argue 受众

A 说学术化是严谨
B 承认忽略了受众,调整为"结论先行、多用图示"的风格 ✓ 正确答案
C 说 leader 不懂
D 坚持原风格
#

7. 你做的设计文档里有"参考 XX 项目"但其实是 copy,面试官看穿怎么 argue 学习

A 死不承认
B 诚实区分"参考"与"复制",讲清借鉴了什么、自己改了什么 ✓ 正确答案
C 说大家都这么干
D 转移话题
#

8. 你的设计文档有 30 页但没人看,面试官问"为什么不写短点"怎么 argue 信息密度

A 承认长度不等于价值,改成"1 页摘要+分层详述"提升信息密度 ✓ 正确答案
B 说详尽是认真
C 说读者没耐心
D 继续写更长
#

9. 你的设计文档没有版本演进记录(v1/v2/v3),面试官质疑"演进过程"怎么 argue

A 说明演进留存在 git 历史中,并补充演进摘要展示决策链条 ✓ 正确答案
B 说演进过程不重要
C 说文档是最终版
D 拒绝补记录
#

10. 你的设计文档被 leader 大改只剩 30%是你写的,面试官问"哪些是你真实想法"

A 说全部都是我的
B 诚实区分自己贡献与被修改部分,说明从修正中学会什么 ✓ 正确答案
C 说这不是我的文档
D 只讲被改的部分
#

11. 你的设计文档被业务方说"看不懂"但 leader 说"必须写得详细",你怎么处理

A 只满足 leader
B 只满足业务方
C 分层文档:面向业务方的摘要 + 面向技术评审的详述 ✓ 正确答案
D 说无法兼顾
#

12. 你的设计文档里有 tradeoff 分析但结论错,面试官问"为什么不重新分析"怎么 argue

A 坚持原结论
B 删除结论
C 说 tradeoff 分析没必要
D 承认分析依据有偏差,重查假设/数据/权重并重新决策 ✓ 正确答案
#

13. 你的设计文档长度只有 1 页,面试官质疑"不深入"怎么 argue 简洁和深度的平衡

A 说明 1 页承载了核心决策与权衡,深度可用分层/附录补足 ✓ 正确答案
B 说 1 页就是够了
C 说深度不重要
D 只写 1 页不管内容
#

14. 你做的设计文档没有 Mermaid 等图表,面试官要求现场画图怎么 argue

A 当场画出架构/流程,并说明图表应作为文档必备部分 ✓ 正确答案
B 说文字就够了
C 说不会画图
D 拒绝画
#

15. 你做的设计文档被 PM 质疑"技术导向不是业务导向"怎么 argue 平衡

A 说技术文档本来就该技术导向
B 只写业务
C 说 PM 不懂技术
D 承认偏技术视角,改用业务价值为主线、技术为支撑的写法 ✓ 正确答案
#

16. 你做的设计文档里你的方案被 CTO 否了,面试官问"为什么没坚持"怎么 argue

A 说 CTO 永远是对的
B 说反驳 CTO 没好处
C 区分"理性妥协"与"盲从",诚实说明是否理解并表达过异议 ✓ 正确答案
D 说坚持也没用
#

17. 你的设计文档里你写的 QPS 预估和实际不符,面试官问"为什么预估错"怎么 argue

A 说预估本来就不准
B 诚实分析预估偏差的假设/模型根因,展示用实测数据校准的闭环 ✓ 正确答案
C 说 QPS 不重要
D 拒绝复盘
#

18. 你做的项目上线后出了 race condition bug,面试官问"为什么没并发测试"怎么 argue

A 说并发 bug 无法避免
B 责怪用户操作
C 说测试没用
D 承认并发测试盲区,说明会用 race detector/压力测试补强并纳入 CI ✓ 正确答案
#

19. 你做的项目上线后频繁出边界 case bug,面试官问"为什么不测试边界"怎么 argue

A 说边界很难覆盖
B 承认边界测试盲区,用边界值分析、等价类、property-based testing 系统补强 ✓ 正确答案
C 说边界不重要
D 只测正常输入
#

20. 你做的项目里有测试但全是手测没有自动化,面试官质疑"工程化"怎么 argue

A 承认手测不可回归,给出转自动化测试并接入 CI 的路径 ✓ 正确答案
B 说手测就够了
C 说自动化没必要
D 只抱怨没时间
#

21. 你做的项目里有测试但是被测试的对象已经 deprecated,面试官质疑"测试维护"

A 承认过时测试是虚假安全感,说明会同步更新或清理测试 ✓ 正确答案
B 说测试还能跑就行
C 说 deprecated 无所谓
D 不理会
#

22. 你做的项目里有用例覆盖了但是发现 bug 时修测试没人 review,面试官质疑质量

A 说测试改动不需要 review
B 承认测试也要被 review,说明会强制审查并写明测试变更理由 ✓ 正确答案
C 说 review 是浪费
D 不重视
#

23. 你的项目 CI 跑了但 deployment 测试经常失败,面试官问"为什么不修复"怎么 argue

A 承认 CI 可信度受损,定位根因修复并让失败阻断发布 ✓ 正确答案
B 说部署测试不重要
C 说失败是环境问题
D 忽略失败
#

24. 你的项目上线后出 bug,测试报告显示通过但实际有逻辑漏洞,面试官问"为什么没测到"

A 说测试通过就说明没问题
B 说逻辑漏洞测不出来
C 分析测试盲区(假设/覆盖/断言),用分支覆盖与 property-based testing 补强 ✓ 正确答案
D 不分析
#

25. 你的项目测试全部是单元测试没有 E2E,面试官问"为什么不测试完整流程"怎么 argue

A 承认测试分层失衡,补核心业务闭环的 E2E 并遵循适量原则 ✓ 正确答案
B 说单元测试就够了
C 说 E2E 没必要
D 只加单元测试
#

26. 你的项目测试数据全是 mock 的,面试官问"真实数据测试过吗"怎么 argue

A 说 mock 就够了
B 诚实区分真实/mock 验证情况,用脱敏真实数据补验证 ✓ 正确答案
C 说真实数据没意义
D 回避问题
#

27. 你的项目测试覆盖率显示 80%但是大部分是 getter/setter 测试,面试官质疑"有意义覆盖"

A 承认覆盖率虚高,把重心转向核心逻辑与分支/突变覆盖率 ✓ 正确答案
B 说 80% 就是高
C 说覆盖率越高越好
D 继续堆 getter/setter 测试
#

28. 你做的项目里有 mutation testing score 很高但实际 bug 很多,面试官质疑测试有效性

A 说 score 高就代表质量好
B 分析指标失真原因,用真实 bug 复盘校准测试有效性 ✓ 正确答案
C 说突变测试没意义
D 只信 score
#

29. 你的项目里有 contract 测试但是没强制执行,面试官问"为什么"怎么 argue

A 承认不强制等于形同虚设,说明会接入 CI 强制阻断 ✓ 正确答案
B 说有测试就够了
C 说强制没必要
D 删除 contract 测试
#

30. 你的项目里有测试但是 flaky(不稳定),面试官质疑"测试质量"怎么 argue

A 说 flaky 很正常
B 承认 flaky 让 CI 不可信,定位根因、固定种子、mock 外部依赖消除不稳定 ✓ 正确答案
C 用重试掩盖
D 忽略 flaky
#

31. 你做的项目里有测试但是运行很慢(30 分钟),面试官质疑"开发体验"怎么 argue

A 说慢一点没关系
B 说测试慢是正常的
C 承认慢测试拖累开发体验,用分层、并行、缓存加速反馈 ✓ 正确答案
D 不优化
#

32. 你的项目测试覆盖率按行算但按分支算很低,面试官问"为什么不用 branch"怎么 argue

A 承认行覆盖易虚高,改用分支覆盖并补足未覆盖的逻辑分支 ✓ 正确答案
B 说行覆盖就够了
C 说分支覆盖不重要
D 继续用行覆盖
#

33. 你的项目用了 property-based testing 但覆盖率低,面试官质疑"方法选择"怎么 argue

A 解释 property-based testing 验证"性质"而非提覆盖率,并诚实评估覆盖情况 ✓ 正确答案
B 说覆盖率不重要
C 说方法选错了
D 只认覆盖率
#

34. 你的项目里有 mutation testing 但是分数不高,面试官质疑"测试深度"怎么 argue

A 说分数不重要
B 忽略分数
C 说 mutation testing 没用
D 承认测试深度不足,用 mutation 结果定位盲区并加强断言与覆盖 ✓ 正确答案