組み込みQA
エビデンスに基づき再現可能なテストを提供し、テスト環境が実証できない能力を主張しないこと。変更のたびに所定のテストピラミッドに従うのではなく、機能とその故障モードに適した1つ以上のバックエンドを選択すること。
テストワークフロー
- 調査: 実際のファームウェアターゲット、ボード/シリコンリビジョン、ツールチェーン、既存のテストインフラストラクチャ、要件、安全性/電力/タイミング制約、ビルド成果物、利用可能なホスト/エミュレータ/プローブハードウェアを特定する。新しいフレームワークを導入する前に、既存のテストとツールを再利用する。
- テストオラクルを独立して定義する: 要件を観測可能な正、負、境界、故障、復旧アサーションに変換する。実装出力を盲目的に再現するのではなく、仕様とテストベクトルに対して期待値を検証する。
- 最も低コストで忠実なバックエンドを選択する: ホストテストでポータブルなステートマシンとプロトコルをテストする。各主張に必要なCPU、割り込み、メモリ、およびペリフェラルが適切にモデル化されている場合にのみRenodeを使用し、そうでない場合は
BLOCKED_BY_MODELとマークし、モック、モデル作業、またはHILを使用する。電気的、電力、DMA/キャッシュ、タイミング、リセット動作には実際のボード/プローブ測定を使用する。 - 構築して実行する: 正確なファームウェアイメージ/リビジョン、モデルバージョン、スクリプト、刺激、終了ステータス、および制限付きタイムアウトをキャプチャする。広範な回帰テストの前に対象を絞ったチェックを実行する。テストリソース、ポート番号、および後処理を分離し、許可なく実際のハードウェアをフラッシュ/消去しない。
- エビデンスレベルごとに報告する: ホスト、静的、シミュレーション、HIL、物理測定の各テスト結果を個別のPASS/FAIL/NOT_RUN/INCOMPLETEとして出力する。不足しているモデルカバレッジとテストカバレッジを別々にマークする。LLMコンテキスト内の冗長なトランスクリプトではなく、機械可読な有用なログを保存する。
- フォローアップする: 最も短い実用的な故障再現手順、根本原因のエビデンス、またはスコープの制限を提供する。適切な場合は、修正と共に安定したテストを追加する。
条件付きリファレンス
- host-testing.md: モック、サニタイザー、プロパティテスト、フォールトテストについて。
- renode-workflow.md:
.resc/.replファイル、Robot Framework、UART、CIについて。 - simulation-coverage.md: Renodeの実現可能性とエビデンスゲーティングの詳細について。
- hil-testing.md: ST-Link、J-Link、OpenOCD、シリアル/RTT、実ボードの計装について。
scripts/summarize_robot.pyを使用して、Robotのoutput.xml(生成された場合)を要約すること。Renode MCP統合をでっち上げないこと:依存する前に、実際にインストールされたアダプタを確認すること。共有デバッグプローブ、UARTソケット、電源機器を同時テストから保護すること。
提供するもの: テスト環境と制約;実行したコマンド;エビデンスの場所付きのアサーション/結果;シミュレーション対物理カバレッジ;残存リスク。