概要
テストコードとは、プログラムが正しく動作しているかを自動で確認するためのコードのことです。
開発者が書いた処理に対して、
「入力に対して期待した出力が得られるか」「エラーが起きないか」などを自動でチェックできます。
PHPなどの多くの言語には、テスト専用の仕組みやツール(フレームワーク)が用意されており、
開発の品質向上やバグの予防に役立ちます。
正式名称
Test Code(テスト・コード)
略称
略称としてはあまり使われませんが、以下のような関連語があります:
- UT(ユー・ティー):Unit Test(ユニット・テスト、単体テスト)
- E2E(イー・ツー・イー):End to End(エンド・トゥ・エンド)テスト
特徴
- プログラムが正しく動作するかを自動で検証できる
- 手作業で確認しなくても一括でチェックできる
- バグの早期発見につながる
- リファクタリング(コード整理)のときに動作保証として使える
- CI/CDと連携して使われることが多い
- テストを先に書く「TDD(テスト駆動開発)」という手法もある
- 学習コストはあるが、長期的には保守コストを下げる
具体例
PHPでテストコードを書くときは、以下のようなフレームワークを使用します
ツール / フレームワーク | 解説 |
---|---|
PHPUnit | PHPで最も使われているテストフレームワーク。ユニットテストに最適。 |
Pest | Laravel向けの、よりシンプルな記法ができるPHPテストフレームワーク。 |
Laravelのテスト機能 | Laravelでは標準でテストが組み込まれており、php artisan test で実行可能。 |
テストコード例(PHPUnit)
use PHPUnit\Framework\TestCase;
class SampleTest extends TestCase
{
public function testAddition()
{
$this->assertEquals(4, 2 + 2);
}
}
このコードは「2 + 2 が 4 になること」をチェックしています。
関連用語
用語 | 解説 |
---|---|
ユニットテスト | 小さな部品(関数・メソッド)単位でのテスト |
統合テスト | 複数の処理を組み合わせた状態でのテスト |
E2Eテスト | 実際の操作を想定した、アプリ全体を通したテスト |
CI/CD | コードをプッシュしたときにテストを自動実行する仕組み |
PHPUnit | PHPの代表的なテストフレームワーク |
TDD | テストを先に書いてから実装する開発手法 |
バグ | 本来の動作と違う不具合(テストで早期に発見できる) |