機能テスト
機能テスト (英: functional testing)は、品質保証（QA）プロセスであり、テスト対象のソフトウェアの構成要素の仕様に基づいてテストケースを作成する一種のブラックボックステストである。機能は、入力を行って得られる出力を調べることでテストされ、内部プログラム構造は考慮されない（そのためホワイトボックステストとは異なる）。 機能テストは、システムや構成要素の指定された機能要件への準拠を評価するために実施される。
機能テストはブラックボックステストの一種であるため、ソフトウェアの内部動作を知らなくても、ソフトウェアの機能をテストできる。これは、テスターがプログラミング言語やソフトウェアの実装方法を知る必要がないことを意味する。テスターはソフトウェアの開発には関与していないため、テストにおける開発者のバイアス（または確証バイアス）が減少するのは良い点である。 
機能テストは、モジュールまたはクラスの関数（メソッド）をテストすることを意味するわけではない。機能テストは、システム全体の機能の一部をテストするものである。
機能テストはシステムテストとは異なる。機能テストでは「設計ドキュメントや設計仕様に基づいてプログラムの確認を行う」仕組みであるのに対し、システムテストは「公開されているユーザー要件、システム要件に準拠しているかを検証する」仕組みである。