ソフトウェア品質特性
ソフトウェア品質特性は、品質を標準化して一定のレベルを保つために定められた主要なカテゴリです。
ソフトウェア品質特性では、ソフトウェアが特定の要件を満たしてユーザの期待に応えられているかを測る指標となります。
ソフトウェア品質特性のテスト
ソフトウェア品質特性でテストアナリストが対応するものは前述していますがISO/IEC 25010で定義している品質特性と副特性は以下になります。
機能適合性
機能完全性、機能正確性、機能適切性
性能効率性
時間効率性、資源効率性、容量満足性
互換性
共存性、相互運用性
使用性
適切度認識性、習得性、運用操作性、ユーザーエラー防止性、ユーザーインターフェース快美性、アクセシビリティ
信頼性
成熟性、可用性、障害許容性、回復性
セキュリティ
機密性、インテグリティ、否認防止性、責任追跡性、真正性
保守性
モジュール性、再利用性、解析性、修正性、試験性
移植性
適応性、設置性、置換性
テストアナリストは、テストタイプの機能テストがメイン業務になります。
機能テストは品質特性の機能適合性になりますが、非機能テストの使用性、互換性、移植性もテストアナリストは対応します。
移植性は、テクニカルテストアナリストも対応します。
テストアナリストが実施する品質特性と副特性についての詳細を以下に記載していきます。
機能適合性
要件で定義された機能が仕様通りに適合しているかを評価します。
テストアナリストは、テストベースを分析・設計してドメイン知識や適切なテスト技法を使用して実装します。
機能完全性
実装した機能が要件で定義した機能を網羅しているか評価します。
テストベースと実装した機能のトレーサビリティを行い、カバレッジ(網羅性)を判定します。
指定されたタスクとユーザーの目標がカバーされているかです。
テストアナリストは、プロジェクトで変化するテストベースや機能を追従し、トレーサビリティを維持します。
トレーサビリティには、垂直トレーサビリティと水平トレーサビリティがあります。
-
垂直トレーサビリティ
各ドキュメントの階層をトップダウンまたはボトムアップでトレース
-
水平トレーサビリティ
テスト条件やテストケースなどから各ドキュメントの要素をトレース
機能完全性のテスト例を次に記載します。
- ログイン機能:ユーザ名とパスワードを入力してログインできること
- 商品検索機能:商品名を入力して商品を検索できること
- カードに追加する機能:商品を選択してカートに追加できること
機能正確性
要件で定義された機能が正確に実行されて期待通りの結果になるか評価します。
暗黙の要件に準拠しているかも確認します。
すべてのテストレベルで実施します。
機能正確性のテスト例を次に記載します。
- 税金計算:税込価格の商品から税金を割戻した計算が正しいこと
- 在庫の変動:商品販売時や入出荷時に在庫数が正しいこと
機能適切性
要件で定義された機能が要求された機能を満たしているか評価します。
ユーザストーリやユースケースなどのテストベース通りに動作するか確認します。
結合テストの後半またはシステムテストで実施します。
機能適切のテスト例を次に記載します。
- シナリオテスト:商品を選択してから購入するまでの一連の処理が行えること
互換性
ソフトウェアが他のシステムやソフトウェアとどれだけうまく連携できるか評価します。
相互運用性
システム間のやり取りが効率的で正しく機能として動作するかを評価します。
テストベースは、インターフェース仕様書や通信規格などのコンポーネントとソフトウェアがデータのやり取りをするインターフェース仕様になります。
相互運用性のテストは、環境(ハードウェア・ミドルウェア・ソフトウェアなど)が重要で。
コンポーネント統合テスト、システム統合テスト、システムテストで実施します。
相互運用性が高いソフトウェアは、大きな変更を加えても、非機能的な動作に大きな影響を与えることはなく、他の多くのシステムと統合できます。
テストアナリストは、相互運用性のテストで以下が重要になります。
- COTS(市販のソフトウェア)
- システムオブシステム(複数の独立したソフトウェア連携して動作するソフトウェア群)
- IoT(もののインターネット)
- 連携が必要なWebサービス
相互運用性のテスト例を次に記載します。
- 異なるシステム間のインターフェースによる送受信が行えること
- 接続したハードウェアの制御(印刷、温度取得など)が行えること
- 外部Webサービスとの連携が行えること
使用性
使用性は、ユーザーがソフトウェアを効率的に使用できるか評価します。
テストアナリストは、使用するペルソナ(年齢、性別などの属性を想定した使用者)やユーザのニーズを理解してそれらに影響を与えないかをテストの対象とします。
すべてのテストレベルで適用されます。 使用性の一部は状況に応じて、専門にテストするグループに依頼する場合があります。
テストアナリストは、使用性・ユーザエクスペリエンス・アクセシビリティの側面でテスト分析、設計する必要があります。
-
使用性
使用するユーザの操作のしやすさ
-
ユーザエクスペリエンス(UX)
使用するユーザーの体感(ブランドイメージ、分かりやすさ、使いやすさ、魅力などの満足度)
-
アクセシビリティ
多様なユーザ(障害を持つ方、文化の違い、年齢、技術的スキルの違いなど)への配慮
関連する標準や法律を考慮(WCAG、障害者差別禁止法、2010年平等法、第508条など)
使用性評価
使用性テスト、使用性レビュー、使用性の調査およびアンケートから使用性を評価していきます。
-
使用性テスト
ユーザーがシステムを使用して特定のゴールに到達できるかを評価して、有効性、効率性、満足性を測定
-
使用性レビュー
インスペクションなどのレビューやヒューリスティック評価を使用して使用性の問題を認識
-
使用性の調査およびアンケート
調査やアンケートを実施して、ユーザーの振る舞いやフィードバックを収集
調査方法には、ガイドラインやSUMIやWAMMIなどの標準的な調査方法があります。
使用性のテスト例を次に記載します。
- 商品を検索したときに目的の商品が見つけやすいこと
- 商品を購入するときにスムーズに購入できること
使用性ヒューリスティック評価法
ヒューリスティック評価法は、ユーザビリティの専門家が経験則に基づいてUI/UXを評価する手法です。
代表的な評価項目として、ニールセンの10原則があります。
「システムの状態の可視化」「実世界とシステムの一致」「エラーの防止」などの評価項目があります。
使用性レビューのチェックリスト
使用性レビューのチェックリストは、ソフトウェアやサービスの使いやすさを評価するためのガイドラインです。
チェックリストには、「機能を定義している。」「 エラーメッセージを定義している。」「ヘルプを利用できる。」があります。
使用性ガイドライン
使用性ガイドラインは、特定の製品やサービスの使用方法や最適な利用方法のガイドラインです。
例えば、医薬品の最適使用推進ガイドラインでは、患者や医療機関が医薬品を適切に使用するための要件や留意事項が記載されています。
WAMMI(Website Analysis and MeasurMent Inventory)
WAMMIとは、ウェブサイトのユーザーエクスペリエンスを評価するための標準的なアンケートです。
WAMMIは、ウェブサイトの使いやすさやユーザーの反応を測定し、ウェブサイトの改善に役立てる仕組みです。
測定には、魅力、操作性、効率、有用性、学習可能性、ユーザビリティの6つがあります。
「遅くないか?」「分かりやすいか?」「画面は移動しやすいか?」「目的にたどり着いたか?」などの質問があります。
SUMI(ソフトウェア使用性測定一覧表)
SUMIとは、ソフトウェアの使用性を評価するための標準的なアンケートで、50あります。
SUMIは、ユーザの視点でソフトウェアの品質を測定して改善が行える仕組みです。
アンケートには、入力後の反応が遅いや他の方へすすめられるかなどがあります。
「レスポンスは遅くないか?」「人に薦めれるか?」「支持とプロンプトは役にたつか?」「ソフトウェアが予期せず停止しないか?」などのアンケートがあります。
ユーザエクスペリエンスのテスト例を次に記載します。
- ナビゲーションメニューを表示したときに迷わずに目的のページに遷移すること
- フォーム入力で入力が必須な項目は、必須なことが分かること
アクセシビリティのテスト例を次に記載します。
- 表示されているテキストを音声認識してユーザが正しく理解できること
- イメージが表示されないときに代替テキストが正しく表示されること
移植性
ソフトウェアが異なる環境でどれだけ容易に使用できるか評価します。
各環境でのソフトウェアのインストールや再インストール、既存環境から移行が行えるかを確認します。
設置性
設置性は、インストーラやインストールウィザードなどのテストです。
インストーラやインストールウィザードなどの使用性も含まれます。
設置性のテスト例を次に記載します。
-
ソフトウェアがインストールできること
※必要なファイルが適正配置されること -
ソフトウェアがアンインストールできること
※不要なファイルが削除されること - インストール中にエラーが発生した場合にエラーから何をすればいいか判断できること
環境適応性
環境適応性とは、新しい環境に新設または既存環境から新しい環境に移行した場合にソフトウェアが正しく動作するかを評価します。
単に環境での動作の確認だけでなく、事前に定義した手順を確認する必要があります。
以下の流れで確認していきます。
- 環境の識別
- 環境のセットアップ手順を設計
- 環境で実行できるものを準備
- 実装で準備したものを実行
環境適応性のテスト例を次に記載します。
- ソフトウェアが複数のOS(Windows,iOS,Android)で動作すること
- 新しい環境に移行後既存環境と同じように動作すること
置換性
置換性とは、ソフトウェアやハードウェアなどを他のものに置き換えたときに正しく動作するかを評価します。
既存のハードウェアが生産中止になり、互換性のある新しいハードウェアになった場合の置き換えやソフトウェアのアップグレードがあります。
置換性のテスト例を次に記載します。
- 互換性のある新しいハードウェアでソフトウェアが正しく動作すること