アプリが通常のPCでビルドおよび少なくとも部分的にテストできることを確認するためのこれまでの提案(Valgrindなどのツールの使用にも役立ちます)とは別に、ソフトウェアの設計について考えます。
私が取り組んだプロジェクトの1つには、ハードウェアを駆動するためのコンポーネント、管理タスクを処理するためのコンポーネント、およびネットワーク管理のコンポーネントがありました。ネットワーク管理はSNMPによって処理されたため、ハードウェアを駆動して何かを実行するためにリモートで実行されるスクリプトを簡単に作成できました。
低レベルのハードウェアテストを実行するために、テストスクリプトを解析し、ドライバーのIPCにコマンドを挿入する簡単なスクリプトリーダーを作成しました。出力はビデオベースであるため、目で確認する以外に処理の検証を自動化することは困難でしたが、RSIを確実に節約できました。また、バグが再発しないように、既知の障害状態をストレステストまたはシミュレートするスクリプトを生成する場合にも非常に役立ちました。
もう一度やり直すとしたら、おそらくテストハーネスで使用される共有ライブラリと、コアメッセージを送信するための実際のコードを実装するでしょう。次に、libをpython(または同様のもの)でラップして、テストを少し「スクリプト化」できるようにします。