単体テスト
単体テストは、エクストリーム・プログラミングの基礎となるもので、それは自動化ユニットテストのフレームワークに依存している。この自動化ユニットテストフレームワークは、xUnitのようなサードパーティ製、あるいは、開発グループ内で自作することができる。
エクストリームプログラミングはテスト駆動開発での単体テストの作成を利用している。開発者は、ソフトウェア要件、または欠陥を暴露する単体テストを書く。要件がまだ実装されていないか、意図的に既存のコードの欠陥を暴露するため、このテストは失敗する。そして、開発者は、そのテストと他のテストにパスするような最も簡単なコードを書く。
システム内のほとんどのコードは、単体テストが実施されるが、コード中のすべてのパスである必要はない。エクストリームプログラミングは従来の 「すべての実行パスをテストする」方法よりも、 「失敗する可能性があるすべてのテストを実行する」戦略を義務付けている。これにより、開発者が従来の方法よりも少ないテストプログラムを開発することにつながるが、古典的な方法においては、すべての実行パスが完全にテストされるほど十分念入りに実施されないため、これは大きな問題でなく、事実の言い換えである。
単体テストの目的は、プログラムの各部分を分離し、個々の部品が正しいことを示すことである。単体テストはコードの一部が満たさなければならない厳格な、明記された契約を規定する。その結果、以下のような利点がもたらされる。