機能テスト

機能テスト (英: functional testing)は、品質保証（QA）プロセスであり、テスト対象のソフトウェアの構成要素の仕様に基づいてテストケースを作成する一種のブラックボックステストである。機能は、入力を行って得られる出力を調べることでテストされ、内部プログラム構造は考慮されない（そのためホワイトボックステストとは異なる）。 機能テストは、システムや構成要素の指定された機能要件への準拠を評価するために実施される。

機能テストはブラックボックステストの一種であるため、ソフトウェアの内部動作を知らなくても、ソフトウェアの機能をテストできる。これは、テスターがプログラミング言語やソフトウェアの実装方法を知る必要がないことを意味する。テスターはソフトウェアの開発には関与していないため、テストにおける開発者のバイアス（または確証バイアス）が減少するのは良い点である。 

機能テストは、モジュールまたはクラスの関数（メソッド）をテストすることを意味するわけではない。機能テストは、システム全体の機能の一部をテストするものである。

機能テストはシステムテストとは異なる。機能テストでは「設計ドキュメントや設計仕様に基づいてプログラムの確認を行う」仕組みであるのに対し、システムテストは「公開されているユーザー要件、システム要件に準拠しているかを検証する」仕組みである。

種類 
機能テストには多くの種類がある： 

 スモークテスト
 健全性テスト
 回帰テスト
 ユーザビリティテスト

6つのステップ 
機能テストには通常、6つのステップが含まれる

 ソフトウェアが実行することが期待される機能の識別
 機能の仕様に基づいた入力データの作成
 機能の仕様に基づく出力の決定
 テストケースの実行
 実際の出力と期待される出力の比較
 アプリケーションが顧客のニーズどおりに機能するかどうかの確認

関連項目 

 非機能テスト
 受け入れテスト
 回帰テスト
 システムテスト
 ソフトウェアテスト
 統合テスト
 単体テスト
 データベーステスト
 セキュリティテスト
 負荷テスト
 テスト自動化

脚注 

ソフトウェアテスティング