機能テスト
キノウテスト

機能テスト(フィーチャーテスト)とは、特定の機能やユースケース単位でシステムの振る舞いを検証するテスト手法である。単体テストより広い範囲を対象とし、複数のモジュールが連携して正しく動作するかを確認する。
単体テストと E2E テストの間
テストピラミッドの中間層に位置するのが機能テストだ。単体テストが関数単位の正しさを保証し、E2E テストがシステム全体の動作を確認するのに対し、機能テストは「1つのユーザーアクションに対する結果」を検証する。
たとえば「従業員を作成する」という機能テストでは、サーバーアクションの呼び出しからバリデーション、DB への保存、レスポンスの返却までを通す。ただし、ブラウザの起動は不要で、HTTP リクエストのシミュレーションやサーバーアクションの直接呼び出しで実行する。
機能テストの境界線
「1つの機能」の範囲が曖昧になりがちだが、判断基準はシンプルだ。1つのサーバーアクションまたは1つの API エンドポイントの呼び出しが1件の機能テストに対応する。「部署作成→職種作成→従業員作成」のように複数アクションを連鎖させるものは統合テスト(インテグレーションテスト)に分類する。
受け入れテストとの違い
機能テストは開発者の視点で「実装が仕様どおりか」を確認する。受け入れテストはビジネスの視点で「要件を満たしているか」を確認する。同じ操作を検証していても、検証の観点と記述の粒度が異なる。
この用語を扱う記事
関連用語

E2Eテスト
E2E テスト(End-to-End テスト)とは、ユーザーの操作を起点にブラウザや API を通じてシステム全体を通過させ、期待どおりの結果が得られるかを検証するテスト手法である。

受け入れテスト
受け入れテスト(アクセプタンステスト)とは、開発した機能がビジネス要件やユーザーストーリーを満たしているかを、プロダクトオーナーやステークホルダーの視点で検証するテスト手法である。

SSM(AWS Systems Manager)
AWS Systems Manager(SSM)とは、EC2 インスタンスやオンプレミスサーバーをまとめて運用・管理するための AWS マネージドサービスである。パッチ適用、コマンド実行、パラメータ管

ATDD
ATDD(Acceptance Test-Driven Development)とは、開発着手前に受け入れテストの基準をチーム全体で定義し、そのテストを自動化してから実装を進める開発手法である。
