プロジェクトマネージャ 2009年 午前2 問01
問題文
次のシステム開発において、コードインスペクションを行うことによって期待できる効果(削減できる時間)は何時間か。ここで、NCSSはソースコードの注釈を除いた文の個数とする。また、バグ発見率発見したバグ数すべてのバグ数とする。
・システムの規模:6,000NCSS
・システムに存在するバグ数の推定値:1,000NCSS当たり5件
・バグ発見率:コードインスペクションを行った場合、バグ発見率は90%であり、残りのバグは単体テスト以降で発見される。コードインスペクションを行わなかった場合、すべてのバグは単体テスト以降で発見される。
・コードインスペクションに要する時間:1,000NCSS当たり4時間
・コードインスペクションでバグが発見された場合のバグ1件当たりの修復時間:1時間
・単体テスト以降でバグが発見された場合のバグ1件当たりの修復時間:5時間
選択肢
ア:66
イ:84(正解)
ウ:99
エ:108
🔒 解説は解答すると表示されます
コードインスペクションの時間削減効果【午前2解説】
正解の理由
コードインスペクションを行わない場合、推定されるバグ30件すべてが単体テスト以降に発見されるため、修復時間は合計150時間です。
一方、コードインスペクションを行う場合は、インスペクションの実施とバグの修復に合計66時間かかります。したがって、削減できる時間は次のとおりです。
よって、削減できる時間はイの84時間です。
解法ステップ
-
システムに存在するバグ数を求めます。
-
コードインスペクションを行わない場合の修復時間を求めます。バグ30件すべてを単体テスト以降で修復するため、1件当たり5時間として、
-
コードインスペクションにかかる時間を求めます。
-
インスペクションで発見するバグ数と、後工程に残るバグ数を求めます。発見するバグ数は、全体の90%です。後工程に残るバグ数は、
-
インスペクションを行った場合の合計時間を求めます。インスペクションで見つかった27件は1件当たり1時間、後工程に残った3件は1件当たり5時間で修復します。
-
インスペクションによって削減できる時間を求めます。
選択肢別の誤答解説
-
ア:66時間
コードインスペクションを行った場合の合計時間です。削減時間を求めるには、インスペクションを行わない場合の150時間との差を取る必要があります。 -
イ:84時間
インスペクションを行わない場合の150時間から、行った場合の66時間を引いた値です。求める削減時間に当たります。 -
ウ:99時間
150時間から、インスペクションの24時間と、インスペクションで発見したバグの修復時間27時間だけを引いた値です。後工程に残る3件の修復時間15時間を考慮できていません。 -
エ:108時間
インスペクションで発見した27件について、修復時間が1件当たり4時間短くなることから、 と計算した値です。インスペクション自体にかかる24時間と、後工程に残る3件の修復時間を差し引いていません。
よくある誤解
-
バグ発見率90%を、修復時間の削減率と捉えてしまう
90%は、インスペクションで発見されるバグの割合です。時間の削減率ではありません。 -
インスペクションの所要時間を計算に入れ忘れる
早い段階でバグを発見できても、インスペクションの実施にも時間がかかります。削減時間を求める際は、その時間も含めて比較します。 -
後工程に残るバグの修復時間を無視する
発見率が100%ではないため、残りのバグは単体テスト以降で修復します。その修復時間も合計時間に加えます。
補足コラム
コードインスペクションは、ソースコードをレビューして、テスト実行前に欠陥を発見する手法です。この問題では、バグを早期に発見すると修復時間が1件当たり5時間から1時間に短縮される一方、インスペクション自体に24時間かかります。
そのため、比較では「インスペクションなしの総時間」と「インスペクションありの総時間」をそれぞれ求め、最後に差を取るのが確実です。
FAQ
Q. NCSSはソースコードの行数と同じですか?
A. 同じとは限りません。この問題では、注釈を除いたソースコードの文の個数を指します。計算では、問題文で与えられた6,000 NCSSをそのまま使います。
A. 同じとは限りません。この問題では、注釈を除いたソースコードの文の個数を指します。計算では、問題文で与えられた6,000 NCSSをそのまま使います。
Q. 90%のバグをインスペクションで発見するなら、残りは何件ですか?
A. 全体のバグ数30件の10%なので、3件です。この3件は単体テスト以降で発見され、1件当たり5時間で修復します。
A. 全体のバグ数30件の10%なので、3件です。この3件は単体テスト以降で発見され、1件当たり5時間で修復します。
関連キーワード: コードインスペクション、NCSS、バグ発見率、レビュー工数、修復時間

\ せっかくなら /
プロジェクトマネージャを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

