1 of 26

ソフトウェア品質の概念の遷移と�品質モデル

Company LOGO

松木 晋祐

2 of 26

  • 松木 晋祐 @snsk
    • しんす(く || け)さん とよく呼ばれてます
  • 所属しているコミュニティ
    • 株式会社ACCESS
    • NPO法人ASTER
      • JaSST東京実行委員会/ASTER ToolWG
      • テスト自動化研究会
    • 日本科学技術連盟
      • JSTQB FL公認コース/品質保証部長の会
    • Androidテスト部
    • アジャイルプロセス協議会テスト・ レビューWGで思いつきでノージャンルの勉強会主催
      • Android開発入門/Selenium入門/Web技術概論講座 等
  • 何の人?
    • ひたすらウェブブラウザやってた関係でずっとウェブ
      • でも基盤技術(HTML,CSS,JS/DOM,HTTP,SSL等)しか知らない
    • 「派遣テスター」から「本部QMS開発主管」までひと通りやって、PM職を2年やって現在、本部品質保証責任者自動化LOVE!ツールNEED YOU! モノ作るのも、壊すのも好き

自己紹介

3 of 26

目次

  1. 「ソフトウェア品質」の概念とその歴史的変遷
  2. 「ソフトウェア品質モデル」の変遷
  3. 「ソフトウェア製品の品質に関する規格」 �ISO/IEC 9126 シリーズ
  4. 「ソフトウェアの品質要求と評価に関する規格」 �ISO/IEC 25000 シリーズへ

4 of 26

1.「ソフトウェア品質」の概念とその歴史的変遷

ソフトウェアを完全に停止させたり、容認できないような結果を出す欠陥が全くないこと(Capers Jones:????)

要件に対する適合(Philip B Crosby:1980)

「狭義の品質」と「広義の品質」(石川馨:1981)  狭義の品質:製品の品質� 広義の品質:仕事、サービス、情報、工程、部門、人、システム、会社の全てを含めた質

システムが本稼働するとき、どこまで真のビジネス(ユーザ)ニーズにあっているかということ(James Martin:1994)

品質は誰かにとっての価値である(G.M.Weinberg:1994)

プロダクトの特性が顧客のニーズに応えることで満足を提供する &不備(障害や誤り)から免れる(Joseph M. Juran:1998)

指定された特定の条件で利用する場合の、明示的または暗示的なニーズを満たすソフトウェア製品の能力(ISO 25000:2005)

5 of 26

1.「ソフトウェア品質」の概念とその歴史的変遷

ソフトウェアを完全に停止させたり、容認できないような結果を出す欠陥が全くないこと(Capers Jones:????)

要件に対する適合(Philip B Crosby:1980)

「狭義の品質」と「広義の品質」(石川馨:1981)  狭義の品質:製品の品質� 広義の品質:仕事、サービス、情報、工程、部門、人、システム、会社の全てを含めた質

システムが本稼働するとき、どこまで真のビジネス(ユーザ)ニーズにあっているかということ(James Martin:1994)

品質は誰かにとっての価値である(G.M.Weinberg:1994)

プロダクトの特性が顧客のニーズに応えることで満足を提供する &不備(障害や誤り)から免れる(Joseph M. Juran:1998)

指定された特定の条件で利用する場合の、明示的または暗示的なニーズを満たすソフトウェア製品の能力(ISO 25000:2005)

クラッシュ、

フリーズがなければOK

※年代不明だがおそらく70年代

6 of 26

1.「ソフトウェア品質」の概念とその歴史的変遷

ソフトウェアを完全に停止させたり、容認できないような結果を出す欠陥が全くないこと(Capers Jones:????)

要件に対する適合(Philip B Crosby:1980)

「狭義の品質」と「広義の品質」(石川馨:1981)  狭義の品質:製品の品質� 広義の品質:仕事、サービス、情報、工程、部門、人、システム、会社の全てを含めた質

システムが本稼働するとき、どこまで真のビジネス(ユーザ)ニーズにあっているかということ(James Martin:1994)

品質は誰かにとっての価値である(G.M.Weinberg:1994)

プロダクトの特性が顧客のニーズに応えることで満足を提供する &不備(障害や誤り)から免れる(Joseph M. Juran:1998)

指定された特定の条件で利用する場合の、明示的または暗示的なニーズを満たすソフトウェア製品の能力(ISO 25000:2005)

この時代から「要件」が意識されはじめる。Crosbyは工程管理の重要性を説く。ZeroDefect。CMMの基礎など。

さすがに日本は最初から定義が広い。でも進まない。

この頃既に現代の品質モデルの源流となる考え方が

生まれている。「ソフトウェア品質」という概念と

「ソフトウェア品質モデル」という概念はこの頃から

並行して育まれていく

7 of 26

1.「ソフトウェア品質」の概念とその歴史的変遷

ソフトウェアを完全に停止させたり、容認できないような結果を出す欠陥が全くないこと(Capers Jones:????)

要件に対する適合(Philip B Crosby:1980)

「狭義の品質」と「広義の品質」(石川馨:1981)  狭義の品質:製品の品質� 広義の品質:仕事、サービス、情報、工程、部門、人、システム、会社の全てを含めた質

システムが本稼働するとき、どこまで真のビジネス(ユーザ)ニーズにあっているかということ(James Martin:1994)

品質は誰かにとっての価値である(G.M.Weinberg:1994)

プロダクトの特性が顧客のニーズに応えることで満足を提供する &不備(障害や誤り)から免れる(Joseph M. Juran:1998)

指定された特定の条件で利用する場合の、明示的または暗示的なニーズを満たすソフトウェア製品の能力(ISO 25000:2005)

RADの基礎になる、開発者視点での考え方。仕様に沿っていればいい、という訳ではない

検索して最初に出る最も有名な定義。品質の相対性を大御所が明言したのは大きい。「バグゼロ=高品質」からの完全な脱却。

8 of 26

1.「ソフトウェア品質」の概念とその歴史的変遷

ソフトウェアを完全に停止させたり、容認できないような結果を出す欠陥が全くないこと(Capers Jones:????)

要件に対する適合(Philip B Crosby:1980)

「狭義の品質」と「広義の品質」(石川馨:1981)  狭義の品質:製品の品質� 広義の品質:仕事、サービス、情報、工程、部門、人、システム、会社の全てを含めた質

システムが本稼働するとき、どこまで真のビジネス(ユーザ)ニーズにあっているかということ(James Martin:1994)

品質は誰かにとっての価値である(G.M.Weinberg:1994)

プロダクトの特性が顧客のニーズに応えることで満足を提供する &不備(障害や誤り)から免れる(Joseph M. Juran:1998)

指定された特定の条件で利用する場合の、明示的または暗示的なニーズを満たすソフトウェア製品の能力(ISO 25000:2005)

特性、ニーズ、とだんだん抽象化してくる。本来は品質とコストの関係を説いた物。前者は掛ける。後者は減らす。

標準化団体によって策定された最新の抽象表現。これは既により具体的な品質モデルが存在しているから

9 of 26

つなぎ

「品質」の概念だけでは実地に落とせないから

もう少し具体的な「モデル」が必要。

これから述べるのは下記でいう前者の内容。

数学や論理システムでは理論に対しその実現となっているものをモデルという.逆にソフトウェアの世界では,現実世界の問題領域を抽象化しなんらかの記述体系で表したものをモデルという

Michael Jackson.�Software Specifications and Requirements: a lexicon of practice, principles and prejudices�Addison-Wesley, 1995.

10 of 26

2.「ソフトウェア品質モデル」の変遷

McCall’s Quality Model (1977)

11 of 26

2.「ソフトウェア品質モデル」の変遷

Boehm’s Quality Model (1978)

12 of 26

2.「ソフトウェア品質モデル」の変遷

ISO/IEC 9126 (1991)

13 of 26

2.「ソフトウェア品質モデル」の変遷

ISO/IEC 9126 (1991) - 品質特性

ISO/IEC 14598 (1999) - ソフトウェア品質評価のプロセス

ISO/IEC 9126 シリーズ 1-3 (2001) + 外部/内部/副特性

ISO/IEC 9126 シリーズ 1-4 (2004) + 利用時の品質

ISO/IEC 25000 シリーズ SQuaRE (2005)

これからの規格

ただEU圏の動きや認証団体等の動きもある。後ほど解説。

14 of 26

3.ソフトウェア製品の品質に関する規格 �ISO/IEC 9126の解説

ISO9126 ソフトウェア品質特性�の詳説とワークショップ

15 of 26

3.ソフトウェア製品の品質に関する規格 �ISO/IEC 9126の解説

6つの主特性と27の副特性

 1)ご自身の担当されているプロダクトについて、� これから説明する特性の満足を確認するために、� どのようなテストが必要か検討して記載してください� ※といっても27個は多いので、特徴的なもの7つのみ(赤字)���� 2)次に、そのテストの実現計画の有無、� 無い場合はその理由を検討してみてください。�� 「知らなかった」「やり方がわからない」「めんどくさい」全然OK。�� それぞれ、知識、プロセス、技法 で解決可能です。1段階成長。

16 of 26

3.ソフトウェア製品の品質に関する規格 �ISO/IEC 9126の解説

機能性 -目的から求められる必要な機能の実装の度合い

合目的性�-指定された作業および利用者の具体的目標に対して適切な機能の集合を提供する ソフトウェア製品の能力のこと �

正確性�-必要とされる精度で、正しい結果もしくは正しい効果、 または同意できる結果もしくは同意できる効果をもたらす�ソフトウェア製品の能力のこと。��相互運用性�-一つ以上の指定されたシステムと相互作用するソフトウェア製品の能力のこと。�

セキュリティ�-許可されていない人、またはシステムが情報またはデータを読んだり、修正したりする事ができないように(機密性)、および�許可された人、またはシステムが情報またはデータへのアクセスを拒否されないように(可用性)、�情報またはデータを保護する(完全性)ソフトウェア製品の能力のこと。 �

標準適合性

-機能性に関連する規格、規約または法律上および類似の法規上の規則を 遵守するソフトウェア製品の能力のこと。

17 of 26

3.ソフトウェア製品の品質に関する規格 �ISO/IEC 9126の解説

信頼性 -機能が正常動作し続ける度合い

成熟性�-ソフトウェアに潜在する障害の結果として生じる故障を回避する ソフトウェア製品の能力のこと。 �

障害許容性�-ソフトウェアの障害部分を実行した場合、 または仕様化されたインターフェース条件に違反が発生した場合に、 �指定された達成水準を維持するソフトウェア製品の能力のこと。 �

回復性�-故障時に、指定された達成水準を再確立し、 直接に影響を受けたデータを回復するソフトウェア製品の能力。 �

標準適合性�-信頼性に関連する規格、 規約または規則を遵守するソフトウェア製品の能力のこと。

18 of 26

3.ソフトウェア製品の品質に関する規格 �ISO/IEC 9126の解説

使用性 -分かりやすさ、使いやすさの度合い

理解性�-ソフトウェアが特定の作業に特定の利用条件で適用できるかどうか、 およびどのように利用できるかを、� 利用者が理解できるソフトウェア製品の能力のこと。  �

習得性�-ソフトウェアの適用を利用者が習得できるソフトウェア製品の能力のこと。 �

運用性�-利用者がソフトウェアの運用および運用管理を行なうことができる ソフトウェア製品の能力のこと。 �

魅力性�-利用者にとって魅力的であるためのソフトウェア製品の能力のこと。 �

標準適合性�-使用性に関連する規格、 規約または規則を遵守するソフトウェア製品の能力のこと。

19 of 26

3.ソフトウェア製品の品質に関する規格 �ISO/IEC 9126の解説

効率性 -目的達成のために使用する資源の度合い

時間効率性�-明示的な条件の下で、 ソフトウェアの機能を実行する際の適切な応答時間、処理時間、�および処理能力を提供するソフトウェア製品の能力 �

資源効率性�-明示的な条件の下で、ソフトウェアの機能を実行する際の、資源の量および資源の種類を適切に�使用するソフトウェア製品の能力 �

標準適合性�-効率性に関連する規格、 規約または規則を遵守するソフトウェア製品の能力

20 of 26

3.ソフトウェア製品の品質に関する規格 �ISO/IEC 9126の解説

保守性 -保守(改訂)作業に必要な努力の度合い

解析性�-ソフトウェアにある欠陥の診断または故障原因の追及、およびソフトウェアの修正箇所の�識別を行なうためのソフトウェア製品の能力 �

変更性�-指定された修正を行なうことができるソフトウェア製品の能力 �

安定性�-ソフトウェアの修正による、 予期せぬ影響を避けるソフトウェア製品の能力 �

試験性�-修正したソフトウェアの妥当性確認ができるソフトウェア製品の能力 �

標準適合性�-保守性に関連する規格、 規約または規則を遵守するソフトウェア製品の能力

21 of 26

3.ソフトウェア製品の品質に関する規格 �ISO/IEC 9126の解説

移植性 -別環境へ移した際そのまま動作する度合い

環境適応性�-ソフトウェアにあらかじめ用意された以外の付加的な作業または手段なしに、�指定された異なる環境にソフトウェアを適応させるための ソフトウェア製品の能力�

設置性�-指定された環境に設置するためのソフトウェア製品の能力�

共存性�-共通の資源を共有する共通の環境の中で、 他の独立したソフトウェアと共存するためのソフトウェア製品の能力�

置換性�-同じ環境で、同じ目的のために、 他の指定されたソフトウェア製品から置き換えて使用することができる�ソフトウェア製品の能力�

標準適合性�-移植性に関連する規格、 規約または規則を遵守するソフトウェア製品の能力

22 of 26

品質モデルを使ったテスト分析WS�(30min)

23 of 26

3.ソフトウェア製品の品質に関する規格 �ISO/IEC 9126の解説

本セッションを通じて自部門のテスト戦略に欠けている観点が見いだせれば幸いです。

全てやるのは不可能ですが、全体を知った上で選択的に落とすことを心がけてください。�その落とした部分がリスクです。

24 of 26

4.ソフトウェアの品質要求と評価に関する規格 ISO/IEC 25000 シリーズへ

25 of 26

4.ソフトウェアの品質要求と評価に関する規格 ISO/IEC 25000 シリーズへ

26 of 26

Q&A