# 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 结果定位盲区并加强断言与覆盖 ✓ 正确答案