ホワイトペーパー:品質の「可視化」で戦略的なテストリソース配分を実施 -05-

国際的なソフトウェア品質の定義


国際的なソフトウェアの品質の定義として有名なものにISO/IEC9126がある。
この規格では、図4にあるように4つのソフトウェアの品質の種類を定義している。
一言でソフトウェアの品質といっても、利用者にとっての品質と開発者にとっての品質とでは大きく異なるであろう。また、評価方法に関してもソフトウェアをテストして評価する場合もあれば、ソースコードレビューなどで評価する場合もある。「何を対象にして、どのような方法で品質を評価するか」ということを品質の種類として定義しているのである。
品質の種類の中で、最も分かりやすいであろう利用者の品質から説明すると、利用者の品質とは最終的にでき上がったものを利用する人にとっての品質である。当然、この品質が最も重要な品質となる。この品質は不具合があるか否かといった視点ではなく、利用者のニーズを満たしているか否かという視点での品質である。
利用時の品質は、利用状況に応じて異なるとされている。これは、ある状況で利用するにはニーズを満たしているが、別の状況で利用する場合にはニーズを満たさないといった状況があるかも知れないということを指している。
利用者の品質を評価する方法としては、利用者アンケートなどになる。利用者の品質の品質特性として図5にあるように以下の4つが定義されている。

  • 有効性
  • 生産性
  • 安全性
  • 満足性

利用時の品質に影響を与える品質が「外部品質」である。
外部品質とはソフトウェアを試作機やエミュレータなどで実行しテストした結果である。一般的に品質と言われるものに最も近い。
外部品質がソフトウェアを実行して得られる結果であるのに対して、「内部品質」とはソースコードそのものの品質である。ソースコードを実際に見て評価計測する。
外部設計を設計品質、内部設計をプログラム品質という言葉に置き換えると分かりやすいかもしれない。
また、図5にあるように外部品質、内部品質ともに同じ品質特性が定義されている。最後のプロセス品質とはソフトウェアを作り上げる手順や作り方である。プロセス品質が高ければ、高い内部品質が期待できる。
ソフトウェアの品質というと、バグが少ないこと(ここでは信頼性)ばかりが注目されがちであるが、バグ以外にもこれだけの特性が挙げられることをまず確認しておきたい。
たとえば「機能性」という品質特性について、ある機能が正確に動作するか否かという「正確性」という副特性があることは、多くの人が想定できるだろう。しかしここでは他にも「合目的性」という利用者がソフトウェアを利用する目的に対して必要な機能の集合が提供できているか、「標準適合性」という関連する規格や規約、法律、法規などを遵守しているかという品質も副特性として定義されている。こういった品質定義を知ることはソフトウェア開発の品質向上のための一歩だ。体系的にソフトウェアの品質を理解することは非常に重要である。
ただし、品質の規格や定義への理解が即、品質向上の施策につながるわけではない。それどころかコスト削減、短納期化が求められている現状において、この品質定義に従ってテストやレビューを実施していたら、コスト、納期共に超過してしまうのである。こういった品質定義を学び、分厚い書籍をめくってみても「理解はしたが、だからといって何も変わらなかった」ということになる。体系的なソフトウェア品質定義を知るだけでは結局、リリースまでに与えられた時間や開発者の少なさを確認するだけに終わってしまうのである。品質の定義や規格はフレームワークであり、これに従い全てのテストを実施すべきというものではない。これは、あくまで品質のフレームワークなのである。
納期を延ばすこともできない、投下人数を増やすこともできない状況の中で品質を向上させるためには、いかに効率的にテストを実施できるかでしかない。本当に重要なのは、こういった品質定義を理解した後、何か品質向上のアクションを起こせるかどうかだ。
本稿では、ISO/IEC9126品質規格を活用したソフトウェア品質改善施策の一端を紹介するので参考にしていただければと思う。

図4:ISO/IEC9126で規定されているソフトウェア品質の種類

図4:ISO/IEC9126で規定されているソフトウェア品質の種類
出典:IS X 0129-1:2003 より作成

図5:ISO/IEC9126で規定されている品質の種類と品質モデル

図5:ISO/IEC9126で規定されている品質の種類と品質モデル

>> -06- ソフトウェアテストの戦略的リソース配分
pdfPDFファイルをダウンロードしてまとめて読む【ダウンロード申込】

─ Index ─

-01- はじめに
-02- ソフトウェアの不具合が企業の存続に関わる大問題に発展
-03- 製品開発費の4割超をソフトウェア開発費が占める
-04- 品質の確保を阻む開発現場の現状
-05- 国際的なソフトウェア品質の定義
-06- ソフトウェアテストの戦略的リソース配分
-07- STEP1 開発している製品の製品戦略や製品特性を元に目指すべき品質(To Be)を定義する
-08- STEP2 現在のテスト項目や工数から現状の品質(As Is)を可視化する
-09- STEP3 目指すべき品質と現状の品質のGAP からテスト項目やリソース配分を検討する
-10- まとめ

公開資料・出版物のご案内