エンベデッドシステムスペシャリスト 2019年 午前2 問22
問題文
組込みソフトウェア開発を行うために、ターゲットシステム上で未完成の周辺ハードウェアが正しく動作しているようにエミュレーションするデバイスドライバを開発した。このデバイスドライバのソフトウェアテストにおける役割はどれか。
選択肢
ア:CPUシミュレータ
イ:インサーキットエミュレータ
ウ:仮想デバイスドライバ
エ:スタブ(正解)
🔒 解説は解答すると表示されます
スタブによる未完成部品の代替【午前2解説】
正解の理由
未完成の周辺ハードウェアが正しく動作しているように見せかけるデバイスドライバは、テスト対象が依存する未完成の部品を代替するものです。この役割を担うのがスタブです。
スタブは、未完成の下位モジュールや外部部品の代わりに、テストに必要な応答を返します。したがって、このデバイスドライバに該当するのはエです。
解法ステップ
- 問題文から「未完成の周辺ハードウェアを、動作しているようにエミュレーションする」と読み取ります。
- 未完成の部品をテスト用に代替する仕組みを考えます。
- 未完成のモジュールの代わりを務める「スタブ」を選びます。
選択肢別の誤答解説
-
ア:CPUシミュレータ
CPUの命令実行や動作をソフトウェア上で再現するものです。未完成の周辺ハードウェアを代替する役割とは異なります。 -
イ:インサーキットエミュレータ
実際のCPUに接続して、CPUの動作をエミュレーションしたり、実行状況を調べたりする開発・デバッグ用装置です。未完成の部品を代替するテスト用モジュールではありません。 -
ウ:仮想デバイスドライバ
仮想的なデバイスをOSから利用するためのドライバを指します。問題のように、ソフトウェアテストで未完成の部品を代替する役割を問う場合の用語はスタブです。 -
エ:スタブ
未完成のモジュールや外部部品の代わりに動作し、テスト対象へ応答を返します。問題文のデバイスドライバの役割に合致します。
よくある誤解
-
「エミュレーション」と書かれていれば、インサーキットエミュレータだと考える
用語だけで判断せず、何を代替しているのかを確認しましょう。未完成の部品の代替なら、スタブが候補です。 -
「ドライバ」という言葉から、OSのデバイスドライバの種類を選ぶ
問題が尋ねているのはドライバの一般的な分類ではなく、テストにおける役割です。 -
スタブとテスト対象を混同する
スタブはテスト対象そのものではなく、テスト対象が依存する部品の代わりです。
補足コラム
スタブは、テスト対象から呼び出される側の代替部品として使われます。たとえば、まだ完成していないセンサの代わりに、スタブが「温度は25度」といったテスト用の値を返します。
一方、テスト対象を呼び出して動作を確認する側の代替部品は、一般にドライバと呼ばれます。スタブとドライバは、テスト対象との呼び出し関係が逆になる点がポイントです。
FAQ
Q. スタブは、実際のハードウェアと同じ動作を完全に再現する必要がありますか?
A. 必ずしも必要ありません。テスト対象の確認に必要な範囲で、期待する応答を返せばよいです。
A. 必ずしも必要ありません。テスト対象の確認に必要な範囲で、期待する応答を返せばよいです。
Q. スタブはどのようなときに使いますか?
A. 依存するモジュールやハードウェアが未完成の場合や、実物を使うとテストが難しい場合などに使います。
A. 依存するモジュールやハードウェアが未完成の場合や、実物を使うとテストが難しい場合などに使います。
関連キーワード: スタブ、テストダブル、デバイスドライバ、インサーキットエミュレータ

\ せっかくなら /
エンベデッドシステムスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

