ソフトウェア開発におけるテスト労力の最適配分問題
山田 茂，一森 哲男…l州＝llll‖＝‖‖‖‖‖川‖州＝川＝l………l洲‖………‖‖ll州‖‖‖‖‖‖＝‖‖‖‖‖‖‖‖‖‖‖＝‖‖‖＝‖‖‖＝‖‖‖＝＝‖‖‖＝‖‖‖＝‖‖‖＝‖‖‖‖‖‖‖‖‖‖‖‖‖‖‖‖‖‖‖‖州側‖…………‖ll…l…州＝‖l………l…帥‖l………l川…川

1． まえがき問題について議論する．次に，テスト終了後の信頼性

ソフトウェア開発の最終段階であるテスト工程では，開発作業の結果として，ソフトウェア内に多くの人為的誤りや欠陥などのソフトウェアフォールト（以下フォールトと略す）が潜入しているので，これらを発見・修正する必要がある．さらに，一般的な大規模ソフトウェア開発プロジェクトでは，総開発コストの約50％をテスト工程で費やされていると言われる［1］．
このテスト工程は，ユーザの要求する機能が満たされているかどうかを確認するために，単体テスト，統合テスト，総合テストという一連の段階がある．したがって，ソフトウェアのテストが効率的に行われるためには，開発資源を有効に用いてテスト工程を管理する必要がある．例えば，与えられたテスト資源をどのようにソフトウェアプロジェクトの各サブプロジェクトに配分すれば，意図するソフトウェアの品質／信頼性目標を満たすことができるかということは重要な問題である．ここで，テスト資源とは，テストにより費やされたCPU時間や工数などのテスト労力である．
このようなテスト工程での信頼性評価結果に基づく合理的なテスト労力の配分問題は，従来はほとんど議論されていない．また，情報ネットワーク技術の進展により，複数プロジェクトで分散協調的に行う分散ソを確保するために，いくつかのテスト工程管理上の制約を考慮して，代表的な非線形数理計画問題として定式化されるテスト労力の最適配分問題について考察する．ここで，投入されるテスト労力と達成されるソフトウェア信頼性を関係づけるソフトウェア信頼度成長モデル［2］，［3］を適用する．

2．ソフトウェア信頼度成長モデル
ソフトウェアいわゆるコンピュータプログラムは人間の作った知的生産物であるため，その開発工程において人為的誤りや欠陥などのフォールト（バグとも呼ばれる）が潜入することば避けられない．そこで，ソフトウェア開発の最終工程におけるテスト工程や実際の運用・保守段階において，フォールトの発見・修正が行われる．このようなフォールト発見事象を記述し，テスト工程や運用・保守段階におけるソフトウェアの信頼性評価を行うために，時刻fまでに発見される総フォールト数Ⅳ（f）を確率変数として導入し，これを計数過程（countingprocess）とみなして（N（i），i≧0）とする．このⅣ（ま）に対し，非同次ポアソン過程（non−homogeneousPoissonprocess，以下NHPPと略す）を導入し，Ⅳ（ま）の期待値をガ（ま）とすれば，NHPPに基づくソフトウェア信頼度成長モデル［4］−［6］は，フトウェア開発形態が望まれていることから，計画されたテスト労力量を適切に各プロジェクトに配分する（ガ（壬））m

Pr（Ⅳ（ま）＝乃）

expトガ（り］

れ！

必要性が出てきた（れ＝0，1，2，…），（1）

本稿では，まず，テスト工程での信頼性評価手法としてのソフトウェア信頼度成長モデルと，これに基づく最適な総テスト時間を見積るための最適リリース㈹＝上土た（∬）血，と定式化され，ソフトウェアの信頼性評価において特に実用性の高さから有望視されている．ここでガ（t）

いちもり てつお 大阪工業大学情報科学部

は，NHPPの平均値関数（meanvaluefunction）と呼ばれ，時刻fまでに発見される総期待フォールト数を表す．また，坤）は瞬間フォールト発見率を表し，NHPP〒573−0196枚方市北山1−79−1の強度関数（intensityfunction）と呼ばれる．

やまだ しげる 鳥取大学工学部〒680−8552鳥取市湖山町南4−101

420（24）© 日本オペレーションズ・リサーチ学会. 無断複写・複製・転載を禁ず.

オペレーションズ・リサーチ（2）本稿では，テスト工程において投入される単位テス
ト労力当りに発見されるフォールト数が，その時点にトを定式化するために，次のコストパラメータを定義おいて残存するフォールト数に比例するものと仮定しする．て構築されたテスト労力依存型ソフトウェア信頼度成cl：テスト工程において発見されるフォールト1個当以上のことから，関連する総期待ソフトウェアコス長モデル（testing−e批）rtdependentsoftwarereliability

りの修正コストgrowthmodel）［2］，［3］を考える．すなわち，式（2）の平c2：運用段階において発見されるフォールト1個当り均値関数ガ（ま）に村しての修正コスト（c2＞cl＞0）
c3：テストに要する単位時間当りのコスト（c3＞0）

仇「（‡）＝α（1−eXpトrⅣ（瑚）上記のコストパラメータを用いて，ソフトウェアの最（α＞0，0＜γ＜1），（3）

適リリース問題に関する総期待ソフトウェアコストがと仮定するものである．ここで，パラメータαはテス導かれる．このとき，式（3）の平均値関数月五（ま）を使っト開始前にソフトウェア内に潜在する総期待フォールて，テスト工程における総テスト時間をr時間とする

ト数，パラメータγは任意のテスト時刻における1個と，ソフトウェアのテスト工程および運用段階におい当りのフォールト発見率，Ⅳ（f）はテスト工程において費やされる期待コストの総計，つまり総期待ソフトて時刻壬までに費やされるテスト労力の累積消費量をウェアコストC（r）は，表す．式（3）から，任意のテスト時刻fにおいてソフ

C（r）＝Cl月五（r）＋c2（α一月T（r））＋c37「，（6）トウェア内に残存する総期待フォールト数はz（壬）…α一月す（f）＝α・eXpトrⅣ（拙となる．よって，式（6）のC（r）を最小にするような（4）総テスト時間（r＝r＊）を求めることがソフトウェアの最適リリース問題である．

により与えられる．また，テスト終了後，時間区間（0，β］でのソフトウェア信頼度，すなわちソフトウェ
ア障害の発生しない確率は

4．最適テスト労力配分問題
2．で議論したテスト労力依存型ソフトウェア信頼度成長モデルを使って，代表的な最適テスト労力配分問

R（s）＝eXpト7a・eXpトrW（t）］s］（↑＞0，S≧0），（5）により表すことができる．ここで，7は定数パラメータである．

題について議論する．

4．1基本的テスト労力配分問題［9］，［10］次のテスト労力配分問題を考える．

3．ソフトウェアの最適リリース問題［7］，［8］（1）テスト工程での単体テストにおいて，ソフトウソフトウェアのテスト工程では，それまでの開発作ェアシステムを構成する独立な凡才個のモジュー業により作り込まれたソフトウエア内に潜在するフォルあるいはソフトウェア部品をテストする（またールトの発見・修正作業が行われている．このとき，テは，あるソフトウェアプロジェクトが凡才偶の独立スト時間を費やせば費やすほどソフトウェア内の残存なサブプロジェクトから構成され，それらを独立フォールト数は少なくなるので，ソフトウェアの信頼にテストすると考えてもよい）．

性は向上する．しかし，テスト時間が長くなり過ぎる（2）各ソフトウェアモジュール内の残存フォールト数とユーザへのリリース時期が遅れる結果となる．または，テスト労力依存型ソフトウェア信頼度成長モ

逆に，テスト時間が短か過ぎるとユーザへのリリースデルにより推定する．

時期（納期）に対する要求は満足できるが，ソフトウェア内に残存するフォールトが数多く存在することになるために，リリース後のソフトウェアの信頼性は低く，運用段階で発生するフォールトの保守コストは増（3）総テスト労力量Qは予め計画値として与えられ，その制約内で各モジュールにテスト労力を配分する．

加する結果となる．よって，ソフトウェアのテスト工（4）ソフトウェア内の残存フォールト数をできるだけ程から運用段階に移行するのに最適なリリース時期（少なくするために，所定の計画値Qを各モジューあるいは総テスト時間）を求める問題が存在する．

ルに適切に配分する．

1999年8月号© 日本オペレーションズ・リサーチ学会. 無断複写・複製・転載を禁ず.

（25）421

単体テスト工程で，モジュール豆（戎＝1，2，…，〟）の（11）を解くと，テストに軌のテスト労力量が費やされたものとする．

吼い＝maX〈0，三（1nAi−1n入）〉，モジュール乞内の期待残存フォールト数は，式（4）から
つまり，
現＝α宜・eXpトγ沌］（豆＝1，2，…，凡才），（7）

官立＝（1nA宜−1n入）／γi（宜＝1，2，…，た）と推定される．但し，α五ほ単体テスト開始前のモジュ（乞＝た＋1，…，〟）

q宜＝0

ール五内に潜在する総期待フォールト数，r五はモジューとなる．このとき，式（9）および式（10）より，ル宜に対する単位テスト労力当りのフォールト発見率，さらに酌はモジュール壱に配分されたテスト労力量とする．上記のことから，テスト資源の最適配分問題を（14）定式化すると，〟

minimize∑wiai・eXp［−riqi］，（8）となる．式（14）を満たす入の値を入ぁとすると，

壱＝1

几す

subjectto∑qi≦Q，qi≧0（i＝1，2，…，M），（9）！∴‥‥l（た＝1，2，…，〟），

入た＝eXpとなる．ここでび宜は，モジュール豆の重要度ヤプログラムの複雑度などを考慮した正の重みである．したがって，式（9）の制約条件式の下で，式（8）を最小化する各モジュールヘの最適テスト労力配分量ヴ‡（宜＝となる．
したがって，最適ラグランジュ乗数 入＊は，入＊∈（入1，入2，＝㍉入〟）となり，容易に入＊が求まる．よって，1，2，…，〟）を求めることが目的となる．
以上のことから，式（9）の制約条件式の下で，式（8）

テスト労力の最適配分量は，

曾‡＝maX〈0，吉（抽】1nヰを目的関数とする最適化問題を解く．ここで，制約条件である式（9）はQ以下の不等式であるが，目的関数である式（8）は凸でかつ単調減少であるので，テスト労力量を使用すればするほど良い結果を生む．よって，テスト労力量Qを全て使用することになる．
ここで，ラグランジュ乗数入を導入する．このとき，（15）となる．

4．2 信頼度制約を考慮したテスト労力配分問

題［10］，［12］4．1の基本問題に信頼度要求を付加した次のテスト労力配分問題を考える．

ム＝姜叫αi・eXpト舶修一中0）（1）〜（3）4．1の基本問題と同一．

を得る．非線形計画法の理論［11］より，この間題が最適解をもつための必要十分条件は，酌≧0であるの（4）単体テスト終了後の各モジュールの信頼度の達成値が最低限月0（0＜月0≦1）以上であるという制で，約の下で，ソフトウェア内の残存フォールト数を
器＝−び勅γ宜・eXpトr五官」＋入≧Oq宜・蟹＝0（乞＝1，2，・・・，叫できるだけ少なくするために，所与の計画値Qを各モジュールに適切に配分する．となる．さらに，A宜＝勒α宣γ豆（乞＝1，2，…，〟）とし，各モジュールに対して，次のように順序付けされてい以上のテスト労力量の最適配分問題を定式化すると，式（5）を用いてるものとする．

爪オ

Al≧A2≧…≧Aた＿1≧Aた≧Aた＋1≧…≧A〟・（12）minimie∑wiai・eXpトrwi］，

（16）

戎＝1

式（12）は，各モジュールに配分されたテスト労力量に対して，フォールトを発見しやすい順に並べてあることを意味する．ここで，Aた＞入≧Aゐ＋1のとき，式422（26）∧Jsubjectto∑qi≦Q，qi≧0（i＝1，2，・・・，M），（17）五＝1

R（s）＝eXpト7iai・eXpトriqi］s］≧Ro，© 日本オペレーションズ・リサーチ学会. 無断複写・複製・転載を禁ず.

オペレーションズ・リサーチ（18）となる（宜＝1，2，…，〟）．つまり，式（17）および式（18）当りのコストとする．このとき，式（6）から，の制約条件式の下で，目的関数である式（16）を最小

C（ア）＝ Clα（1−eXpトγⅣ（ア）j）化する各モジュールへの最適テスト労力配分量甘言（宜＝＋c2α・eXpトrⅣ（r）けc3Ⅳ（丁），（25）1，2，…，〟）を求めることが目的となる．となる．式（25）を用いて，各モジュールに対して投入

式（18）の制約条件式を変形すると，されるテスト労力と，各モジュールのテストに必要な飢≧一三1nト慧巨＝1，2，・・・，叫，（19）期待コストとの関係を定式化し，ソフトウェアシステとなる．ここで，式（19）の右辺をd電とおく．このd宜ムの単体テストに対する総期待ソフトウェアコストをは，モジュール豆に対して信頼度の達成値を最低限維導出する．そこで，各モジュール宜（宜＝1，2，・■・，〟）に持するために費やされるテスト労力量である．e宜＝配分されるテスト労力量曾豆を用いると，各モジュール

max二〔0，銭）とおくと，式（17）および式（18）の制約条

豆の単体テストにおける総期待コストは

件式は，Vi＝Clai（1−eXpトriqi］）＋c2ai・eXpトriqi］＋c3qi，（26）凡才∑甘塩≦Q，（20）

により与えられる．ここで，コストパラメータの意味

宜＝1（豆＝1，2，…，〟），窮≧e宜となる．ここで，∬i＝甘言−は次のように理解することになる．
（21）

cl：単体テスト工程において発見されるフォールト1e宜と置き直せば，式（16）一個当りの修正コスト式（18）は，c2：単体テスト工程で未発見となった（すなわち，次且オ

minimize∑wiai・eXpトrtei］expトriXi］，（22）Subject toJけ

c3：単体テストの作業に必要な単位テスト労力当りの凡才∑ネ≦Q−∑称勘≧坤＝1，2，…，叫，（23）宜＝1のテスト段階である統合テストに持ち越される）
フォールト1個当りの修正コスト（c2＞cl＞0）

壱＝1コスト（c3＞0）

宜＝1以上のことから，総期待ソフトウェアコストに基づいとなる．これは，次のような変換を行えば，4．1の基て，信頼度制約下におけるテスト労力の最適配分問題

本問題に帰着できる．

を定式化すると

几すQ←Q−∑e宣〟

minimizecl∑ai（トexpトrwi］）

言＝1（24）

Wi←Ⅶ宜・eXpトγ壱e豆］

五＝1

八丁仇←」ri

1J＋c2∑α壱・eXpト町如＋c3∑‰

4．3 コスト評価基準を考慮したテスト労力配（27）

i＝1

る＝1

凡才

分問題［13‖14］

subjectto∑qi≦Q，qi≧0（i＝1，2，・・・，M），（28）フォールトの発見・修正のために投入されるテスト

五＝1

R（s）＝eXpト7iai・eXPトriqi］s］≧Ro

労力のコスト要因を考慮して，次のテスト労力配分問（宜＝1，2，…，凡才），（29）

題を考える．となる．つまり，式（28）および式（29）の制約条件式（1）〜（3）4．1の基本問題と同一．の下で，式（27）の目的関数を最小化することが目的（4）単体テスト終了後の各モジュールの信頼度の達成となる．4．2と同様にして，d宜（＝式（19）の右辺）およ

値が最低限月0（0＜Ro≦1）以上であるという制びe宣（＝maX（0，d五））（豆＝1，2，・‥，〟）を用いると，上約の下で，総期待ソフトウェアコストを最小にす

記の配分問題は次のように書き直せる．

るために，所与の計画値Qを各モジュールに適切

凡才

minimize cl∑ai（トexp［−r7ei］expトrm］）に配分する．

豆＝1

この最適配分問題を解くために，3．の最適リリース問題におけるコストパラメータc3は単位テスト労力量

1999年8月号

JJ

ユJ＋c2∑ai・eXp［−riei］expトriXi］＋c3∑（xi＋ei），（30）宜＝1© 日本オペレーションズ・リサーチ学会. 無断複写・複製・転載を禁ず.

壱＝1（27）423

Subject to［9］Ohtera，H．and Yamada，S．：
1す八丁Cation andcontrolproblem払rsoftwaretesting−∑ネ≦Q−∑eゎ
壱＝1

Optimalallo−

resources

五＝1∬壱≧0（宜＝1，2，・・・，〟）．

，躇且β升肌β．戯肋捕物 Vol．RT39，

No・2，pp．171−176（1990）．

以上のことから，式（31）および式（32）の制約条件の下で，式（30）の目的関数を最小にする最適化問題を考えればよく，4．1の基本問題と同様にして解くこ［10］Yamada，S．，Ichimori，T．and Nishiwaki，M．＝Optimalallocation policiesfor testing−reSOurCe
based on a software reliability growth model，〟α兢emα孟宜cαgα㍑d Co†r岬視ねr肋deg肋タ，Vol．22，とができる．

No・10−12，pp・295−301（1995）．

5．むすび［11】Bazaraa，M．S．andShetty，C．M．：

Nbnlinear

PγⅦmmm五循タごmeOr封α犯dA如γ鵡mβ ，Jo‡1nWi−

本稿で議論した非線形計画問題（文献［15］も参照されたい）として定式化されたテスト労力配分問題以外にも，想定するテスト工程での管理的問題に応じて，

1ey＆Sons，NewYork（1979）．

【12］西脇正敏，山田茂，一森哲男＝ 高信頼性ソフトウ

目的関数と制約式を適当に設定して種々の問題が考え

ェア開発におけるテスト資源の最適配分問題 ，日られる［16］，［17］．また，単体テストやコンポーネント

本経営工学会誌，Vol．45，No．4，pp．325−329（1994）．
［13］田中正敏，山田茂，一森哲男‥ 納期を考慮したソレベルのテストの次段階である続合テストや総合テストに応用できる問題に拡張していく必要がある．

ウトウェア最適リリース問題に基づく最適テスト

労力配分方策 ，日本応用数理学会論文誌Vol．5，
参考文献

No・3，pp・97−107（1995）．

［1】松本正雄，小山田正史，松尾谷徹： ソフトウェア
開発・検証技法 ，電子情報通信学会，東京（1997）．

【14］Nishiwaki，M．，Yamada，S．andIchimori，T．：
Tbsting−reSOurCeallocation policies basedon an［2］山田茂，大寺浩志： ソフトウェアの信頼性〜理OPtimalsoftware release problem

論と実践的応用〜 ，ソフトリサーチ・センター，J叩0和宣cα，Vol・43，No・1，pp．91−97（1996）．

東京（1990）．

［15］Ibaraki，T．andKatoh，N．：，Mathematica

ResourTeAllocation【3］Yamada，S．，Ohtera，H．and Narihisa，H．：
Prvblems；A190rithmicApprY）aChes
Softwarereliabilitygrowthmodelswithtesting−London（1988）．

e批）rtタ ，J古見百耶Ⅶれβ．月eg五αあ豆g軸，Vol．R−35，No．1，［16］Czuchra，W．：pp．19−23（1986）．

Softwaredevelopment decisions

based on simpleresourceallocation algorithms［4］Lyu，M・R・（ed・）： ガαれdあ00たげぶ埴びα柁月eg戎αあ払ityEn9ineerin9，MITPress，，IEEEComputerSocietyPress，LosAlamitos，CA（1995）．

・Jりん′ナハ・′）√・…ナノ叩バへ／、Il ？／こ♪：・′Jこ／・−′）Jり」〟け止∩（坤／−㍑壱α肌d月■∂CんβCゐ祝geβ柁meγん肌e†も，No．10，pp．13−24（1997）．

【5】Musa，J・D，，Iannino，A．and Okumoto，K．： ［17］Kubat，P・andKoch，H．S∴

Managingtestpro−

叫仲川什J？「／ん′い／小／：．1〟・丁州Jr〃J…／．J）′†・・・／ノ・・〃〃／ノ．

CedurestoachievereliabIesoftware

Applicatiort

月egぬあ豆g軸，Vol．R−32，No．3，pp．299−303（1983）．

，McGraw−Hill，NewYork（1987）．

，1EEE耶ⅦnS．

［6］山田茂： ソフトウェア信頼性モデル一基礎と応用− ，日科技連出版社東京（1994）．
【7］Okumoto，K・and Goel，A・L・＝

OptimumreL

leasetimeforsoftwaresystemsbasedonreliability
andcostcriteria，］．SystemsandSqβware，Vol．1，

No．4，pp．315−318（1980）．
［8］山田茂，木村光宏： ソフトウェア保守コストモ
デルにおける最適リリース問題 ，オペレーショ

ンズ・リサーチ，VoIAO，No．7，pp，353−358（1995）．

424（28），© 日本オペレーションズ・リサーチ学会. 無断複写・複製・転載を禁ず.

オペレーションズ・リサーチ