先理解
刚接触这个知识点
补齐先备概念,读原理与反例,再用自己的话解释为什么。
从核心原理开始 →理解 → 实现 → 排错 → 取舍
考察代码库理解、隔离执行、验收、回归与人工评审。
知识内容核对 2026-10-03 · 原题来源核对 2026-10-02
按当前基础选择起点,也可以依次深入。遇到不熟悉的概念,先回到核心原理;完成后用知识练习检查理解。
LEARN · PRACTICE · REFLECT
先沿着原理、问答和迁移案例阅读。需要检查理解时,再切换巩固练习或展开个人记录。
核心知识 · 代码变更与验收证据绑定
先备概念:Git 差异、测试基线、构建与依赖
代码交付的证据必须绑定实际提交及环境。验收目标由任务和受保护约束确定,Agent 不能通过删测试、隐藏失败或复用旧结果让变更看似完成。
修复空密码登录不能只说“提升安全”,应说明空密码被拒、正常登录仍成功、接口兼容与无意外依赖变更。读取仓库约定、调用链和既有测试,独立工作区生成最小差异;仓库中的文档也可能是外部输入,不应自行授予部署凭证。
原仓库测试失败时,在相同环境对基线提交与候选提交运行相关检查,区分预先存在、环境变化和新增失败。不能简单宣布“本来就坏”或大范围修改无关组件。已有失败会限制结论,新增任务仍要有针对性的验收。
修改文件、依赖锁或运行参数后,旧测试报告不再证明新状态。交付应包含提交摘要、命令、环境、真实结果与未覆盖范围,提交 PR 后仍由授权流程决定合并。以下示例是教学任务,没有修改或测试新的 Java 系统。
从可验收的小任务开始,读取仓库约定、调用关系和现有测试,在独立工作区生成最小变更。模型负责提出修改,运行时负责权限、预算、测试和产物审查。交付包含差异、检查结果、未解决风险和复现步骤;自动提交 PR 不等于自动合并。对数据库迁移、公共接口和外部依赖设置明确的审批边界。
以“修复重复扣减库存”为例,先要求失败复现、目标行为、允许修改范围和兼容性条件。构建代码索引或按需搜索入口、调用方、事务边界与测试,不把整个仓库盲目塞进上下文。记录基线测试状态,避免把原本就失败的测试误认成新回归,也避免将测试本身改到不再检查原问题。
每任务独立分支或工作区,执行环境不挂生产凭证,依赖下载和网络受控。工具包括读取、搜索、编辑、构建、测试与差异检查,权限不默认包含部署和合并。大型 Maven 或 Gradle 工程可先运行相关模块测试,再按变更范围扩大;测试选择需解释覆盖理由,不能只挑容易通过的命令。
验收不仅看编译通过,还看回归测试、公共 API 兼容、SQL 迁移、异常路径和并发行为。把命令、退出码、环境版本和关键输出作为证据保存。多轮修复受预算限制;恢复时保留代码变更与已跑检查的关联哈希,代码变了就不能复用旧测试通过状态。
PR 描述问题、最终行为、测试和局限,提供最小复现与回滚考虑。评审者应能从差异看出为什么有效。技术负责人会追问 Agent 如何发现事务缺陷、如何保护不可修改接口、如何避免删除测试“解决失败”,而不是只要求演示一次自动写代码。
沿着问题的前提和约束继续向下读。先理解参考解答,再尝试收起答案,用自己的话解释因果和取舍。
第 1 层Agent 把失败测试删除了算完成吗?
任务完成需要保护验收标准不被执行者改写。
不算。先检查被删除测试是否保护任务目标或公共行为,禁止用移除断言换绿灯。若需求确实变更,可在明确新契约下更新测试并说明旧断言为何不再适用,仍新增有效覆盖;删除结果不能冒充修复实现。
沿着这个回答继续深入
第 2 层Agent 说测试已过时,并把预期改成新行为,如何判断?
父问禁止删除验收,子问增加保留测试但修改预期的绕过。
回到任务与公共契约,检查需求是否授权改变行为以及调用方依赖。不能仅因候选实现产生新输出就改预期;用独立验收样例或人工审查确认新行为正确。测试代码也是交付差异,必须审阅其目的与覆盖。
沿着这个回答继续深入
第 3 层测试与实现都由同一模型生成,怎样减少共同误解?
父问需独立判定新行为,继续追问实现和测试共同误读需求。
依据独立任务约束设计反例,保留既有公共行为测试,由另一轮审查或人工核对关键断言;必要时用参考实现或业务事实检查。多模型本身不保证独立,关键是检验来源不同且覆盖错误路径。
第 1 层已有测试失败怎么区分回归?
老系统常有失败,需有公平的前后对照。
锁定同样环境与依赖,对基线和候选提交复跑,按测试和错误类型分类。基线也失败只能说明该失败未因候选首次出现,不证明候选没有其他回归;不稳定测试需重复诊断或保留未知,报告可验证范围。
第 1 层修改后能复用之前的测试结果吗?
验收发生在某一版本,后续修改可能使证据失效。
不能直接复用。只有报告绑定的代码、依赖、配置和环境仍一致时,才说明那份检查支持哪些事实。修改后运行受影响的检查,复杂依赖变动需扩大范围;注明未重新跑的项,不把历史绿灯标成当前通过。
先找出改变的条件,再判断原方案中哪些前提仍成立。下面的案例是教学推演,便于将原理迁移到新问题。
改变的条件:差异从方法修复扩到持久数据结构。
延伸问题:普通单元测试通过足够吗?
需额外验证迁移顺序、旧数据、兼容读写与恢复方案,明确审批和实际运行范围。独立测试数据库可模拟升级,未在生产验证就不能声称生产迁移安全;交付迁移风险而不是自动执行。
保持不变的原理:证据要覆盖实际变更契约,绑定版本和环境。
改变的条件:代码审查可做,动态结果缺失。
延伸问题:能交 PR 吗?
可在授权范围交付可审阅差异、静态检查及未运行项,提供复现命令和所需环境。不能编造通过日志;对高风险修改先限制交付阶段并说明需补的验收。没有执行证据不等于所有静态判断无价值。
保持不变的原理:结论不得超过真实检查范围。
依据公开技术资料设计;参考资料支持技术机制,场景与评分标准为本站设计,不代表某公司面试原题。 新增问答与迁移案例用于原理讲解,来源核查与案例运行验证分别记录。
读完后可以对照这些标准解释原理、边界和取舍。掌握程度由你自评;需要进一步验证时,再完成下方小任务。
给 Java 重复扣减问题设计任务合同、工具权限、失败复现与 PR 验收。