WRブログ

機能テストについて

あらゆる工程でおこなわれている、さまざまなテスト。
その目的ごとに分けたものを「テストタイプ」といいますが、今回はその中でも「機能テスト」について解説していきます。
■そもそも「機能」とは
image_00801

ソフトウェア開発において「機能」とは、そのソフトウェアが「何をするか」であり、「どのように動作するのか」ではありません。
そのため、機能テストでは、テスト対象が求められている仕様(目的)を満たしているかどうかを検証します。

また、機能テストは、単体テスト、結合テストが終わってから、性能テストや負荷テストなどとともに、システムテストの一つとして実施されることが多くあります。
■機能の表現方法
機能が実際に動くのはプログラム上ですが、機能を表現したものにはドキュメント上のものもあげられます。
たとえば、要件定義書や、ユースケース、機能仕様書、またはドキュメント化されていないものも対象になります。
ドキュメント化されていないものは、テスト担当者のシステムに対する理解の深さや、経験の豊富さが重要になってきます。
■機能テストの適用範囲
「機能」はシステム、各サブシステム、個々のプログラムなど、さまざまな階層で表現されています。
つまり、機能テストもそれぞれのレベルで実施する必要があります。
システムの仕様レベルで(ユーザーに提供する機能をベースに)おこなう場合はシステムテストレベルになり、個々のプログラムの仕様書レベルならば、単体テストレベルの機能テストになります。
■機能テストのモデル
機能テストでは、開発の流れを定義した「プロセスフローモデル」、外部からの入力や、内部からのプログラムに応じて、
動作を変えるシステムを表現した「状態遷移モデル」、その他に、自然言語で記述した仕様などの「ソフトウェアモデル」を用います。
■機能テストで使われるテスト技法
機能テストは、ソフトウェアの外部動作を検証するため、ブラックボックステストに分類される、仕様書ベースのテスト技法を用います。

代表的なものに、有効同値(正常処理ができる値)と、無効同値(エラーとなることが期待される値)を使って、
それぞれ正常処理とエラー処理をテストする『同値分割法』や、有効同値と無効同値を組み合わせるなどして、
処理と処理の境界となる値(境界値)をテストする『境界値分析』や、
入力データの組み合わせに対する動作をまとめた表を使っておこなう『デシジョンテーブルテスト』などがあります。
★まとめ
●機能とは、そのソフトウェアが「何をするか」を表現したもの
●機能テストの範囲は、仕様書からプログラムまでさまざま
●機能テストはブラックボックステストでおこなわれることが多い

ここまで、ソフトウェアが持つ機能と、その機能のテスト方法について解説してきました。
機能テストとは逆に、そのソフトウェアが「どのように動作するのか」を検証する「非機能テスト」もあります。


【参考文献】:
『ソフトウェアテスト教科書 JSTQB Foundation 第3版』


【無料ダウンロード】ソフトウェア品質向上ガイドBOOK

第三者検証のスペシャリスト集団である株式会社ウェブレッジが、特に上流工程でのソフトウェア品質向上の手法に関してまとめた資料を無料でご提供しております。

ソフトウェア品質向上ガイドブック

ソフトウェア品質向上ガイドブック

ソフトウェア品質向上ガイドブック

Scroll Up