【品質管理』フォーマルインスペクションのメモ

★フォーマルインスペクション

ツール、テスト技法だけでは欠陥は完全に検出できない
→人間の目視による知的協業活動が最も効果的である
1.典型的なテストよりも欠陥検出効果が高い
2.欠陥混入の「直後に」欠陥検出することがコスト細小化、スケージュール短縮に効果がある(バグは毎日、うまれる。欠陥の潜伏期間を減らすの大切)
3.インスペクション中の協力体制、チームワークがインスペクションの有用性・優位性、効果の決めてになる
4.7つのStep(開始・終了基準、計画、概観、準備、会議、フォローアップ、再作業)
5.4つのRole(モデレーター、記述者:オーナー、読者、テスター)
□ソフトウェアの「指標」
・完全性(Completeness):ソースからの追跡可能性で保証される
・正確性(Correctness):機能仕様の明確さ。信頼線や可用性につながる
・スタイル(Style):記述の整合性
・開発標準・ルール(Rules of Constructions):アーキテクチャに依存。ガイドなどで信頼性と可用性につなげる
・観点の数(Multiple Views):ソフトウェアに反映されるべき多様な観点と視点
□インスペクション
目的
:欠陥の検出
     ∟致命的欠陥(Operational defect)
     ∟作業指示の欠陥(保全性、明確さ、欠陥)
     ∟欠陥の検証
     ∟組織/プロセスによる欠陥
メンバー構成
:4名が適切とされている
     1.モデレーター:MTGの進行役。利益の衝突を防ぐため2との兼任はNG。
     2.記述者(オーナー):質問に答える。reworkを受け入れる
     3.読者:記述者(オーナー)が作ったものを解釈して説明する
     4.テスター(検証者)
シナリオのベース
     ∟欠陥ベース
     ∟機能ベース
     ∟観点ベース:観点=ユーザビリティ、有用性、セキュリティ、パフォーマンス、信頼性、アルゴリズム、機能性
プロセスのオーバービュー
成果物→「開始基準」→計画→概観→準備→会議→フォローアップ→「完了基準」
                                                                              ⇄再作業
     ※開始基準:成果物が具体的であること。必須オプションの基準が確立していること
     ※チェックリスト、テンプレート、ガイド、バグパターンリストなど
     ※会議では「技術的な課題」にこだわる。→何が問題か?→技術的にこだわる。注意ベキを払う相手がいある
          →どのように修正するかではなく、「何が問題か」
          :Java、Oracle
インスペクターの職責
・すべてのロールがインスペクター
・入念に準備すること
・関連する中間成果物もレビューすること
・解決策などではなく欠陥の識別に集中すること
定量的品質管理
     :バグ数、1ページあたりの指摘数など
     →バグの数より種類を見るべし
・どのレビュー形式が最適化
     ∟  フォーマル・コスト高          Team Review
                                                     Walkthrough:そっと息をふきかえるに違いない
                                                     Pari Programing
                                                     Peer desk check/password
                                                     Ad hok Review / Consulting)
品質レビューの落とし穴
・仕様書にないもの/ソースにはないものはレビュー対象ではない
・インスペクション後のバグは検出が遅れる
・先入観との戦い
・集中力・モチベーション
・政治的圧力・developerとの関係
□QIの実施
原則
①成果物を詳細から補足しない。全体からトップダウンでQIする
②先ず形式/書式/標準化等をチェック・その後で内容を確認
③7つの品質基準に基づく指摘(推測、憶測、経験上の〜の挨拶
④事実に基づくインスペクション
⑤欠陥検出に徹底する(QI is not Debugger、is ,QI is Defect Sensor )
⑥欠陥を憎んで、人を憎まず
7つの品質基準
①統一性:一つの毒面とに矛盾がでない
②整合性:ドキュメント間に矛盾がない
③理解の容易性:全体の体系が明確である。作業以外もわかる
④追跡可能性:上流と下流
⑤保守性:変革しやすいか、しにくいか。それを観る
⑥安全性:確定度
⑦バランス:設計とのトレードオフの考慮の程度(使いやすさ)、パフォーマンス、開発しやすさ)
品質インスペクションのこつ