技術とか戦略とか

証券レガシーシステムを8年いじってから転職した普通の文系SEによるブログ。技術のみではなく趣味の戦略考察についても。

情報処理技術者試験対策「定量的品質評価」

定量的品質評価」とは、その名の通り品質を数値で評価です。
そのことにより、品質の良し悪しを客観的に把握することが可能になり、有効な対策を打てるようになります。
 
今回の記事では、情報処理技術者試験に良く出てくる2つのモデル(信頼度成長モデル、エラー植付けモデル)と、実務で良く使う管理図について説明します。
(他にも定量的品質評価の手法はあります。「メトリクス」とかでWeb検索すれば出てくると思います。)
 
【信頼度成長モデル】
テスト工程の序盤はテスト手順確立のため発見されるバグが少なく、中盤になりテストが進むようになるとバグが順調に見つかるようになり、テスト終盤はテストの残項目が少なくなるため発見されるバグが少なくなる、というものです。
グラフにすると以下の通りです。

 
標準(類似プロジェクト)よりもテスト序盤でバグが多く出る場合は、テスト工程開始時点での品質が悪いことが予想されますので、その場合は前工程に戻っての品質強化が有効になります。
(そのまま進めても、バグでテストが順調に進捗しなくなることが予想されます)
また、その逆にテスト序盤で標準よりもバグが出ない場合は、テスト方法に問題がありバグが有効に見つけられないことが予想されますので、その場合はテスト方法の見直しが有効になります。
(そのまま進めても、次工程やリリース後にバグが残存することが予想されます)
 
【エラー植付けモデル】
意図的にバグを埋め込み、「システム全体のバグ数と埋め込んだバグ数の比率」と「検出したバグ数とそのうちの埋め込んだバグ数の比率」は等しいという前提の元、システム全体のバグ数を予想するものです。
例えば、以下の例だと、システム全体のバグ数は36と予想されます。
 
システム全体のバグ数:x
埋め込んだバグ数:12
テストで見つけたバグ数:27
テストで見つけた埋め込んだバグ数:9
 
x:12 = 27:9
x=36
 
【管理図】(1000ステップあたりバグがいくつあるか)
管理図とはQC7つ道具の一つで、品質のばらつきの上限と下限を定め、上限と下限の範囲に品質が収まっているかどうかをもって品質の良しあしを測るというものです。
ソフトウェアの品質を測る際にもこの考え方を適用することができ、「1000ステップ(1Kステップ)あたりバグがいくつあるか」という観点で品質を測ります。
例えば、1000ステップあたりバグが3~5個あるはず、この範囲で収まっていなければテストやソフトウェアの品質が悪い、と判断することができます。
基準の数字は言語やシステム特性によっても違うので、システム毎に品質測定して基準の数字決めたりします。言語毎に基準の数値を公表している機関もあります。
 
---------------------
 
正直、定量的品質評価は開発者からの評判が良くなかったりはしますが、私の経験上は、管理者やリーダーが品質管理のために自発的に取り入れるなら効果を発揮します。
実際に、他のプログラムに対してテストで見つかるバグが多すぎたり少なすぎたりするプログラムは、「複雑性が高く、バグが大量に出る」「ある担当者のテストが甘く、発見されるバグが少ない」といった原因が隠れており、その原因に対処するためのレビュー強化が有効だったりします。
 
----------------------
目次

https://1drv.ms/b/s!AivF3bzWXOzuhG1Xk5hscKYqkLkM