ソフトウェア開発とプロジェクト管理

正しく動くことが分かっているファームウェアの版の後に1,000個のコミットがあり、最新のコミットでは不具合が起こる。不具合はある1つのコミットで入り、それ以降のコミットではすべて起こるとする。git bisect のように二分探索で原因のコミットを特定するとき、ビルドしてテストする回数の最大値はどれか。

  1. A3回
  2. B10回
  3. C500回
答えと解説を見る

正解:B. 10回

原因の候補は1,000個のコミットのどれかで、真ん中のコミットを試すたびに候補を半分に絞れます。2¹⁰ = 1,024 ≥ 1,000 なので、最大で10回のテストで1つに特定できます。古い方から1つずつ試すと最悪で999回、平均でも約500回かかるので、二分探索の効果は大きくなります。この方法を使うには、どのコミットでもビルドとテストができるように、壊れた状態のコミットを共有のブランチに入れないことが大切です。

  • A. 1,000 = 10³ から、底を10とした対数で考えた値です。1回のテストで候補は半分にしか絞れないので、底は2です。
  • B. 正しい。2¹⁰ = 1,024 ≥ 1,000 なので、10回で特定できます。
  • C. 古い方から1つずつ試したときの平均に近い回数で、二分探索ではずっと少なくなります。
この分野を解く 分野ページへ

関連する計算ツール

ソフトウェア開発とプロジェクト管理の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

ソフトウェア開発とプロジェクト管理のほかの問題

  1. プロジェクトの成果物と作業を階層的に分解したWBSで、最も下の階層にあり、所要期間やコストを見積もって担当者を割り当てる単位はどれか。
  2. 結合点を①〜⑥とし、作業を「名前: 始点→終点、所要日数」で示すと、A: ①→②、6日、B: ①→③、4日、C: ②→④、4日、D: ③→⑤、4日、E: ④→⑥、2日、F: ⑤→⑥、3日、ダミー作業: ②→③(所要日数0)となるアローダイアグラムがある。プロジェクト全体の最短の所要日数はどれか。
  3. 作業と所要日数、先行作業が、A: 4日(先行作業なし)、B: 2日(なし)、C: 3日(A)、D: 2日(B)、E: 5日(C)、F: 4日(C と D)、G: 2日(F)のプロジェクトがある。ほかの作業はできるだけ早く始めるとき、作業Bの開始を遅らせても全体の所要日数が延びない最大の日数はどれか。
  4. 作業と所要日数、先行作業が、A: 6日(なし)、B: 4日(なし)、C: 4日(A)、D: 4日(A と B)、E: 2日(C)、F: 3日(D)で、全体の所要日数が13日のプロジェクトがある。各作業を1日短縮するのにかかる追加の費用は、A が30万円、B が5万円、C が10万円、D が20万円、E が8万円、F が25万円である。全体の所要日数を1日短縮するのに、追加の費用が最も少ない方法はどれか。
  5. ある作業の所要日数を三点見積もりで見積もったところ、楽観値が4日、最可能値が7日、悲観値が16日だった。PERTの式で求めた所要日数の期待値はどれか。