単体テスト
コンピュータプログラミングにおいて単体テスト（たんたいテスト）あるいはユニットテスト（）とは、ソースコードの個々のユニット、すなわち、1つ以上のコンピュータプログラムモジュールが使用に適しているかどうかを決定するために、関連する制御データ、使用手順、操作手順とともにテストする手法である。ユニットとはアプリケーションのテスト可能な最小の部品単位である、と直観的にとらえることができる。手続き型プログラミングでは、ユニットは、モジュール全体のこともあるが、より一般的には、個々の関数や手続きである。オブジェクト指向プログラミングでは、ユニットは、クラスなどのインタフェース全体だが、個々のメソッドであることもある。単体テストは開発プロセス中にプログラマー、時にはホワイトボックステスターによって作成される。
理想的には、各テストケースは他から独立しているべきである。メソッドスタブ、モックオブジェクト、フェイク、テストハーネスなどのような代替を、モジュールを分離した状態のテストを支援するために使用できる。一般的に単体テストは、コードが設計通りであることと、意図したとおりに動作することを確認するため、ソフトウェア開発者の手によって書かれ、実行される。その実装は手作業（鉛筆と紙）からビルド自動化の一環として定式化される場合まで、さまざまである。
現在では、単体テストはxUnitといったテスト自動化ツールを用いて行われるのが主流となっており、単体テストを自動化されたテストとして言及するケースもある（本項目も、自動化されたテストとしての記述を含む）。しかし、単体テストはあくまでテストの粒度に対する分類であり、必ずしもテスト自動化を意味しないため、注意が必要である。