B4 完整攻略

Topic 06 Software Testing Techniques。整合歷年出題趨勢、必背理論、控制流程圖 CFG 畫法、覆蓋率計算、題型變化與考場策略,幫你把 B4 的 15–20 分穩穩拿下。

出題趨勢總覽

B4 固定為「理論簡答 + 畫圖計算」的雙拼大題。前半部偏向名詞解釋與測試理論,後半部為控制流程圖 CFG 與覆蓋率計算,是近年必考的重點。

題目部分 內容重點
前半部 理論 System Testing, Performance Testing, Acceptance Testing, Black-box vs White-box, QA vs QC, Test Plan & Test Cases
後半部 CFG 與覆蓋率 畫 Control Flow Graph, 列出執行路徑, 計算 Statement/Branch/Path coverage 或列出指定數量路徑

必背測試理論(前半部題庫)

四大測試階段

這是出現頻率最高的題庫,考法包括定義、目標或列出各階段的測試方法:

Performance Testing 指標

若題目問效能評估指標,請寫出以下四項:

Black-box vs White-box

答題要點:

QA vs QC

答題口訣:

Test Plan & Test Cases

考它們的定義,以及由誰負責準備(通常 Test Manager / Test Team 負責 Test Plan,Testers 準備 Test Cases)。


Control Flow Graph CFG 畫法與技巧

基本元素

畫圖技巧

致命陷阱提醒:while 迴圈的回路若忘記拉回判斷節點,會被扣分;Decision 節點必須有兩條箭頭(T / F)。

覆蓋率 Coverage 計算與策略

三種覆蓋率直觀比喻

計算要點

Statement Coverage:找最少條路徑能覆蓋所有節點。
Branch Coverage:設計路徑以覆蓋每個決策的 T 與 F。
Path Coverage:若有 n 個獨立 if-else 分岔,可能路徑數為乘積,例如 2×2=4。若有 while 迴圈,題目通常會限制迴圈次數以避免無限路徑。
覆蓋率題的致命陷阱:忽略迴圈或把分支條件合併錯誤會導致路徑數計算錯誤。畫圖時務必標註節點順序與條件。

B4 後半部題型變化與隱藏陷阱

兩種主要變化型

  1. The Coverage Combo
    經典硬核題型(如 2017/18、2023/24):要求同時回答 Statement、Branch、Path coverage。教授解題密碼:Statement 需要最少案例(通常 1–2 條),Branch 次之,Path 因為要窮舉分岔組合案例數最多。
  2. The Direct Path Listing
    近年較常見的仁慈題型(如 2022/23、2024/25):老師直接要求列出指定數量的執行路徑(例如列出 THREE 或 FOUR execution paths)。解題密碼:根據 CFG 的菱形節點與迴圈次數,老老實實寫出 3–4 條不同路線即可拿滿分。

隱藏陷阱:Call Graph

有時題目不是要你畫 CFG,而是要你畫 Call Graph(如 2018/19 年)。區別要點:


實戰提示與考場作答步驟

考場作答步驟建議

  1. 先讀題幹判斷題型:CFG 還是 Call Graph?
  2. 草稿畫出節點與箭頭,標註決策條件與迴圈回路。
  3. 列出所有可能路徑,先找能覆蓋所有節點的最少路徑做 Statement coverage。
  4. 檢查每個決策的 T 與 F 是否都有被覆蓋做 Branch coverage。
  5. 若題目要求 Path coverage 或列出指定數量路徑,按 CFG 寫出完整路徑並標註條件方向。

考場常見錯誤


總結與行動指示

  1. 背誦:把四大測試階段、Performance Testing 的四個指標、Black-box vs White-box、QA vs QC 背熟。
  2. 實戰:練習畫 CFG(含 if/else 與 while 回路)至少 10 題,並練習列出 Statement / Branch / Path 的測試案例。
  3. 練習兩種變化型:Coverage Combo(同時算三種覆蓋率)與 Direct Path Listing(列出指定數量路徑)。
  4. 遇到多 method 或 class 呼叫時,先判斷是否要畫 Call Graph,避免把方法間呼叫誤當作方法內流程。
考場速記口訣
CFG 畫捷運圖:方塊合併節省時間,菱形畫兩條箭頭,while 一定要拉回。
覆蓋率三句:踩地磚 Statement、走通道 Branch、列所有路徑 Path。