WRブログ

非機能テストについて

テストにはそれぞれ目的があり、その目的によっておこなうテストの種類は異なります。
目的によっては、ソフトウェアの機能要件をテストすることもあれば、非機能要件をテストすることもあります。
ここでは、「非機能テスト」について解説します。
■非機能テストとは

hikinou_test

非機能テストとは、その言葉の通り「機能」以外を検証するテストのことを指します。
つまり、非機能とは、「どのように動作するか」であり「何をするのか」ではありません。
システムの機能に関係ない信頼性や信用性などの特性をテストすることを指します。

■非機能の表現
テストに使用する「非機能」を表現するためには、まず計測可能な項目を定める必要があります。
このとき、機能性、信頼性、使用性、効率性、保守性、移植性の、6つのソフトウェア品質特性をもとに考えると分かりやすくなります。

また、非機能テストは、ソフトウェアの機能以外の全てが対象であるため、多くのテストタイプがあります。

・性能テスト
ソフトウェアの処理時間などのパフォーマンスを測定するテスト。

・ロードテスト
ソフトウェアを、様々な状況で動作させて、期待どおりの結果を返すか確かめるテスト。

・ストレステスト
ソフトウェアが要件で定義される限界、もしくはそれ以上の負荷を与えて動作を確かめるテスト。

・ユーザビリティテスト
ソフトウェアが、ユーザーにとって理解されやすく、使いやすく、魅力的であるかどうかを確かめるテスト。

・保守性テスト
ソフトウェアに欠陥があった場合の修正のしやすさや、新しい機能の追加しやすさなどを確かめるテスト。

・信頼性テスト
ソフトウェアが要件で決めた回数や、期間や、条件で稼動できるかを確かめるテスト。

・移植性テスト
将来的に、ソフトウェアを別なハードウェアや、環境に移すことになった際の移植のしやすさを確かめるテスト。

■非機能テストの対象範囲
一般的に、非機能テストはシステムテストレベル、受け入れテストレベルで実施されることが多いが、単体テスト、結合テストでも用いられることがあります。

■非機能テストのモデル
非機能テストでは、ソフトウェアの性能を定義した「パフォーマンスモデル」、ユーザーの理解しやすさ、使いやすさを定義した「ユーザビリティモデル」、
外部からの攻撃などに対する強さを定義した「セキュリテイ脅威モデル」などのソフトウェアモデルを用います。
■非機能テストで使われる技法
非機能テストは、主にソフトウェアの外部動作を検証するため、ブラックボックステストの技法を使います。

代表的なものに、有効同値(正常処理ができる値)と、無効同値(エラーとなることが期待される値)を使って、
それぞれ正常処理とエラー処理をテストする『同値分割法』や、有効同値と無効同値を組み合わせるなどして、処理と処理の境界となる値(境界値)をテストする『境界値分析』があります。

★まとめ
●非機能とは、そのソフトウェアが「どのように動作するか」を表現したもの
●非機能テストの範囲は、ソフトウェアの持つ機能以外すべて
●非機能テストには、ブラックボックステストが用いられる

ここまで、ソフトウェアの非機能や、非機能テストに用いられるテストタイプなどについて解説してきました。
非機能とは逆に、そのソフトウェアが「何をするのか」を検証する「機能テスト」があります。

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