Wind River Test ManagementとWind River Field Diagnostics製品にとって極めて重要なのは、センサーポイントとパッチポイントを作成する機能です。センサーポイントがライブアプリケーションの計測に使用するソフトウェアであるのに対し、パッチポイントはライブアプリケーションのパッチに使用します。どちらも動的に適用できるため、アプリケーションのソースコードの書き換え、アプリケーションの再ビルド、ボードのフラッシュ再書き込み、デバイスのリブートなどを行う必要がありません。
センサーポイントとパッチポイントを使用しても、デバイスパフォーマンスへの影響はほとんどなく、テスト後に無効にしたり、必要に応じて、テスト中のデバイスの診断や修復の際に有効にすることができます。開発エンジニアが作成したセンサーポイントをテスト・チームが利用し、稼働中のデバイス上のソフトウェア障害を診断したり、修復を行う際にサポートエンジニアが活用することができます。
センサーポイントとパッチポイントの活用例
サブシステムや関数をイ効率的にテスト・実行:
- 変数に特定値を代入
- 条件分岐で特定コードパスを強制実行
- エラーを挿入してルーチンを評価
- システムの環境値を変更(センサーから読み出された値の変更、CPUや周辺コントローラのレジスタ値の設定、ストリーミングデータの修正など)
問題の再現と解決を迅速化:
- システムの環境値を変えて、強制的にエラーを再現
- 問題再現時のグローバル変数、ローカル変数、関数呼び出し、データのトレースを収集
- システム内の任意のポイントにタイムスタンプを設定して、タイミング欠陥の特定や性能の計測を実行
実行中のソフトウェアを動的にデバッグ:
- デバッグコード(logやprintfを含む)を挿入して不具合箇所を特定
- コードを挿入して不具合の修正をテスト
- 変数、レジスタ、センサーの値の書き込み・読み出しで修正を検証
- コード変更毎のリブートやテスト向けのセットアップを行うことなく、実行中のシステムを変更可能
負荷試験:
- 検証中のデバイスに対するエラー挿入
- デバイスの環境を特定の状態に強制移行(センサーによる高温測定など)
- デバイスの任意の箇所の性能を定量的に評価できるタイムスタンプのログを収集可能
- 長時間の連続動作後に到達する特定の状態にデバイスを設定(空きバッファなし、キューが空、円周率を小数点以下4千万桁まで計算など)
- 高度なテスト装置の使用を回避(データ・パケット内のホップ・カウントを極大値にする、など)
エラー記録システムの作成:
- 配備済みのデバイスやシステムの「フライトデータレコーダ」を作成
- 自動データロギングと集約を設定
- 追加ログを得るためにアプリケーションの動的計測を設定
実行中のソフトウェアの動的な診断と修復:
- デバイスをリブートする必要なく診断アプリケーションを実行
- お客様の現場でログ関数の引数や戻り値を提供
- システム内の任意のポイントにタイムスタンプを設定し、タイミングとパフォーマンスの問題を特定
- 設計に盛り込まれた診断とロギングの機能を増強
- アプリケーションに「ヒットレス」でパッチを適用し、問題を解決