# 1. 需求可测试性(Testability)分析方法,如何识别不可测试的需求?请列举五种常见的'不可测试需求'模式及改进建议。 A 模糊形容词(如"响应要快")已足够可测 B 可测试需求须可观察、可判定、可量化、无歧义,模糊形容词、绝对化、主观表述等不可测模式需改为可量化可判定的标准 ✓ 正确答案 C 需求可测试性只影响开发不影响测试 D 所有需求天然可测
# 2. 评审的入口/出口准则(entry/exit criteria)如何设定,避免评审走过场与评审疲劳 A 评审无需材料预读即可开始 B 参与人数越多评审越有效 C 评审时长越长效果越好 D 入口准则(材料就绪、预读、准备度检查)与出口准则(问题清单、结论责任人)避免走过场,控制时长人数分块评审可避免疲劳 ✓ 正确答案
# 3. 评审会议的组织与过程控制,时长上限、参与人数、准备度检查与主持人职责如何提升缺陷发现率,并防止评审流于形式? A 主持人无需控制节奏 B 评审人数越多发现缺陷越多 C 评审无需材料预读 D 控制时长与人数、强制材料预读与准备度检查、规范主持人职责(节奏/记录/结论)能提升缺陷发现率并防止流于形式 ✓ 正确答案
# 4. 评审度量(缺陷发现率、评审效率、缺陷密度)的计算方法和使用场景?如何用评审度量改进评审过程? A 评审缺陷密度反映评审投入产出 B 评审度量与改进无关 C 单一评审度量即可全面评估 D 缺陷发现率评估发现缺陷能力、评审效率评估投入产出、缺陷密度定位薄弱区域,通过度量→分析→改进→再度量闭环优化评审 ✓ 正确答案
# 5. 静态分析工具(SonarQube/ESLint)在代码审查中的定位,它能发现哪些类型的问题?不能替代哪些人工审查活动? A 静态分析能判断业务逻辑正确性 B 静态分析能发现规范、常见缺陷模式、复杂度与安全漏洞等规则化问题,但不能替代人工审查业务逻辑、架构与需求符合性 ✓ 正确答案 C 静态分析可完全替代人工代码审查 D 静态分析只用于安全测试
# 6. 同行评审(Peer Review)与正式检查(Inspection)的差异,Fagan Inspection 的角色分工(Moderator/Author/Reviewer/Scribe)、准备阶段和缺陷分类如何提升发现率? A 同行评审比正式检查更结构化 B Fagan Inspection 有严格角色分工(主持人/作者/评审者/记录员)、准备阶段并经缺陷分类,其结构化流程显著提升缺陷发现率 ✓ 正确答案 C 正式检查无需角色分工 D 准备阶段会降低发现率
# 7. 静态分析在 CI 中的集成实践,SonarQube/ESLint/Semgrep 的规则定制、增量分析(只分析变更代码)和质量门禁(quality gate)的配置策略? A 全量扫描是最佳做法 B 质量门禁越严越好 C 规则定制避免噪音、增量分析聚焦变更代码、质量门禁基于新增代码设置(如覆盖率、无严重问题)形成快速反馈闭环 ✓ 正确答案 D 静态分析可替代人工评审
# 8. 变异分析(Mutation Analysis)如何指导代码评审优先级,哪些模块的变异存活率高说明测试薄弱,应优先评审? A 变异存活率越高说明测试越充分 B 变异存活率与评审优先级无关 C 变异存活率高说明测试对相应代码验证薄弱、缺陷隐藏风险大,应优先对这类模块安排深入代码评审 ✓ 正确答案 D 变异分析无需运行测试
# 9. 评审的类型,走查、技术评审与正式审查? A 正式审查最非正式 B 走查非正式灵活、技术评审较正式评估技术正确性、正式审查(Inspection)最结构化以发现缺陷为主,三者正式程度递进 ✓ 正确答案 C 走查以发现缺陷为主要目标 D 技术评审最正式
# 10. 静态分析工具的规则分级与误报治理,如何把 warning/error 分级、抑制与反馈闭环落地 A 规则分级(blocker/critical/warning)聚焦处理优先级,误报用抑制白名单记录原因,并通过误报率反馈调整规则形成闭环 ✓ 正确答案 B 误报应全部忽略无需反馈 C 所有规则都应设为 error 级别 D 抑制注释无需记录原因
# 11. 代码评审中测试人员应重点检查哪些内容(可测性、断言完整性、边界处理、错误分支)?如何输出可执行的评审意见? A 测试人员只关注测试用例数量 B 边界处理无需测试人员关注 C 评审意见可泛泛而谈 D 应重点检查可测性、断言完整性、边界处理与错误分支,并输出具体位置、问题与可操作建议的可执行评审意见 ✓ 正确答案
# 12. 需求评审、设计评审与代码评审的检查重点与典型缺陷类型差异,三者如何衔接形成分层评审防线? A 三类评审检查重点完全相同 B 需求评审查完整性与可测性、设计评审查架构合理性、代码评审查实现正确性,三层评审逐层拦截不同层次缺陷形成分层防线 ✓ 正确答案 C 代码评审可覆盖需求缺陷 D 需求评审在后期进行
# 13. 静态分析为何难以发现跨模块语义、并发时序与业务规则类缺陷?人工评审与动态测试如何补位? A 静态分析能发现并发时序问题 B 静态分析缺跨模块语义、运行时与时序理解,难发现跨模块语义、并发时序、业务规则缺陷,需人工评审与动态测试补位 ✓ 正确答案 C 静态分析能判断业务规则正确性 D 静态分析可覆盖所有缺陷类型
# 14. BDD(Behavior-Driven Development)中 Gherkin 场景的编写规范,如何避免场景过于技术化或过于模糊? A 场景应避免技术实现细节(用业务语言)又避免模糊(前置与预期具体可判定),用 Given/When/Then 描述可执行的需求 ✓ 正确答案 B 场景无需明确预期结果 C 场景越模糊越好以保持通用 D 场景应写满技术实现细节
# 15. 架构适应度函数(Architecture Fitness Functions),如何用自动化测试(ArchUnit/depcheck)持续验证架构约束(分层依赖、循环依赖、命名规范)? A 用 ArchUnit/depcheck 等把架构约束写成自动化检查,在 CI 持续验证分层依赖、循环依赖、命名规范,防止架构腐化 ✓ 正确答案 B 架构约束只能靠文档人工维护 C 适应度函数无法自动化 D 架构约束无需持续验证
# 16. 评审的产出,问题清单与跟踪? A 评审无需记录问题 B 问题清单只需记录问题数量 C 评审结论无需闭环 D 评审产出问题清单(描述/位置/类型/严重度/责任人/建议),通过跟踪机制与复查闭环确保问题被解决,否则评审失去意义 ✓ 正确答案
# 17. 静态分析左移的落地,IDE 插件、pre-commit 钩子与 PR 扫描三个环节如何分工,如何避免重复扫描与噪音? A 三个环节都跑完整规则集 B 左移会降低问题发现率 C IDE 插件做编码时即时反馈、pre-commit 做提交前快速拦截、PR 扫描做合入前完整门禁,通过差异化规则配置避免重复扫描与噪音 ✓ 正确答案 D 静态分析只需 PR 扫描一个环节
# 18. 评审中「检查清单(Checklist)」驱动的评审与自由评审的效果差异?如何持续更新检查清单? A 新人应使用自由评审 B 自由评审覆盖最全面 C 检查清单一旦建立无需更新 D 检查清单保覆盖不漏项但可能机械,自由评审灵活能发现新颖问题但依赖经验,两者常结合,清单需基于缺陷数据与漏检率持续更新 ✓ 正确答案
# 19. 远程/异步代码评审与同步评审会议的效率差异,异步评审的缺陷发现率如何保障? A 异步评审一定比同步评审发现缺陷少 B 异步评审时间灵活可深度思考但讨论弱,同步评审即时互动但成本高,通过检查清单、评审 SLA、自动化辅助与关键变更同步可保障异步缺陷发现率 ✓ 正确答案 C 异步评审无需检查清单 D 同步评审无需控制参与人数