ソフトウェアの品質を学びまくる

ソフトウェアの品質、ソフトウェアテストなどについて学んだことを記録するブログです。

『情報処理』の2014年1月号の特集は、「システムとソフトウェアの品質」

 あけましておめでとうございます。
 年末にしょうもない読書感想文を三本も書いたせいで、ブログのトップにアクセスすると、ソフトウェアの話がまったく出てこないというひどいありさまでしたので、少し本筋に戻ろうと思います。

『情報処理』を読んでみた

 ということで、年末年始に読んでみました、『情報処理』の特集。テーマは、「品質要求」「品質評価」です。
 一応このブログも、品質を学ぶことになっているのですが、品質ってよくわからないしモヤモヤするので、現物に触れることのできるテストレビューの方に興味が偏ってしまいます。ですが近年、品質の要求・評価についての体系がまとまりつつあるようなのです。
 わたしはふだん、SQiPシンポジウムJaSSTで出てくるような、現場に近くて具体的な資料を読むことが多いので、この特集のような「概観」的な話は、断片的な知識の整理になります。もう少し正確に言うと、抽象度が高いので、すごく眠くなりますね!
 よって必ずしも精読できていないのですが、簡単に紹介すると以下のような感じです。
1. ICT応用システムおよびソフトウェア(S&S)の品質向上のための課題と取り組み
 技術の進歩によるS&Sの進歩、ニーズの変化。
 JIS X 25010に基づく品質の定義と、品質向上のための戦略についての一般論。
2. システムおよびソフトウェアの品質基準の体系化
 ISO/IEC 25000 SQuaREにおける品質基準の体系化の経緯。
 SQuaRE(Software product Quality Requirements and Evaluation)で定義される品質モデルと、モデルと品質測定の関係。
 モデルでは、評価対象として、ソフトウェア・ソフトウェアシステム・データ・サービスの4つを定義しています。わたしは、ソフトウェアの品質特性しか考えたことがありませんでした。
 なお、データの品質モデルについては最近、goyoさんが記事を書いています。またついでにいうと、SQuaREにはない「テストの品質モデル」についても検討をされています。
3. システムおよびソフトウェア品質向上のための品質測定技術
 外部品質特性、内部品質特性、利用時の品質特性を、それぞれどのように測定するか。
 ソフトウェア機能のテストよりは、それ以外の非機能要件(たとえば可用性、ユーザビリティなど)の測定例について解説。
4. システムおよびソフトウェアの品質評価─SQuaRE適用の実際と今後の展開─
 SQuaREに基づく、品質要求定義の行い方。要求定義で検討すべき事柄。テスト計画・分析・設計・実装の各フェーズにおける、品質要求の関わり。
5. ソフトウェア非機能要求の定義─品質の良いソフトウェアを作るために─
 ソフトウェアに固有な特徴を、「機能面の特徴」と「品質面の特徴」に分け、後者が顧客満足に影響を与える事例を紹介。
 品質要求の識別について、品質モデルに基づくトップダウンと、利用者のフィードバックを受けながら定めるボトムアップの二つのアプローチ。
 さて、これまでの説明を読んで「品質要求事項と評価は大変で、とても現場ではやりきれない」という印象を持たれていないだろうか。そうだとしたら、それは大いなる誤解であると声を大にして言いたい。本稿の内容は、ソフトウェア開発の現場でこれまでに積み重ねられてきた経験を、再利用可能な知識として整理したものに過ぎない。

 本当ですか、野中先生!!

6. 国際規格に基づくソフトウェア品質認証制度の構築
 ソフトウェア品質の認証について。自社独自の基準ではこの先ダメ。品質の説明については、国際規格ISO/SIEX 25051の他、IPAからも「品質説明力強化のための制度構築ガイドライン」が発行されている。
 韓国のgood software認証制度では、認証機関がテストまで行うことも。
7. 利用品質
 ソフトウェアの品質を「製品品質」と「利用時の品質」に区分し、後者について説明。後者に属する「満足性」をいう属性から、UX(User eXperience)、HCD(Human Centered Design)などに言及。
 利用品質を管理するために、各ステークホルダーの各フェーズにおける活動をフレームワーク化。
8. 品質に対応したプロセスデザイン
 品質特性ごとの要求事項と、それらの重要度・リスクを分析し、その大きさに基づいて開発プロセスのテーラリングを行う6ステップ。以下の3つの原則に従いながら、開発の各工程で、機能/シナリオごとにどのような施策を取るかを決定する。
  1. 運用で重要な品質の達成を重視する
  2. リワークによって開発に大きな影響を与える欠陥を早期に検出する
  3. 対象範囲が狭いところで網羅度を上げる
9. ソフトウェア品質会計における品質要求と評価
 NECグループ全体で標準的な品質管理手法として適用されている「ソフトウェア品質会計」と、そこで整備されている技法の概要。品質会計による、品質要求定義と評価の方法。
 ウォーターフォールを前提に規定された品質会計の、アジャイル開発への適用。
10. ソフトウェア品質の知識体系
 ソフトウェアに関する知識体系(BOK)の紹介。SWEBOKSQuBOKがどのような立場で何を記載しているかについて詳説。ソフトウェア品質が「エンジニアリング」であるために。

まとめ

 ざっとこんな感じですかね! 特に興味がわいたのは、8と9です。これは自分の仕事にフィードバックできそう。とにかく、「SQuaREについて勉強しないとまずい」というのと、「品質会計の本は買ってみようかなー」という感想です。
 SQuaREはコチラでもっと詳しい説明がされています。
 また、品質会計の本はコチラ。
ソフトウェア品質会計―NECの高品質ソフトウェア開発を支える品質保証技術
 
 なおこの特集以外にも、面白い記事があるのですが、この号で一番驚いたのは、水戸黄門で有名な由美かおるさんが、「正四面体タイル定理」という数学の定理を使った作品を発表している(PDF)というお話。もう品質を全然関係ありませんけど、何かいろいろおもしろいです。
 では、今年もこの低品質ブログをよろしくお願いいたします。