COLUMN
コラム
Column 44

非機能テストについて

機能要件を満たすことは当たり前ですが、最近はユーザー満足度を高める為、非機能テストを行って品質の確保することが重要になってきています。「非機能テスト」についてご紹介します。

1. 非機能テストとは

非機能テストとはそのままの意味で、「機能以外のテスト」のことです。
例えば、ソフトウェア自体の使いやすさ、負荷をかけた場合の動作、ボタンを押下してから処理が実行されるまでの時間などを確認します。

①非機能テストと機能テスト

テストの目的と確認する品質特性により、「機能テスト」と「非機能テスト」に分類されます。
「機能テスト」と「非機能テスト」には、以下のような違いがあります。

システム/ソフトウェア 品質特性例
機能テスト 何をするか 完全性、正確性
非機能テスト どのようにうまく振る舞うか 信頼性、性能効率性、セキュリティ、互換性、使用性

それぞれの特徴を理解することが大事になってきます。
例えば検索機能の場合、機能テストでは「登録したデータを指定条件で検索して、その結果を表示する」ことを確認するのに対し、非機能テストでは「検索処理を実行してから、検索結果を画面に表示するまでの応答時間」を確認します。

②非機能テストの種類

非機能テストには、以下のような代表的なものがあります。

・性能テスト
ソフトウェアの処理時間について、規定秒数以内に実行されるかどうかを確認します。
例:会員情報登録処理が登録ボタンを押下してから、3秒以内に完了すること

・負荷テスト
大量のアクセスによって負荷をかけて、限界点に到達するまでのソフトウェアの動作を確認します。過負荷状態を作り出すのが難しい為、”Jmeter”などの負荷テストツールを使用して実施することが多い。
例:システムに対して複数のユーザーが一度にアクセスした場合の挙動を確認

・ユーザビリティテスト
ソフトウェアを実際にユーザーに使ってもらい、使用しやすさや操作の覚えやすさについて確認します。
例:画面内のボタンや文字が見やすいこと、マニュアルがなくてもすぐに覚えられる単純な操作であること

・セキュリティテスト
不正アクセスなどを受けた際に、ソフトウェアの脆弱性がないかどうかを確認します。
例:テストツールを使用して仮想のサイバー攻撃を行い、セキュリティ機能が有効であることを確認

2. 非機能要求グレード

非機能要求グレードとは、非機能要求についてユーザーと開発側に認識の齟齬がないように、非機能要件の項目を一覧化し、各項目の要求をIPAによりレベル化(0~5の6段階)したものです。

非機能要求グレードは大きく6つに分類されています。

・可用性
システムを継続して稼働し続けられるかを表す要求。
要求例:障害発生時の対策として、機器の冗長化やバックアップセンターの設置が行われていること

・性能・拡張性
システム性能と将来のシステム拡張を表す要求。
性能要求例:システムの性能目標値が設定されていること
拡張要求例:将来的な処理増加を想定し、CPU・メモリなどの拡張が可能であること

・運用・保守性
システムの運用と保守のサービスに関する要求。
運用要求例:データのバックアップが定期的に実行されていること
保守要求例:パッチリリース時の適用方針、適用タイミングが確立されていること

・移行性
現システム資産を新システムに移行させる要求。
要求例:移行スケジュールが設定されていること

・セキュリティ
構築する情報システムの安全性確保に関する要求。
要求例:機密性のあるデータに対して、暗号化が行われていること

・システム環境・エコロジー
システムの設置環境やエコロジーに関する要求。
システム環境要求例:機器に対して耐震/免震対策が行われていること
エコロジー要求例:環境に配慮した対策が行われていること

3. まとめ

非機能テストの内容と非機能要求グレード についてご紹介しました。
非機能要件は普段私達が使用するシステムやソフトウェアで体感しています。例えば、大量のユーザーが同時にアクセスした影響で、ライブ動画のローディングで再生開始するまでに時間がかかることもあります。
身近で体感しているからこそ、非機能テストの重要性が一段と理解できるのではないでしょうか。

ページトップへ戻る