機能テスト

キノウテスト

機能テスト

機能テスト(フィーチャーテスト)とは、特定の機能やユースケース単位でシステムの振る舞いを検証するテスト手法である。単体テストより広い範囲を対象とし、複数のモジュールが連携して正しく動作するかを確認する。

単体テストと E2E テストの間

テストピラミッドの中間層に位置するのが機能テストだ。単体テストが関数単位の正しさを保証し、E2E テストがシステム全体の動作を確認するのに対し、機能テストは「1つのユーザーアクションに対する結果」を検証する。

たとえば「従業員を作成する」という機能テストでは、サーバーアクションの呼び出しからバリデーション、DB への保存、レスポンスの返却までを通す。ただし、ブラウザの起動は不要で、HTTP リクエストのシミュレーションやサーバーアクションの直接呼び出しで実行する。

機能テストの境界線

「1つの機能」の範囲が曖昧になりがちだが、判断基準はシンプルだ。1つのサーバーアクションまたは1つの API エンドポイントの呼び出しが1件の機能テストに対応する。「部署作成→職種作成→従業員作成」のように複数アクションを連鎖させるものは統合テスト(インテグレーションテスト)に分類する。

受け入れテストとの違い

機能テストは開発者の視点で「実装が仕様どおりか」を確認する。受け入れテストはビジネスの視点で「要件を満たしているか」を確認する。同じ操作を検証していても、検証の観点と記述の粒度が異なる。