機能テストと非機能テストの主な違いは、非機能テストは、ソフトウェアのパフォーマンス、ユーザビリティ、信頼性などの非機能的な側面をチェックするテストのタイプである一方、機能テストは、ソフトウェア製品が正常に動作していることを保証するテストのタイプであるということです。
ソフトウェアテストは、ソフトウェア開発における重要な作業です。
ソフトウェアテストとは、ソフトウェア製品が期待通りに動作しているかどうかを確認し、検証するプロセスです。
テストには様々な種類があり、機能テストと非機能テストはそのうちの2つです。
機能テストは、システムが機能要件や仕様に照らしてテストされていることを検証する。
一方、非機能テストは、堅牢性、パフォーマンスなど、システムの属性を検証します。
これらのテストタイプは両方とも、最終的に動作し、信頼性の高いソフトウェアを作成するために重要です。
機能テストとは
機能テストは、ソフトウェア製品が要件に従って動作することを保証するテストの一種です。
このテストでは、製品のすべての機能をテストします。
テスト者は適切な入力を行い、出力を確認することができます。
そして、実際の結果と期待される結果を比較することができます。
このテストでは、ユーザーインターフェイス、API、データベースなどをチェックする。
図1: ソフトウェアのテスト
例えば、医療センター管理システムのようなソフトウェアを想定する。
このシステムには、患者情報の追加・更新・削除、医師情報の追加・更新・削除、一般レポート、請求書印刷など、様々な機能があります。
それぞれの機能が期待通りに動くかどうかをチェックするのが機能テストです。
非機能テストとは
非機能テストは、システムの非機能的な側面をチェックするテストの一種です。
パフォーマンス、ユーザビリティ、信頼性など、さまざまな側面に焦点を当てます。
言い換えれば、それは機能テストでテストされないパラメータをテストします。
しかし、非機能テストは、機能テストと同様に重要です。
それはまた、クライアントの受け入れを得るために役立ちます。
予想される作業負荷に対するシステムの動作確認、極端な作業負荷に対するシステムの動作確認、ソフトウェアが一定期間予想される作業負荷をどのように処理するかの確認、突然の負荷に対するシステムの動作確認は、非機能テストのいくつかの例です。
機能テストと非機能テストの違い
定義
機能テストとは、ソフトウェア開発において、ソフトウェアがすべての要件に適合していることを確認するために行われるテストプロセスです。
逆に、非機能テストは、システムの特定の動作ではなく、システムの動作方法をチェックするタイプのテストです。
このように、機能テストと非機能テストの主な違いを説明する。
実行順序
機能テストと非機能テストのもう一つの違いは、非機能テストの前に機能テストを実施することです。
必要条件
さらに、要件定義は、機能テストと非機能テストの違いにも寄与している。
つまり、機能テストは要件定義が容易であるが、非機能テストは要件定義が困難です。
しかし、非機能テストでは要件定義が難しい。
機能性
機能テストは、製品が何をするかを説明するのに対し、非機能テストは、製品がどのように動作するかを説明します。
したがって、ここでは機能テストと非機能テストの違いを簡単に説明する。
使用方法
また、機能テストは、システムの動作を検証するのに役立ちます。
これに対して、非機能テストは、システムの動作方法を検証するのに役立つ。
テストの種類
ユニットテスト、インテグレーションテスト、ユーザーアクセプタンステストは、機能テストの一種である。
逆に、パフォーマンステスト、ロードテスト、ストレステストは、非機能テストの一種である。
例
ログイン機能の確認は、機能テストの一例です。
同時に何人のユーザーがログインできるかを確認するのは、非機能テストの例です。
結論
機能テストと非機能テストの違いは、機能テストは、ソフトウェアの機能性が正常に動作していることを確認するタイプのテストであるのに対し、非機能テストは、ソフトウェアのパフォーマンス、ユーザビリティ、信頼性などの非機能的な側面をチェックするタイプのテストであることである。
リファレンス
- “ファンクショナル・テスト”. Wikipedia, Wikimedia Foundation, 1 June 2018, Available here.
- “非機能テスト”. Wikipedia, Wikimedia Foundation, 10 Aug. 2017, Available here.