ISTQB Foundation Level(CTFL)シラバスの第2章では、「ソフトウェア開発ライフサイクルにおけるテスト(Testing throughout the SDLC)」について学びます。
今回その中の 2.2.2「テストタイプ(Test Types)」 に焦点を当て、機能テスト(Functional Testing) と 非機能テスト(Non-Functional Testing) の違いを詳しく解説します。
🔹 テストレベルとテストタイプの違い
まず混同しやすいのが、「テストレベル(Test Levels)」と「テストタイプ(Test Types)」の違いです。
-
テストレベル:開発工程に応じて実施する段階的なテスト(例:単体テスト、結合テスト、システムテスト、受け入れテスト)
-
テストタイプ:テストの目的や観点によって分類される種類(例:機能テスト、非機能テスト、ホワイトボックステスト、ブラックボックステストなど)
両者は似ていますが、テストレベルが「いつ・どの段階で行うか」を示すのに対して、テストタイプは「何を目的に・どの観点から検証するか」を示します。
🔸 機能テスト(Functional Testing)とは?
機能テストとは、ソフトウェアが「何をするべきか(What the system does)」を検証するテストです。
つまり、システムが期待通りの機能を正しく実行できるかを確認します。
機能テストの例
-
Google Pay:お金の送金、QR決済、携帯のチャージなどが正しく行えるか
-
旅行予約サイト(例:Booking.com):検索、予約、キャンセル、Webチェックインが機能しているか
これらの「ユーザーが利用する基本機能」をチェックするのが機能テストです。
機能テストに含まれる代表的なレベルは以下の通りです:
|
テストレベル |
説明 |
|---|---|
|
ユニットテスト(単体テスト) |
各モジュールや関数の機能を個別に確認 |
|
結合テスト |
複数のモジュール間の連携を確認 |
|
システムテスト |
システム全体としての動作を確認 |
|
受け入れテスト |
ユーザー要求を満たしているかを確認 |
これらはいずれも「機能が正しく動作するか」を見るテストであり、ソフトウェアの“土台”を支える重要な工程です。
🔸 非機能テスト(Non-Functional Testing)とは?
一方、非機能テストは「システムがどのように動作するか(How the system works)」を検証します。
つまり、ソフトウェアの**品質特性(Quality Characteristics)**に焦点を当てたテストです。
非機能テストの代表例
|
テストタイプ |
目的 |
|---|---|
|
パフォーマンステスト |
同時アクセス時の応答速度や負荷耐性を確認 |
|
セキュリティテスト |
情報漏えいや不正アクセス防止の確認 |
|
ユーザビリティテスト |
操作性・使いやすさを評価 |
|
アクセシビリティテスト |
色覚・視覚に配慮された設計を確認 |
|
移植性テスト(ポータビリティ) |
異なる環境やOSで動作するかを検証 |
|
信頼性テスト |
長時間稼働でも安定しているかを確認 |
これらは「必ずしも全てのシステムで必須」ではありませんが、品質を高める上で非常に重要な要素です。
非機能テストは別名 「品質特性テスト(Quality Characteristics Testing)」 とも呼ばれます。
💡 機能テストと非機能テストの違いまとめ
|
比較項目 |
機能テスト(Functional) |
非機能テスト(Non-Functional) |
|---|---|---|
|
目的 |
システムが“何をするか” |
システムが“どのように動くか” |
|
焦点 |
機能要件(仕様通り動作) |
品質特性(性能・使いやすさなど) |
|
実施例 |
単体・結合・システム・受け入れテスト |
性能・セキュリティ・ユーザビリティなど |
|
成果物 |
機能的に動作するシステム |
高品質で信頼性の高いシステム |
✅ まとめ
-
機能テストは「基本機能が正しく動作するか」を検証するテスト。
-
非機能テストは「動作の品質や性能を確認するテスト」。
-
両方をバランスよく行うことで、ユーザー満足度の高い製品を実現できます。
ISTQB Foundation試験では、定義や違いの理解が問われることが多いので、
「What(何をする)=機能テスト/How(どう動く)=非機能テスト」
と覚えておくと整理しやすいでしょう。



コメント