ユニットテストとは何か??3分で理解する

テスト知識全般

ユニットテストは、ソフトウェアの個々のユニットまたはコンポーネントをテストするソフトウェアテストの一種で、

目的は、ソフトウェアコードの各ユニット(関数やメソッド)が期待どおりに機能することを検証すること。です。

なぜユニットテストが必要か?

ユニットテストを行うメリットは主に以下です。

  • 開発の早期にバグを発見でき、修正コストが下げることができる
  • 開発者がコードの内容をを理解するのを助け、迅速に後の変更や拡張開発に役に立つ
  • テストの実行速度が速い

ユニットテストの方法

一般的にユニットテストは開発者が、ユニットテストフレームワークを使用し、ユニットテスト用の自動テストケースを実装しますが、手動で実施する場合もあります。

また、ユニットテストを実行するため、テスト対象のコードのほかに、ドライバー(テスト対象を呼び出す側)やスタブ(テスト対象から呼び出される側)といった付加的なコードが必要になる場合があります。

これらの仕組みによって、テスト対象の関数やメソッドを単体で実行することができます。

また、ユニットテストのテストカバレッジを計測する方法として、ステートメントカバレッジや、デシジョンカバレッジを計測します。

ユニットテストの観点

ユニットテストのテスト観点として、大きく分けて、ホワイトボックステストとブラックボックステストに分けられます。

  • ホワイトボックステストの観点
    • 関数やメソッドの内部構造に着目し、全ての命令と分岐をテスト
  • ブラックボックステストの観点
    • 関数やメソッドの外から見た機能(入出力)に着目し、仕様通りに動いているかをテスト

ユニットテストフレームワーク

各プログラミング言語ごとに、色々なユニットテストフレームワークがあります。

代表的なものは以下

  • Junit -> Java
  • Nunit -> .NET
  • PHPUnit -> PHP
  • test-unit -> Ruby

以上、ユニットテストを3分で理解する説明でした!

参考文献