ᝲ୫

ጸᣅɒʇʟʒɰɱɬᩒᄉȾȝȤɞᜫ᜛ᩜᣵ
ʫʒʴɹʃȾ‫ژ‬ȸȢ˩ํᝁ᮷එ᪎ୣɁ̙ລ

ᜏႎǽ᪾ྃſ±¬ ſ²ᩌႎǽௗ̷ſ±¬ ſ³

ైటǽϧˢſ±

本研究では，組込みソフトウェア開発の設計工程から得られるメトリクスを用いて，テスト後半（結合テスト，総合テスト）における欠陥数の予測を試みた．モデルの説明変数として，基本・詳細設計におけるレビュー工数，検出欠陥数といった品質保証に関するメトリクスに加えて，試験仕様書に関するメトリクスを用いた．さらに，各仕様書のドキュメント量に関するメトリクスも採用した．分析の結果，BRE 平均値がおおむね 35% 程度となり，比較的高い予測精度となった．また，基本設計終了後に予測を行っても，比較的予測精度が高くなることがわかった．

Predicting Faults After Unit Testing Using
Design Phase Metrics in Embedded Software
Development
Masateru Tsunoda†1, †2, Akito Monden†1, †3, Kenichi Matsumoto†1
This research tried to predict the number of faults after unit testing using design phase (i.e., integration
testing and system testing) metrics in embedded software development. As explanatory variables of the model,
we used review effort in basic and detail design phase, metrics related to quality assurance such as number of
IRXQGIDXOWV,QDGGLWLRQZHXVHGPHWULFVUHODWHGWRWHVWVSHFLÀFDWLRQGRFXPHQWVDQGPHWULFVDERXWDPRXQWRI
VSHFLÀFDWLRQGRFXPHQWV([SHULPHQWDOUHVXOWVVKRZVWKDWDYHUDJHBRE (balanced relative error) of the models
were almost 35%, and we can say that prediction accuracy of them were relatively high. Also, the results showthat when the number of faults is predicted after basic design phase, the prediction accuracy is relative high.

±® ɂȫɔȾ

ウェアの品質確保 [Mihara2013] に着目し，開発の設計工程から得られるメトリクスを用いて，テストの後半（結合テ

近年，組込みソフトウェアの開発は非常に増加しており，
その重要性が増している．組込みソフトウェアの開発費
は 2004 年度には 2 兆円であったが，2008 年度には 3 兆
5 千億円に増加した．さらに，同年には組込みソフトウェ
アがインストールされた機器の生産額は製造業の生産額の50% 以上，GDP では 13% 以上の比率となっている [Tamaru
2008]．
本研究では，近年大きな課題となっている組込みソフト

16

SEC journal Vol.11 No.2 Sep. 2015

【脚注】
†1

奈良先端科学技術大学院大学情報科学研究科
Graduate School of Information Science, Nara Institute of Scienceand Technology†2

近畿大学理工学部情報学科
Department of Informatics, Kindai University†3

岡山大学大学院自然科学研究科
Graduate School of Natural Science and Technology, Okayama
University表1

分析対象のメトリクス一覧
メトリック

プロセス

試験

詳細

詳細

関連 RQ

v1

基本設計仕様書分量NNN

基本設計時の仕様書の分量を示す．

1, 2, 3v2

基本設計仕様書レビュー工数

Y

N

N

基本設計時の仕様書をレビューした際の工数を示す．

1, 2

v3

基本設計仕様書レビュー欠陥数

Y

N

N

基本設計時の仕様書をレビューした際に発見された欠陥数を
示す．

1, 2

v4

基本設計試験仕様書分量

N

Y

N

基本設計に関してシステムテストにて試験するための仕様書の分量を示す．

1, 2, 3, 4v5

基本設計試験仕様書レビュー工数

Y

Y

N

基本設計のテスト仕様書をレビューした際の工数を示す．

1, 2, 4v6

詳細設計仕様書分量NNY

詳細設計時の仕様書の分量を示す．

1, 3

v7

詳細設計仕様書レビュー工数

Y

N

Y

詳細設計時の仕様書をレビューした際の工数を示す．

1v8

詳細設計仕様書レビュー欠陥数

Y

N

Y

詳細設計時の仕様書をレビューした際に発見された欠陥数を
示す．

1

v9

詳細設計試験仕様書分量

N

Y

Y

詳細設計に関して結合テストにて試験するための仕様書の分量を示す．

1, 3, 4v10

詳細設計試験仕様書レビュー工数

Y

Y

Y

詳細設計のテスト仕様書をレビューした際の工数を示す．

1, 4

v11

欠陥数

-

-

-

結合テストとシステムテスト時に発見された欠陥数を示す．

-

スト，総合テスト）における欠陥数の予測を試みた結果に²® ґ౏ȾႊȗȲʑ˂ʉ

ついて報告する．開発初期にテストの後半に発見される欠陥を予測することで，出荷後品質を確保するためのテスト分析に用いたデータは，ある組込みソフトウェア開発企

計画立案や，手戻り工数の確保などに役立つと期待される．

業の 2 つの部署において収集されたデータである．2 つのまた，欠陥数の増大に寄与するメトリクスを明らかにする部署で開発される組込みソフトウェアが対象とするものは，ことで，欠陥を減らすためのプロセス改善にも役立つと期

有線・無線通信，画像処理，公共交通関連などであり，開待される．

発プロセスはウォータフォールとなっている．2 つの部署

本研究では，ある組込みソフトウェア開発企業で収集されたデータに基づき，テスト後半の欠陥数がどの程度定量的モデルに基づいて予測可能であるかを分析する．また，
テスト後半の欠陥数を予測するために優先的に収集すべき
メトリクスが存在するのかどうかを明らかにする．モデルの説明変数に用いるメトリクスの候補として，基本・詳細
設計におけるレビュー工数，検出欠陥数といった品質保証に関するメトリクスに加えて，試験仕様書に関するメトリ
クスを用いる．さらには，各仕様書のドキュメント量に関するメトリクスも採用し，ドキュメントの分量が欠陥予測に有効であるかを分析する．
これらのメトリクスは多くの企業において計測されており，テスト時に発見される欠陥数の予測に取り組んでいる 研 究 も 存 在 す る [Takata1994][Tsunoda2009][Komuro
2011]．ただし，我々の知る限り，プロジェクトの早期にテスト後半の欠陥数を予測することを目的として，設計ドキュ
メントに関するメトリクスのみを用いて予測モデルの構築を試みた研究は存在しない．

はそれぞれ独立しており，別々の顧客に対してソフトウェアを開発している．大部分のプロジェクトでは，顧客から与えられた要求に基づき，請負開発を行っており，基本設計，
詳細設計，コーディング，単体テスト，結合テスト，シス
テムテストを行っている．なお，システムテストではハードウェアのテストは含んでいない．開発規模については部
署 A では新規開発部分の中央値が約 10,000 ステップ，流用部分が約 21,000 ステップであり，部署 B ではともに約20,000 ステップであった．
データは 2009 年から 2012 年に収集されたものであり，
部署 A には 53 件，
部署 B には 54 件のデータが含まれている．
データセットに含まれるメトリクスを表 1 に示す．メトリ
クスは，基本設計時のドキュメントに関するものと，詳細
設計時のドキュメントに関するものが含まれる．前者は列「詳細」が N，後者は Y となっているメトリクスが該当する．ドキュメントには，設計書と試験仕様書の両方が存在する．前者に関するメトリクスは列「試験」が N，後者はY となっている．さらに，それぞれに対してレビューが実施されており，それらに関するプロセスメトリクス，すな以降，2 章では分析対象のデータについて説明し，3 章でわちレビュー工数とレビュー時の欠陥数が記録されている．

は分析方法について説明する．4 章では分析結果について

これらのメトリクスでは列「プロセス」を Y とし，それ以述べ，5 章では関連研究について説明する．最後に 6 章で外を N としている．なお，試験仕様書のレビュー時の欠陥まとめを述べる．

数は記録されていなかった．

SEC journal Vol.11 No.2 Sep. 2015

17

論文
予測対象であるテスト後半の欠陥数は，結合テストでのセスメトリクスを収集するかどうか判断材料の一つとでき

欠陥数とシステムテストでの欠陥数を合算したものである．

るように，RQ3 を設定した．設計書に対応した試験仕様書

データセットにはソースコードの行数，テストケース数，

は必ずしも作成されるわけではなく，また，設計時に作成

コードレビュー工数なども記録されていたが，これらのメされるとも限らない．もしこれらを作成していた場合，こトリクスは分析に使用しなかった．本研究ではできるだけれらのメトリクスを活用したほうが良いのかどうかを実務早期に，すなわち遅くとも詳細設計後にテスト後半の欠陥者が判断できるように RQ4 を設定した．

を予測することを前提としており，それ以降に収集される
メトリクスは予測モデルの説明変数として利用しないため，これらを分析から除外している．
分析では，表 1 のメトリクスに欠損を含むケースを除外

実験では，各リサーチクエスチョンに答えるため，以下の 3 つを組み合わせてモデルを作成し，それぞれのモデルの予測精度を比較した．
・ 詳細設計時のメトリクスの有無して分析した．これは一般的にリストワイズ除去法 [Little

・ プロセスメトリクスの有無

2002] と呼ばれる方法であり，欠損，すなわち変数に値が・ 試験仕様書に関するメトリクスの有無記録されていないケースを分析から除外する．欠損値処理の方法には，リストワイズ除去法の他に，欠損値に各変数³®²® ᥾‫࢜و‬ґ౏

の平均値を挿入する平均値挿入法 [Little2002] などがある

欠陥数予測モデルは，重回帰分析を用いて構築した．重が，Strike ら [Strike2001] は，ソフトウェア開発データを回帰分析はソフトウェアプロジェクトにおけるメトリクス

用いて予測モデルを構築する場合，リストワイズ除去法にを予測するモデルを構築する際に広く用いられる方法であよる欠損値処理が妥当であることを示している．そこで本る．重回帰分析では，以下のようなモデルが構築される．

研究では Strike らの実験結果に基づき，リストワイズ除去

y=β0+β1x1+β2x2+...+βkxk+ ε(1)

法を適用した．その結果，部署 A のデータ件数は 24 件，
部署 B のデータ件数は 19 件となった．

ここで y は予測対象である目的変数を表し，本研究では欠陥数に該当する．x1, x2, ... , xk は k 個の説明変数であり，本³® ґ౏஁ศ

研究では設計ドキュメントに関するメトリクスとなる．β0は回帰定数，β1, β2, ... , βk は偏回帰係数，εは誤差項であ³®±® ʴɿ˂ʋɹɲʃʋʱʽ

る．偏回帰係数同士を比較可能なように標準化したものを

本研究の目的は，組込みソフトウェアの品質管理を支援

標準化偏回帰係数と呼ぶ．偏回帰係数の絶対値が大きいほするために，設計ドキュメントに関するメトリクスを用い

ど，目的変数に対する該当の説明変数の影響が大きいことてテスト後半の欠陥数の予測を行うことである．そのためを示す．

に，以下の 4 つのリサーチクエスチョンを設定した．
・ RQ1: 設計ドキュメントに基づくメトリクスのみを用いて，テスト後半の欠陥数を予測できるのか ?
・ RQ2: 基本設計時に収集されるメトリクスのみで欠陥数を予測できるのか ?
・ RQ3: プロダクトメトリクスのみを用いて欠陥数を予測できるのか ?
・ RQ4: 試験仕様書に関するメトリクスを用いることにより，欠陥数の予測精度が高まるのか ?
表 1 の列「関連 RQ」に，それぞれのリサーチクエスチョンの分析において各メトリクスを用いるかどうかを示している．我々の知る限り，組込みソフトウェアにおいて，ドキュメントに関するメトリクスを用いてテスト後半の欠陥数を予測できるのかどうかは明らかでない．そこで RQ1 を設定した．基本設計時に収集されるメトリクスのみを用いて予測することができれば，より早期にテスト計画を立案することができる．そこで RQ2 を設定した．一般に，プロセス
メトリクスはプロダクトメトリクスよりも収集するほうがコストが掛かるため，収集が容易ではない．実務者がプロ

18

SEC journal Vol.11 No.2 Sep. 2015

対数変換：重回帰分析を用いてソフトウェアプロジェク
トのメトリクスを予測する場合，モデルの構築前に説明変数，目的変数に対し，対数変換が適用される場合がある．
ソフトウェアプロジェクトのデータセットには多数の小規
模プロジェクトと少数の大規模プロジェクトが存在する場
合が多く，そのためメトリクスの分布も偏っている場合が多い．このような場合，対数変換を適用することより，モデルの予測精度が高まることが多い．そのため，本研究でも対数変換を適用する．
多重共線性：構築されたモデルに多重共線性が発生していないかどうかを確認するために，VIF(Variance inﬂation
factor) と条件指標を用いる．多重共線性とは，説明変数
間 に強い線形の関係が存在していることであり，多重共
線性 が発生していると，偏回帰係数の分散が大きくなり，
偏回帰係数の推定が不安定になる [Onodera2004]．一般に，各変数の VIF が 10 を超える場合やモデルの条件指標が 30 を超える場合に，多重共線性が発生しているとされる[Tabachnick1996] [Tanaka1995]．
外れ値：予測モデルを構築する際，外れ値を除外するこ表2

構築された予測モデル一覧（部署 A）
v1

v2

v3

プロセス

試験

詳細

Adj. R2

p値

Y

Y

N

0.62

0.00

16.0

0.66

3

Y

Y

Y

0.62

0.00

16.0

0.66

3

N

Y

N

0.56

0.00

12.4

0.47

2

-

-

条件指標 Cook の距離

v4

v5

v6

v7

v8

v9

v10

1

2

-

-

-

-

-

1

2

1

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

v9

v10

3

2

N

Y

Y

0.56

0.00

12.4

0.47

2

-

-

1

-

N

N

N

0.42

0.00

8.0

0.49

1

-

-

-

-

N

N

Y

0.42

0.00

8.0

0.49

1

-

-

-

-

Y

N

N

0.42

0.00

8.0

0.49

1

-

-

Y

N

Y

0.42

0.00

8.0

0.49

1

-

-

条件指標 Cook の距離

v1

v4

v5

表3

-

-

構築された予測モデル一覧（部署 B）
v2

v3

v6

v7

v8

プロセス

試験

詳細

Adj. R2

p値

Y

Y

Y

0.75

0.00

15.4

1.16

N

Y

Y

0.68

0.00

11.7

1.84

-

-

2

-

1

-

-

N

N

Y

0.65

0.00

9.1

1.66

-

-

-

-

1

-

-

-

-

1

-

-

2

-

-

-

-

-

-

1

Y

N

Y

0.65

0.00

9.1

1.66

N

Y

N

0.53

0.00

13.1

0.45

1

Y

Y

N

0.53

0.00

13.1

0.45

1

N

N

N

0.50

0.00

10.4

0.31

1

Y

N

N

0.50

0.00

10.4

0.31

1

とが行われる．外れ値とはメトリクスに何らかの特異な値

2
-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

（VIF が 10 を超えない）ならば，その変数を取りこんを含むケースである．特異な値とは，他のプロジェクトとで次のステップに進む．pin より大きければ，取りこむ

比較して大きく異なる値のことであり，発生する理由は単

べき変数はないという情報を持ってステップ 3 に進む．

なる記録ミスの場合もあれば，仕様変更などの特殊な事情により起こるなど様々である．重回帰分析において外れ値を特定して除外する方法として，Cook の距離がある．Cookの距離とは，あるケースをモデルの推定の計算から除外した場合に，すべてのケースの残差がどの程度変化するかを示す距離である．Cook の距離が大きい時は，そのケースを除外して回帰統計量を計算した場合に係数が大きく変化したことを示す [Onodera2004]．一般に，Cook の距離が 1 より大きいケースはモデルの分析結果に大きな影響を与えているとみなされ，モデル構築から除外される．

³®³® ۰ୣᤣ੻

3. モデルに含まれている変数について，偏回帰係数の検定のための F 値を計算し，F 値が最小となる変数を選ぶ．
その F 値に対応する確率が指定された pout より小さい時，取りこむべき変数がないという情報があれば終了する．
そうでなければ，どの変数も落さずステップ 4 に進む．
F 値に対応する確率が pout より大きい時，その変数を落とし（取りこむべき変数がないという情報があれば，それをキャンセルして），再びステップ 3 に戻る．
4. すべての変数が取りこまれていれば終了する．そうでなければステップ 2 に戻る．

重回帰分析により予測モデルを構築する際，変数選択を

pin，pout は 0.05 か ら 0.5 の 範 囲 で， 重 要 な 変 数 を 落 さ行った．変数選択は説明変数の候補から有用な変数を選択ないことに重点をおくなら大きい値，余分な変数を取りこしてモデルを構築する方法である．本研究では，変数増減

まないことに重点をおくなら小さい値を指定する [Tanaka

法により変数選択を行った．具体的には以下の手順により1995]．本研究では重要な変数を落さないことに重点をおき，行う [Tanaka1995]．

pin に 0.2，pout に 0.4 を指定する．

1. どの変数も入っていない状態から開始する．

³®´® ̙ລʬʑʵɁ᜻Ι

2. もし，すべての変数が含まれていれば，取り込むべき

自由度調整済み決定係数：構築されたモデルがどの程変数はないという情報を持ってステップ 3 に進む．す度適切に構築されたのかを確かめるために，本研究では自べての変数が含まれていなければ，残りの変数を順番

由度調整済み決定係数を用いる．決定係数はデータに対すに 1 つずつ採用してみて，偏回帰係数の検定のためのるモデルの当てはまりの良さを評価する指標であり，1 にF 値を計算し，その値が最大となる変数を選ぶ．その F近いほどモデルのデータに対する適合度がよいことを示す

値に対応する確率が指定された pin より小さく，かつそ[Misono2007]．ただし，決定係数は説明変数の数が増加すの変数を採用することになって多重共線性が生じない

るに従って高くなる傾向がある [Misono2007]．この問題をSEC journal Vol.11 No.2 Sep. 2015

19

論文
表4

各予測モデルの精度評価（部署 A）

プロセス

試験

詳細

AE 平均値AE 中央値BRE 平均値

BRE 中央値

R1

R2

R3

R4

平均順位

N

N

N

9.4

6.1

34.7%

28.2%

1

3

1

1

1.5

Y

N

N

9.4

6.1

34.7%

28.2%

1

3

1

1

1.5

N

N

Y

9.4

6.1

34.7%

28.2%

1

3

1

1

1.5

Y

N

Y

9.4

6.1

34.7%

28.2%

1

3

1

1

1.5

N

Y

N

11.9

4.9

37.6%

35.9%

5

1

7

7

5.0

N

Y

Y

11.9

4.9

37.6%

35.9%

5

1

7

7

5.0

Y

Y

N

12.5

6.7

36.8%

33.3%

7

7

5

5

6.0

Y

Y

Y

12.5

6.7

36.8%

33.3%

7

7

5

5

6.0

AE 中央値BRE 平均値

BRE 中央値

R1

R2

R3

R4

平均順位

表5

各予測モデルの精度評価（部署 B）
詳細

AE 平均値

プロセス

試験

N

Y

Y

42.2

35.6

35.9%

30.0%

1

4

1

1

1.8

N

Y

N

46.3

34.4

36.1%

32.5%

3

2

2

2

2.3

Y

Y

N

46.3

34.4

36.1%

32.5%

3

2

2

2

2.3

Y

Y

Y

43.2

23.6

36.3%

41.0%

2

1

6

8

4.3

N

N

Y

46.4

36.7

36.8%

32.7%

5

5

7

4

5.3

Y

N

Y

46.4

36.7

36.8%

32.7%

5

5

7

4

5.3

N

N

N

49.6

39.3

36.3%

36.9%

7

7

4

6

6.0

Y

N

N

49.6

39.3

36.3%

36.9%

7

7

4

6

6.0

回避するために，データの数と説明変数の数によって決定るという問題がある．過少予測の場合，MRE は最大でも係数を補正した，自由度調整済み決定係数を用いる．

1 にしかならない．例えば実測値が 10，予測値が 0 の場

リーブワンアウト法：構築されたモデルの予測精度を評価するために，リーブワンアウト法 [Kocaguneli2013] を適用する．リーブワンアウト法とは，データセットからあるケースを 1 件取り出して予測対象のテストデータとし，残りのケースをモデル構築に用いるラーニングデータとする．

合，MRE は 1 となる．そこで本研究では MRE に加え，過
大予測と過少予測をバランスよく評価する指標 [MølokkenØstvold2005] である BRE を予測精度の評価指標に用いる．

´® ґ౏ፀ౓

これを，すべてのケースに対して繰り返す方法である．テ

部署 A と部署 B で目的変数である欠陥数の値域が大きく

ストデータでは欠陥数を未知とみなし，予測後に実際の欠異なっていたため，データの層別を行い，それぞれの部署

陥数と比較して予測がどの程度正確であるかを評価する．

向けに予測モデルを構築した．データを層別して個別のモ

予測精度評価指標：構築されたモデルによる欠陥数の予測
精度を評価するため，AE(Absolute Error)，MRE(Magnitude

デルを構築することは，精度の高い予測モデルを構築するために一般に行われる方法の一つである．

of Relative Error)[Conte1986]，BRE (Balanced Relative

構築したモデルの概要を 4.1 節で述べ，4.2 節において

Error) [Miyazaki1994] の 3 つの指標の平均値と中央値を用

BRE などの予測精度を中心にモデルを評価するとともに，いた．欠陥数の実測値を x，予測値を x̂ とするとき，それぞリサーチクエスチョンに対する答えを述べる．

れの指標は以下の式により求められる．

´®±® ʬʑʵɁകᛵ
(2)(3)

部署 A 向けに構築した予測モデルの概要を表 2 に，部署
B 向けに構築した予測モデルの概要を表 3 に示す．プロセス，
試験，詳細の各列は，それぞれプロセスメトリクス，試験仕様書に関するメトリクス，詳細設計時のメトリクスを説(4)

明変数の候補として含めたかを示す．含めた場合には Y とし，含めない場合は N としている．その結果，各変数が採用されたかどうかを v1 から v10 の列に示す．v1 から v10 に対それぞれの指標の値が小さいほど，予測値と実測値との応する変数は表 1 に示している．列中の数値は，構築され差が小さい，すなわち予測精度が高いことを示す．直感的たモデルにおいて，標準偏回帰係数の絶対値の大きさの順には MRE と BRE は実測値との相対誤差であるといえる．

位を示している．数値が小さいほど偏回帰係数が大きい，

ただし，MRE は過大予測に対し，アンバランスな評価にな

すなわち目的変数の値に対する影響が大きかったことを示

20

SEC journal Vol.11 No.2 Sep. 2015

予測値

予測値

実測値

最も精度の高いモデルによる予測（部署 A）

図２

最も精度の高いモデルによる予測（部署 B）

予測値

予測値

図１

実測値

実測値

図３

最も精度の低いモデルによる予測（部署 A）

す．空白は採用されなかったことを示し，「-」は説明変数の候補に含まれていなかったことを示す．Adj. R2 は自由度調
整済み決定係数を示し，この値が大きい順に各行，すなわ
ちモデルを並べ替えている．

実測値

図４

最も精度の低いモデルによる予測（部署 B）ていた．
同様に，部署 B では以下のような結果となった．
・ 上位 4 つのモデルにおいて，詳細設計時のメトリクス
v6 が採用され，かつ偏回帰係数が最も大きくなっていた．

モデルが適切に構築されたことを示すために，p 値，条・ 最上位のモデルにおいて，プロセスメトリクス v10 が採件指標，Cook の距離を示している．p 値は構築されたモデ用されたが，その他のモデルでは採用されなかった．

ルが統計的に有意であったかどうかを示し，全て有意水準

・ 最上位のモデルにおいて，試験仕様書に関するメトリ5% で有意であった．表に示すように，すべてのモデルの条

クス v9，v10 が採用された．上位から 2 番目のモデルに

件指標は 30 を下回っていた．また，結果は省略するが，各おいて同様のメトリクス v4 が採用された．

変数の VIF は 10 を下回っていたことから，多重共線性は発生していないと考えられる．Cook の距離は，各モデルにおける Cook の距離の最大値を示す．部署 A では全てのモデルが，部署 B では半数のモデルにおいて 1 を下回っていたことから，除外すべき（明らかな）外れ値プロジェクトは含まれていないと考えられる．

´®²® ʬʑʵɁ̙ລጀ࣊
部署 A 向けに構築したモデルの予測精度を表 4 に，部署
B 向けに構築したモデルの予測精度を表 5 に示す．プロセス，
試験，詳細の各列の意味は表 2，表 3 と同様である．列 R1
から R4 は，AE 平均値から BRE 中央値の 4 つの指標それぞれに関して，全モデルの中で何番目に精度が高かったの

自由度調整済み決定係数によってモデルを並べ替えた場

かを順位付けしたものである．平均順位は，その 4 つの順合，部署 A では説明変数に関して以下の結果が観察された．

位を平均したものであり，それぞれの表は平均順位の昇順，

それぞれの項目は RQ2 から RQ4 に関連しているが，各リすなわち予測精度が高かった順にモデルを並び替えている．

サーチクエスチョンに対する答えは次節の分析結果に基づいて述べる．
・ 全てのモデルにおいて，詳細設計時のメトリクスは説明変数として採用されなかった．

RQ1 に関する分析：最も精度の高かったモデルにおける予測精度に着目する．部署 A，部署 B において，最も精度の高いモデルでは BRE 平均値が 35% 程度，BRE 中央値が30% 程度となっており，誤差が小さかった．部署 B の場

・ 自由度調整済みの上位 2 つのモデルにおいて，プロセ合，AE の平均値と中央値が部署 A よりも大きくなっていスメトリクス v5 が採用されたが，その他のモデルではるが，これは欠陥数の値域が異なるためであり，相対的な採用されなかった．

誤差（BRE）を考慮すると，予測精度が低いわけではない．

・ 上位 4 つのモデルにおいて，試験仕様書に関するメト

図 1，図 2 は，予測精度を視覚化するために，横軸を実測値，リクス v4 が採用され，かつ偏回帰係数が最も大きくなっ縦軸を予測値として散布図としたものである．図には部署

SEC journal Vol.11 No.2 Sep. 201521

論文
A，B において最も精度が高かった（平均順位が最も小さい）
モデルを示している（守秘義務上，各軸に値を示していな

表6
部署

いが，各グラフの縦軸と横軸の値域は同一としている）．図からも良好な予測結果といえる．これらの結果から，RQ1に対する答えは Yes となる．なお，部署 A，B において最も精度が低かった場合でも，比較的予測精度は良好であった（図 3，図 4）．
RQ2 に関する分析：部署 A では，最も精度の高いモデル
では基本設計時に収集されるメトリクスのみが採用されて単体テスト欠陥数を含めた場合の予測精度
説明変数
候補

AE
平均値

AE
中央値

BRE
平均値

BRE
中央値

31.5

16.2

159.4%

74.4%

A

v1

A

v1 - v9

46.4

13.6

121.8%

56.5%

B

v1

61.9

33.8

43.2%

26.0%

B

v1 - v9

67.1

36.6

40.7%

36.5%

表 7 単体テストの欠陥数と結合テスト以降での欠陥数との相関係数いた．部署 B の場合，予測精度の上位 2 番目と 3 番目のモ

部署

デルにおいて，基本設計時のメトリクスのみが採用されて

A

0.38

0.07

おり，1 番目のモデルと比べて予測精度に大きな差はなかっ

B

0.71

0.00

相関係数

p値

た．外れ値の影響を避けるため，Wilcoxon の符号付き順位検定を用い，予測精度に差があるかを検定したが，有意水
準 5% で有意差がなかった．よって，RQ2 に対する答えはYes となる．

単体テストの欠陥数と，結合テスト以降での欠陥数について，部署ごとにスピアマンの順位相関係数を求めた結果を表 7 に示す．部署 B では相関が高かったのに対し，部署A では相関が低く，かつ有意水準 5% で有意となっていな

RQ3 に関する分析：部署 A，部署 B とも，最も精度の高いモデルではプロダクトメトリクスのみが採用されていた．
このことから，RQ3 に対する答えは Yes となる．ただし表2，表 3 において，プロセスメトリクスを含んでいるモデル

かった．部署 A と B で単体テストの欠陥数を含めた場合と含めない場合で予測精度に違いが生じた原因は，単体テス
トの欠陥数と，結合テスト以降での欠陥数の関連の強さの違いが原因であると考えられる．

のほうが説明力（自由度調整済み決定係数）が大きかった
ことから，これらのメトリクスを収集している企業の場合，

この分析結果より，設計関連メトリクスを用いてプロジェ

説明変数として用いることを検討してもよいと考えられる．

クトの早期に欠陥数を予測する場合，単体テストの欠陥数を含めると予測精度が低下することがあるといえる．

RQ4 に関する分析：部署 A では，最も精度の高いモデル
では試験仕様書に関するメトリクスが採用されていなかっµ® ᩜᣵᆅሱ

た．部署 B の場合，予測精度の上位 4 つのモデルでは，全て試験仕様書に関するメトリクスを用いていた．ただし，これまで，プロセスに関するメトリクスを用いてテスト

予測精度に大きな違いはなく，Wilcoxon の符号付き順位検時の欠陥数の予測を試みた研究はいくつか存在する．小室定においても，有意水準 5% で有意差がなかった．このこら [Komuro2011] は，レビュー実績などを用いてテスト工とから，RQ4 に対する答えは No となる．なお，表 2，表 3程で発見される欠陥数を予測するモデルを提案している．

において，説明力が上位のモデルでは試験仕様書に関する

ただし，説明変数に設計ドキュメントに関するプロダクト

メトリクスを含んでおり，また，有意差がなかったとはいえ，メトリクスを用いておらず，また，テスト工程全体の欠陥

予測精度がわずかながら高かったことから，これらのメト数を予測対象としている点が異なる．文献 [Tsunoda2009]

リクスが既に収集されている場合，活用を検討してもよい

では，システムテスト欠陥密度を予測するために，コードと考えられる．

レビュー指摘密度などを説明変数に用いている．ただし，´®³® ᐎߔ
目的変数に単体テストの欠陥数を含めて予測した場合のモデルの精度を表 6 に示す．表には，説明変数の候補として全ての変数を用いた場合と，基本設計仕様書分量のみを用いた場合の精度を部署別に示している．単体テストの欠陥数を含めない場合（表 4，表 5）と比較して，部署 A では予測精度が大きく低下し，部署 B では予測精度の若干の低下が見られた．Wilcoxon の符号付き順位検定を用い，単体テストの欠陥数を含めない場合と予測精度に差があるかを検定すると，部署 A の場合，AE，BRE とも有意に悪化していた．なお，検定では各表で最も精度の高いモデル同士を比較している．

22

SEC journal Vol.11 No.2 Sep. 2015

ソフトウェアのコード行数などを説明変数として用いているため，示されているモデルを設計完了時に適用することはできない．
設計ドキュメントに関するプロダクトメトリクスとプロ
セスメトリクスの両方を用いて品質の予測を試みた研究もわずかながら存在する [Katayama2009][Takata1994]．ただし，試験仕様書に関するメトリクスについては，我々の知る限りこれまで用いられておらず，従って予測精度に寄与するのかも明らかではなかった．また，それらの研究では目的変数に単体テストの欠陥数を合算した場合と合算しない場合の予測精度についても比較していない．
片山ら [Katayama2009] は，組込みソフトウェア開発に

おいて，低品質モジュールを予測するために，基本・詳細

・ 部署によって，どのメトリクスを説明変数の候補とす設計での，設計ドキュメントに関するプロセス・プロダク

るとよいのかが大きく異なっていた．このことから，

トメトリクスを説明変数としてモデルを構築している．た最初から各部署で共通の予測モデルを構築することをだし，片山らはテストの順番を決めるために，単体テスト目指すのではなく，部署ごとに別個に構築することもからシステムテストまでに発見される欠陥の多いモジュー

検討すべきであるといえる．

ルを予測に基づきランキングしており，予測モデルの使用

・ 単体テストの欠陥数を目的変数に合算すると予測精度

目的が本論文と異なる．このため，欠陥数の予測精度が明が低下することがあった．このため，設計関連メトリ

らかでない．また，各メトリクスの予測に対する効果も評

クスのみを用いて予測モデルを構築する際には，単体

価していない．

テストの欠陥数を目的変数に合算しないほうがよいと

高田ら [Takata1994] は単体テストからシステムテストにいえる．

おいて発見される欠陥数を予測するために，片山らと同様

欠陥数の値域が異なる 2 つの部署どちらにおいても類似のメトリクスを説明変数として用いている．ただし，コーの結果が得られたことから，結果の信頼性は比較的高いとドレビューでの欠陥数も説明変数に含めているため，モデ考えられる．今後の課題は，設計ドキュメントのメトリク

ルを設計完了時に適用することはできない．

スとソフトウェアの品質に関連があるかどうかを明らかに当然ではあるが，従来研究では本研究のリサーチクエス
チョンに答えることはできない．テスト後半の欠陥数に着することである．

ពᢷ目し，各種のメトリクスを組み合わせて欠陥数の予測精度を評価し，それぞれのメトリクスの予測精度に対する寄与

本研究の一部は，文部科学省科学研究補助費（基盤 C：を確かめたことが本研究の主要な貢献である．

課題番号 25330090）による助成を受けた．

¶® ȝɢɝȾ

【参考文献】

本研究では，組込みソフトウェアの開発における定量的な品質管理を支援することを目的とし，設計ドキュメント
に関するメトリクスを説明変数として，テスト後半の欠陥数を予測することを行った．テスト後半の欠陥数とは，結合テストとシステムテストにおいて発見される欠陥の合計[Conte1986] S. Conte, H. Dunsmore, and V. Shen, Software Engineering,
Metrics and Models, Benjamin Cummings, 1986.
[Katayama2009] 片山真一 , 大蔵君治 , 伏田享平 , 川口真司 , 名倉正剛 , 門
田暁人 , 飯田元 , “ ソフトウェアタ グを用いた設計文書メトリクスからの低品質モジュールの予測 ,” 電子情報通信学会技術研究報告 , Vol.109,
No.343, pp.67-72, 2009.
[Kocaguneli2013] E. Kocaguneli, and T. Menzies, “Software eﬀort models
should be assessed via leave-one-out validation,” Journal of Systems
and Software, Vol.86, No.7, pp. 1879-1890, 2013.

る企業において収集されたデータを用いた．予測モデルの[Komuro2011] 小室睦 , 薦田憲久 , “ ピアレビューデータに基づく品質予測モデル ,” 電子情報通信学会論文誌 D, Vol.J94-D, No.2, pp.439-449,
2011．

説明変数として用いたものは，仕様書の分量などのプロダ[Little2002] R. Little, and D. Rubin, Statistical Analysis with Missing Data,
2nd ed., John Wiley & Sons, 2002.

である．実験では，組込みソフトウェアを開発しているあクトメトリクス，レビュー工数やレビュー欠陥数などのプ
ロセスメトリクス，試験仕様書の分量など，試験仕様書に関するメトリクスである．これらのメトリクスは基本設計時と詳細設計時に収集される．データは 2 つの部署から収集されており，それぞれの部署において予測モデルを作成[Mihara2013] 三原幸博 , “ 組込みソフトウェア開発における品質向上の勧め [ バグ管理手法編 ],” http://www.ipa.go.jp/ﬁles/000030363.pdf[Misono2007] 御園謙吉 , 良永康平（編）,よくわかる統計学 II 経済統計編 ,ミネルヴァ書房 , 2007．
[Miyazaki1994] Y. Miyazaki, M. Terakado, K. Ozaki, and H. Nozaki, “Robust
Regression for Developing Software Estimation Models,” Journal of
Systems and Software, Vol.27, No.1, pp.3-16, 1994.

・ どちらの部署においても，リーブワンアウトにより予測[Mølokken-Østvold2005] K. Mølokken-Østvold, and M. Jørgensen, “A
Comparison of Software Project Overruns-Flexible versus Sequential
Development Models,” IEEE Transactions on Software Engineering,
Vol.31, No.9, pp.754-766, 2005.

した場合，BRE 平均値がおおむね 35% 程度となり，比[Onodera2004] 小野寺孝義 , 山本嘉一郎（編）, SPSS 事典：BASE 編 , ナ
カニシヤ出版 , 2004．

較的高い精度となった．よって，表 1 のようなメトリ[Strike2001] K. Strike, K. El Eman, and N. Madhavji, “Software Cost
Estimation with Incomplete Data,” IEEE Transactions on Software
Engineering, Vol.27, No.10, pp.890-908, 2001.

し，精度を評価した．その結果より，以下のことがいえる．

クスを収集している企業では，欠陥数の予測を試みる価値があると考える．この場合，基本設計終了後に予測を試みても，ある程度精度が高いことが期待される．
・ 実験結果からは，どのメトリクスを優先的に用いるべきかは一概にはいえなかった．ただし，採用された説
明変数が異なっていても（表 2，表 3），予測精度に大きな違いはなかった．このことから，表 1 のようなメトリクスを一部でも収集している場合，欠陥数の予測を試みるとよいと考えられる．

[Takata1994] 高田義広 , 松本健一 , 鳥居宏次 , “ ニューラルネットを用いたソフトウェア信頼性予測モデル ,” 電子情報通信学会論文誌 D-I, Vol.
J77-D-I , No.6 , pp.454-461, 1994.
[Tamaru2008] 田丸喜一郎 , “10 年で変わった「組込み」、変わらない「組込み」,” ZIPC WATCHERS, pp.6-7, 2008.
[Tabachnick1996] B. Tabachnick, and L. Fidell, Using Multivariate
Statistics, 3rd Edition, Harper Collins College Publishers, 1996.
[Tanaka1995] 田中豊 , 垂水共之（編）, Windows 版 統計解析ハンドブッ
ク 多変量解析 , 共立出版 , 1995.
[Tsunoda2009] 角田雅照 , 玉田春昭 , 森崎修司 , 松村知 子 , 黒崎章 , 松本
健一 , “ コードレビュー指摘密度を用 いたソフトウェア欠陥密度予測 ,”情報処理学会論文誌 , Vol.50, No.3, pp.1144-1155, 2009.

SEC journal Vol.11 No.2 Sep. 201523