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