ドライバとは何か?デバイスドライバとテストに使われるドライバを解説

2021年3月9日

ドライバとは

IT業界における「ドライバ」は主に2つのものを指しています。
1つはソフトウェア上の「デバイスドライバ」、もう1つはプログラムのテストにおける「ドライバ」です。

デバイスドライバについて

ソフトウェア上のドライバ

ソフトウェア上のドライバは、「デバイスドライバ」を省略したものです。
このデバイスとは、コンピュータに接続するハードウェアを指します。CPUやハードディスク、キーボードやマウスなどもデバイスの1つです。
あらゆるデバイスは、基本的にデバイスドライバがなければ動かすことができません。
周辺機器をOSによって制御するためのソフトウェアが「デバイスドライバ」であると言えるでしょう。

デバイスドライバの目的

デバイスドライバの目的は、あらゆるアプリケーションでデバイスをより利用しやすくすることです。
たとえばデバイスドライバが存在しない場合、外部デバイスを利用したいアプリケーションは、様々なデバイスが存在することを想定してプログラミングされなければなりません。これでは開発の負担が大きく、ユーザーの使い勝手も悪くなります。
そこでデバイスがAPIに対応するようデバイスドライバを作ります。
APIとは、コンピュータが外部のアプリケーションを呼び出すための共通規格のことです。
これにより、アプリケーションがAPIに対応するようプログラミングするだけで、あらゆるデバイスを使用可能になります。

オープンソースのドライバ

近年ではオープンソースのドライバも増えてきています。
オープンソースとはその名の通り「公開されたソースコード」のことです。多くの場合、誰でも自由にコードを閲覧でき、改造したものの再配布が許可されていることもあります。ただし無償で提供されているため、たとえそのドライバにバグがあったとしても、提供側にバグ修正やサポートなどの責任が発生しないことがよくあります。
多くの場合オープンソースのドライバには詳しいマニュアルもないため、オープンソースを利用する側が自身でソースを解読・学習する必要があります。
この対義語になるのが「プロプライエタリ」です。これはソースなどが公開されず、企業側が情報を保持しているものを指します。

プログラムテスト上のドライバ

プログラムテスト上の「ドライバ」とは、システム開発においてテストでのみ使用するダミー部品です。

ドライバの機能・役目

プログラムの中には、上位モジュール(部品)から呼び出されるものが存在します。
これらの下位モジュールは上位から呼び出されることで機能するため、上位モジュールが完成していないとテストができません。
この時上位モジュールの代わりに使用するダミーが「ドライバ」です。
ドライバは多くの場合、テスト対象となる下位モジュールを呼び出し、必要であれば引数を渡す・返り値を受け取るという機能のみを持っています。
このようにドライバを使用することで、上位モジュールが完成していなくても下位モジュールのテストが可能です。

ドライバとスタブの違い

テスト上の「ドライバ」に似ている存在に、「スタブ」と呼ばれるものがあります。
テスト対象を呼び出すドライバとは対象的に、スタブはテスト対象から呼び出されるためのダミーです。
どちらもテストでしか使用しないものであり、完成時には正規のプログラムに置き換えられます。

参考