プログラミングにおける単体テストは、ソフトウェアの特定の部分またはプログラムの一部が正しく機能することを確認するプロセスです。
プログラマーにとって、これには、モジュールが機能仕様を満たしていること、およびあらゆる状況で正しく機能することを確認するために、プログラムの残りの部分とは独立してモジュールをテストすることが含まれます。この検証は、特にミッションクリティカルなアプリケーションでは不可欠であると考えられています。これには通常、コード カバレッジ チェックが伴います。これは、テストによって、テスト対象のコード内に存在する命令のすべて(または特定の部分) が実行されることを確認することで構成されます。コードを変更した後は、回帰 (新たな誤動作の出現) がないことを確認するために、すべての単体テストを再実行する必要があります。
クリティカルでないアプリケーションでは、単体テストの作成は長い間二次的なタスクであると考えられてきました。しかし、エクストリーム プログラミング(XP) 手法により、単体テスト (現在はプログラマーテストと呼ばれています) がプログラミング活動の中心に戻りました。
XP の方法では、テストを同時に作成するか、テスト対象の関数 (TDD) の前に作成することをお勧めします。これにより、開発するモジュールのインターフェースを正確に定義することが可能になります。ソフトウェアのバグが発見された場合、そのバグを再現するテスト手順を作成します。修正後、テストを再実行しますが、エラーは示されないはずです。
テスト環境
主要なプログラミング言語には単体テストを容易に実行するための環境(フレームワーク)が用意されています。たとえば、Perl の場合は Test::More [ 1 ]です。

xUnit フレームワーク
Smalltalk言語のSUnitテスト環境[ 2 ]は、1994 年 10 月にKent Beck [ 3 ]によって作成され、広く普及し、多くの言語に適応されています。
- Ada のAunit [ 4 ] 。
- Java の場合はJUnit [ 5 ]およびTestNG [ 6 ] 。
- Delphi用の DUnit ;
- PHP 用のPHPUnit [ 7 ]およびSimpleTest [ 8 ] 。
- .NET の場合はNUnit [ 9 ] 。
- ASP.NET 用のNUnitASP [ 10 ] 。
- Python の単体テスト。
- Ruby 用のテスト::ユニット;
- ActionScript のAUnit [ 11 ] 。
- C++ の場合はcppunit 、Objective Cの場合はOCunit …

