第 7 章 ソフトウェア品質会計の適用による品質向上の実例
7.3 B 組織の品質向上事例
7.3.4 改善施策と実施結果の分析
B組織は,A組織をベンチマークすることにより,A組織との顕著な相違点を分析した.
その結果に基づき,改善施策を立案し実施した.主要な改善施策とその結果を述べる.
B組織の改善計画の立案および結果の分析に使用したデータ項目の定義を表7-1に示す.表 7-2にA組織およびB組織の改善前,改善活動開始から3年後,および4年後のデータを示す.
表7-2のデータ項目は,上工程バグ分析摘出率(No.9)および1+n施策成功率(No.10)を 除き規模(KLOC)で正規化した上で,No.1~No.10の数値をA組織の平均値を100とした 相対値で表している.B組織の改善前後の各データ項目の平均値に対して,データに対応が ある場合の母平均の差に関する検定を,信頼率95%で分析した結果を表7‐3に示す.
図7-8には,A 組織およびB組織の,出荷後バグ数に対する設計・製造工数,レビュー 工数,およびテスト工数の散布図を示す.図7-8の上段は改善施策立案時に使用したA 組 織とB組織(改善前)の散布図,下段は改善結果を分析するために使用したB組織の改善 前,3年後,および4年後の散布図を示す.表7-4には,図7-8内で示した回帰直線に関す る情報を示す.
No.データ項目単位定義 1総工数人H/KLOC開発に費やした総工数(人H)/開発規模(KLOC). 総工数= 設計・製造工数 (No. 2) + レビュー工数 (No. 3) + テスト工数 (No. 4) 2設計・製造工数人H/KLOC設計およびコーディングに費やした工数(人H)/開発規模(KLOC) 3レビュー工数人H/KLOC設計およびコードに対するレビューに費やした工数(人H)/開発規模(KLOC) 4テスト工数人H/KLOCテストに費やした工数(人H)/開発規模(KLOC) 5総摘出バグ数件/KLOC出荷前に摘出した総摘出バグ数(件)/開発規模(KLOC). 総摘出バグ数 = レビュー摘出バグ数 (No. 6) + テスト摘出バグ数(No. 7) 6レビュー摘出バグ数件/KLOC総摘出バグ数 (No. 5)のうち,テスト開始前の上工程(設計,製造およびレビュー)で摘出されたバグ数 /KLOC.上工程で摘出されるバグは,主に設計レビューまたはコードレビューにより摘出されるため,レ ビュー摘出バグと呼ぶ. 7テスト摘出バグ数件/KLOC総摘出バグ数(No. 5)のうち,テスト工程で摘出されたバグ数/KLOC.テスト工程で摘出されるバグは,主に テストにより摘出されるため テスト摘出バグと呼ぶ. 8テスト項目数項目/KLOCテスト項目数(項目)/開発規模(KLOC) 9上工程バグ摘出率%上工程バグ摘出率 =(レビュー摘出バグ数(No.6)/総摘出バグ数 (No. 5))×100
10
1+n施策成功率%ソフトウェア品質会計の技法のうち,「バグ分析と1+n施策」による同種バグの摘出状況に関するメトリクス で,以下の式で算出する. 1+n施策成功率=(1件以上の同種バグを摘出した1+n施策実施ケース数/総1+n施策実施ケース数)×100表7 - 1 デー タ 項目
n平均最小最大標準 偏差n平均最小最大標準 偏差n平均最小最大標準 偏差n平均最小最大標準 偏差 1総工数11100.0037.78149.5130.17767.6350.97107.2720.757100.8662.76216.4254.337128.5982.37204.4845.03 2設計・製造工数11100.0043.38151.5930.57799.6064.28156.6599.607150.7084.03330.9294.377118.6378.33172.4437.79 3レビュー工数11100.0052.12152.9031.22747.0035.9161.129.76781.4857.66119.7422.927113.6267.34177.0635.52 4テスト工数11100.0035.81147.4733.79748.4639.5382.1015.24767.3545.46154.4539.457139.8670.64249.3262.16 5総摘出バグ数11100.0073.83131.2517.61780.8464.01115.0115.94787.4378.45104.739.627117.7082.61161.5224.85 6レビュー摘出バグ数11100.0073.31131.2018.81763.0746.04101.5717.95780.2572.6296.827.977110.5377.52145.3722.45 7テスト摘出バグ数11100.0074.44131.5818.317187.77137.74284.8946.487130.6875.56181.0734.307160.91113.26258.8049.74 8テスト項目数11100.0056.11172.7834.56757.5618.6484.1423.807129.7535.97237.6669.647187.56115.00264.2252.47 9上工程バグ摘出率11100.0094.56105.912.60777.6157.6088.479.55792.1585.72100.795.02794.2190.15100.013.50 101+n施策成功率11100.000.00214.5966.83746.500.00128.7654.99783.200.00160.9452.877123.5671.53214.5944.01
(すべての数値は、A組織の平均値を100とした相対値) 3年後改善前
表7-2 データ 一覧
No.データ項目A組織 4年後B組織平均値分散標準偏差平均値分散標準偏差t値P値(両側)平均値分散標準偏差t値P値(両側) 数/KLOC67.63430.7120.75100.862951.3754.33-2.4960.047128.582027.9345.03-3.7850.009 製造工数/KLOC99.601452.2438.11150.708905.2294.37-2.1930.071118.631427.7237.79-1.4080.209 ュー工数/KLOC47.0095.239.7681.48525.0822.91-3.9500.008113.621261.9735.52-5.1090.002 ト工数/KLOC48.46232.1915.2467.351556.5739.45-2.0550.086139.863863.9562.16-3.6110.011 出バグ数/KLOC80.84253.9715.9487.4392.469.62-0.7630.474117.70617.6524.85-6.2250.001 ュー摘出バグ数/KLOC63.07322.3017.9580.2563.487.97-2.1150.079110.53504.1322.45-7.4620.000 ト摘出バグ数/KLOC187.772160.7046.48130.681176.6834.303.3010.016160.912474.0649.741.3410.229 ト項目数/KLOC57.56566.5623.80129.754850.0769.64-3.2550.017187.562753.5652.47-7.0630.000 程バグ摘出率77.6191.239.5592.1525.195.02-6.0920.00194.2112.223.50-4.6080.004 策成功率46.502519.9450.2083.202794.9752.87-1.0850.319120.501965.6944.34-4.1010.006 4年後
表7-3 . B組 織(改 善前) に 対する B 組織( 3年後 )およ びB組織(4年後 )の 母平均 の 差の 検定結 果
データ項目改善前3年後50100150501001505010015020000
500 20000
500 50100150
100
200
300
400 0200501001500
500 0200501001500200501001500
500 020050100150
100
200
300
400 2000500
500 2000500
500 100150100150100150100150
100
200
300
400
出 荷 後 バ グ 数 ( 相 対 値 )
設計・製造工数(相対値)レビュー工数(相対値)テスト工数(相対値)
0200501001500
500 100200300400 0200501001500
500 100200300400 0200501001500
500 100200300400 0200501001500
500 100200300400 0200501001500
500 100200300400 0200501001500
500 100200300400 0200501001500
500 100200300400 0200501001500
500 100200300400 0200501001500
500 100200300400 0200501001500
500 100200300400 0200501001500
500 100200300400 0200501001500
500 100200300400 出 荷 後 バ グ 数 ( 相 対 値 )
A組織とB組織(改善前)の比較 B組織の改善前・3年後・4年後の比較
3 年後 4 年後 3 年後 4 年後 4 年後 3 年後
B 組織
(改善前)A組 織 A組織 A組織
B 組織
(改善前)B 組織
(改善前)B 組織
(改善前)B 組織
(改善前)B 組織
(改善前) B組織(3年後) B組織(4年後)B組織(改善前)A組織 (直線は回帰直線を示す)図 7 - 8 出荷後バ グ数と 各種指標の 関 係
設計・製造工数(相対値)レビュー工数(相対値)テスト工数(相対値)
改善前3年後4年後改善前3年後4年後改善前3年後4年後 相関係数0.109-0.064-0.273-0.4930.5730.2210.262-0.867-0.1220.1650.079-0.779 回帰定数項66.693259.546279.094309.644-70.87892.19329.724449.232133.716165.494175.012332.993 回帰係数0.333-0.229-0.527-1.4821.7093.0762.085-2.776-0.3371.4710.365-1.424 t値0.330-0.144-0.636-1.2662.0980.5070.608-3.899-0.3700.3750.178-2.776 P値(両側)0.7490.8910.5530.2610.0650.6330.5700.0110.7200.7230.8660.039
A組織B組織
表7 - 4 図7 - 8 の散 布図 中の 回帰 直線 の分 析結 果
レビュー工数と出荷後バグ A組織B組織 テスト工数と出荷後バグ A組織B組織設計・製造工数と出荷後バグ 項目
(1) レビューとテストの強化
表 7-2 により,A 組織と B 組織(改善前)を比較する.設計・製造工数の平均値は,A 組織100に対してB組織(改善前)99.60とほぼ同程度である(表7-2・No.2参照).これ に対して,B組織(改善前)のレビュー工数は47.00,テスト工数は48.46,テスト項目数
は57.56と,A組織100の約1/2である(表7-2・No.3,4,8参照).これに対応して,レ
ビュー摘出バグ数は63.07と少ないものの,テスト摘出バグ数は187.77とA組織の2倍近 く多い(表7-2・No.6,7 参照).これらの結果から,B 組織(改善前)は,設計・製造に は十分な工数をかけているものの,レビューでのバグ摘出が不十分であったために,テス ト開始時点で残存するバグが多く,少ないテストでも多くのバグがテストで摘出される状 況であったことが推察される.
次に,図 7-8上段のグラフにより,A組織と B組織(改善前)の出荷後バグ数と各デー タ項目の関係を分析する.図7-8上段左の設計・製造工数の散布図では,A 組織とB組織
(改善前)のデータの多くが重なって分布している.これに対して,レビュー工数とテス ト工数では,A 組織と B 組織(改善前)のデータは,ほとんど重ならずに分布しているこ とが観察される(図7-8上段中央と右を参照).回帰直線の傾きでもその傾向の違いは明確 である.特にテスト工数と出荷後バグ数の散布図では,A組織の傾きは右下がりの傾向を示 しており,テストをすればするほど出荷後バグ数が少なくなる傾向にあるのに対して,B組 織(改善前)では逆の傾向を示している(図7-8上段右および表7-4を参照).
7.2節で述べたとおり,A組織は過去に,ソフトウェア品質会計を考案し適用して,レビ ューによるバグ摘出を強化することにより,1年間に発生する出荷後バグ件数を1/20へ削 減した経験をもつ.レビューによるバグ摘出はソフトウェア品質会計技法の特徴であり,
そのレビューによるバグ摘出の効果を表す上工程バグ摘出率は,A組織の改善期間中に 80%を超えた.
A組織とB組織(改善前)との分析結果,およびA組織の経験に基づき,B組織は,レ ビューとテストの強化を改善施策と決定し実施した.その結果得られた,B組織の改善開始 から3年後および4年後のデータが表7-2である.
B組織の改善前後の数値の変化の有意差を統計的に確認するために,各データ項目の平均 値に対して,データに対応がある場合の母平均の差に関する検定を行った結果が,表7-3で ある.信頼率95%で分析した結果,有意水準5%としたとき,B組織(改善前)に対してB組 織(3年後)の平均値に有意差があると認められたものは,総工数,レビュー工数,テスト 摘出バグ数,テスト項目数,および上工程バグ摘出率の5 つのデータ項目である.また,B 組織(改善前)に対してB組織(4年後)の平均値に有意差があると認められたものは,設 計・製造工数およびテスト摘出バグ数を除く8つのデータ項目である.この結果から,改善 活動3年後の改善成果は半数のデータ項目において観察されており,4年後にはその成果が 拡大していることがわかる.数値の変化に有意差が認められなかったのは,設計・製造工 数およびテスト摘出バグ数の2つのデータ項目である.このうち設計・製造工数は,設計・
製造に対する直接的な改善活動を実施していないことが数値の変化に有意差が認められな かった理由である.テスト摘出バグ数については,以降で考察する.
B組織がレビューおよびテストの強化を実施した結果を,平均値に有意差があると認めら れたデータ項目により分析する.改善開始 3 年後には,レビュー工数およびテスト項目数 の増加が認められた.その結果としてテスト摘出バグ数が減少し,相対的に上工程バグ摘 出率が増加した.これは,レビューによるバグ摘出が増加した結果,テスト開始時点に残 存するバグ数が減少し,テスト項目を増加してもテストで摘出されるバグ数が減少したこ とを示す.改善開始 4 年後には,レビュー工数およびテスト項目数に加えてテスト工数が 増加した.その結果として,レビュー摘出バグ数が増加し,総摘出バグ数も増加した.こ の結果から,B組織のレビューおよびテスト強化の改善活動は成果をあげたと言える.
一方,課題も見られる.改善前の数値に対して統計的な有意差が認められなかった B 組 織(4年後)のテスト摘出バグ数は160.91と多いままである.B組織(3年後)には130.68 と減少したものの,4年後に再度増加した.これは,A組織と比較してテスト開始時点で残 存するバグが多いためと考える(表7-2・No.7参照).B組織(4年後)の総摘出バグ数が
117.70と多いことから,設計そのものの質を向上させることが必要である(表7-2・No.5).
今回の改善活動では,設計・製造に対する改善を実施していないが,その必要性を示して いると考える.
また,レビューとテストを強化する施策の成果はでているものの,B組織(4年後)のレ ビュー工数113.62,テスト工数139.86 はどちらもA 組織より多いことから,工数増加に よるバグ摘出の増加だけでなく,その効率化に取り組む必要がある(表7-2・No.3,4).
B組織(4年後)の総工数が,128.59と増加している点について考察する(表7-2・No.1). 総工数の増加は,単位規模を開発するための工数を意味する生産性の低下を表す.生産性 の低下は,今後,ビジネス上の大きな課題となりうる.B組織の改善前は,①適正な工数を かけて開発されていなかった,このため,②出荷後のバグが多くその対応工数がかかって いた,という 2 点が課題だったと考える.①の「適正な工数」を判断するのは難しい.組 織の保有する技術力と,出荷後バグ数に基づいて判断する必要がある.B組織の場合は出荷 後バグ数を課題としており,A組織との比較分析でレビューとテストが不足と判断した.こ れは,組織の保有する技術力と要求される出荷後バグ数に対して,適正な工数がかけられ ていなかったとみるべきである.一方,②については,B組織では出荷後バグ数が減少して いるので解決の方向にある.一般に,出荷バグ数が多いと,開発開始時から出荷時までの 範囲で単位規模を開発する工数が増加したとしても,出荷後の保守段階までの範囲で比較 した場合では,総工数は逆に減少すると考えられる.本著者が所属する組織での計測結果 によると,出荷後にバグ 1 件を修正するための工数は,設計・製造段階で修正する工数の 少なくとも 100 倍以上必要である.出荷後に出荷後バグとして顕在化するまでの期間が長 期化すればするほど,当該バグを含む機能を直接開発した開発者が減り,開発情報が不足