第55回: テスト基礎 — 変更に強いコードを自動検証する仕組み

章: 第6章: 実践運用と成長

コードを修正するたびに「どこか壊れていないか」手で確認していませんか?テストを自動化すれば、その不安から解放されます。

問題と解決策

機能を追加・修正するたびに「既存の動作が壊れていないか」を手動で確認するのは非効率で、確認漏れも起きやすくなります。特にコードが大きくなるほど、影響範囲が読めなくなります。

テストコードを書くと、php vendor/bin/phpunit の一言でアプリ全体を自動検証できます。テストが通れば「既存の動作は保たれている」という安心感を持ちながら開発できます。

テスト種類の比較

テスト種類 目的 PHPでのツール
ユニットテスト 関数・クラス単体の動作確認 PHPUnit / Pest
統合テスト 複数コンポーネントの連携確認 PHPUnit
フィーチャーテスト ユーザー操作レベルの確認 Laravel Feature Test

チェックポイント: テストを書く前に「期待値」を先に決めていますか?「何を確認するか」を先に言葉にしておくと、テストコードがぶれずに書けます。TDD(テスト駆動開発)ではテストを先に書くのが基本です。

コードサンプル


<?php
function multiply($a, $b) { return $a * $b; }
assert(multiply(2, 3) === 6);

まとめ & 次のステップ

  • テストコードを書くと変更のたびに自動で動作確認ができます
  • PHPUnitが代表的なテストフレームワークで、Composerで導入できます
  • まずは純粋な関数(入力→出力が決まっているもの)からテストを書き始めましょう
  • テストが通ることを確認しながらリファクタリングすると安全に改善できます

次回は オートローダ — requireを書かずにクラスを自動読み込みする仕組みを学びます。

Related Articles