ホームコラム「非機能要件」の重要性とケーススタディ。

「非機能要件」の重要性とケーススタディ。ユーザの使い勝手やセキュリティに関わる「非機能要件」を満たすための、“8つ”のテストとは?

背景

厳しい市場競争から製品の開発期間が圧縮される中、品質管理部門の多くでは開発者自身がテスト設計を行っています。テストに割けるリソースがないこと、また開発者が仕様を一番理解していることなどが理由にあげられますが、それではユーザ視点に欠けテストは往々にしてバグの発見や修正などの機能面に偏りがちとなります。結果、使い勝手や拡張性などにかかわる「非機能要件」の抽出が疎かとなり、想定外の不具合によりユーザからのクレームが生じるケースも少なくありません。

従来、ソフトウェアの品質は「機能要件」が重視されていましたが、ソフトウェアの品質特性を定めた「ISO/IEC9126」(※文末参照)をきっかけに「非機能要件」の重要性が認識されるようになっています。

現状および課題

製品の市場訴求力に直結する「非機能要件」

ユーザの使い勝手を明確化

「非機能要件」は、製品が提供する機能のうち、使いやすさや性能、信頼性、拡張性、運用性、セキュリティ等に関するものであり、製品品質を考えるうえで機能要件とともに必要不可欠な要素となります。機能要件の確保が当たり前となった現在、「非機能要件」が製品の市場優位性を左右しているといっても過言ではありません。

しかし「非機能要件」は、ユーザからはっきりとした要求があるわけではないため根拠や優先順位付けが難しく、仕様書に明記しにくいのが現状です。

たとえば、あるシステムの「電源ONから操作可能状態にいたるまでの所要時間」について。5秒がいいのか1分以内であれば問題ないのか、それはユーザの利用環境によって異なります。このような「非機能要件」を仕様として定めるためには、“実際の利用環境”から利用者が不満を持たない上限値を定める必要があります。

株式会社ヴェス(以下ヴェス)は、第三者検証専門会社としての豊富なノウハウから「非機能要件」を漏らさず仕様化・実装します。
対象製品の姉妹製品や類似製品、他社の競合製品などから抽出した「非機能要件」に対し、機能や過去の不具合、ユーザ視点をもとに根拠付け・優先順位付けを行い、仕様書を作成します。さらに仕様が確実に実装されていることを検証するため、緻密な計画の後に「非機能テスト」を実施します。

ヴェスの「非機能テスト」

ヴェスの「非機能テスト」は、前述の「ISO/IEC9126」が定義する品質特性(機能性、信頼性、使用性、効率性、保守性、移植性)をベースにカテゴライズしたもので、8項目のテストによって“非機能要件”が実際に製品に実装されているかどうかを検証します。

「非機能テスト」の項目

1.性能(パフォーマンス)テスト

性能要件に定義された効率性(時間、資源)で動作することを確認します。

2.負荷(ストレス)テスト

過負荷状態においても仕様通り動作することを確認します。

3.ボリュームテスト

テスト対象に限界レベルの最大容量データを与えても仕様通り動作することを確認します。

4.高頻度テスト

データを連続に処理させ、仕様通り動作するかを確認します。

5.累積稼働(ロード)テスト

同一、または複数の処理を繰り返し、長時間にわたって動作させ、累積稼働状態における安定性や、処理の組み合わせによる不具合が発生しないことを確認します。

6.障害対応テスト

障害が発生した場合、その影響が局所的なものに抑えられているか、または致命的なものにならないか、発生した障害を回復する手段が用意されているかなど、発生する可能性のある障害に対応できることを確認します。

7.セキュリティテスト

テスト対象が、プログラムやデータ等について規定された機密保護レベルをクリアしていることを確認します。

8.ユーザビリティテスト

テスト対象のユーザ・インターフェースについて、視認性と操作性の良否を評価します。

次頁では、この「非機能テスト」が実際に製品開発の課題を解決した、いくつかのケーススタディを紹介したいと思います。

12