軟體開發與專案管理

在已知可正常運作的韌體版本之後有1,000個提交,最新的提交會發生缺陷。假設缺陷是由某1個提交引入,其後的提交全都會發生。像 git bisect 那樣以二分搜尋找出原因提交時,需要建置並測試的次數最多為下列何者?

  1. A3次
  2. B10次
  3. C500次
查看答案與解析

正確答案:B. 10次

原因的候選是1,000個提交中的某一個,每測試一次中間的提交,就能把候選減半。由於 2¹⁰ = 1,024 ≥ 1,000,最多10次測試就能確定是哪一個。若從舊的開始一個一個測試,最差要999次、平均也約500次,因此二分搜尋的效果很大。要使用這個方法,重要的是不要把損壞狀態的提交放進共用分支,以便任何提交都能建置與測試。

  • A. 這是從1,000 = 10³ 以底數10的對數來考量的值。每次測試只能把候選減半,因此底數是2。
  • B. 正確。由於 2¹⁰ = 1,024 ≥ 1,000,10次就能確定。
  • C. 這接近從舊的開始一個一個測試時的平均次數,二分搜尋所需的次數少得多。
練習這個領域 前往領域頁面

相關計算工具

軟體開發與專案管理的其他題目

  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 公式求得的所需天數期望值為下列何者?