出題趨勢總覽
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 或列出指定數量路徑
必背測試理論(前半部題庫)
四大測試階段
這是出現頻率最高的題庫,考法包括定義、目標或列出各階段的測試方法:
Unit Tests :測試單一模組或函式,著重內部邏輯。
Integration Tests :測試模組間互動,常考 Top-down / Bottom-up / Big-bang 等策略。
System Tests :整體系統功能、效能、安全性與文件等(五大面向)。
Acceptance Tests :使用者驗收,包含 Alpha(受控、捏造資料)與 Beta(真實環境、真實資料)。
Performance Testing 指標
若題目問效能評估指標,請寫出以下四項:
Throughput (吞吐量)
Response time (回應時間)
Memory utilization (記憶體使用率)
Input/output rates (輸入/輸出率)
Black-box vs White-box
答題要點:
Black-box testing :不看程式碼,根據程式規格(Program specifications)設計測試案例,檢驗輸入/輸出。
White-box testing :檢視原始程式碼(Program source code),設計測試以覆蓋程式路徑與判斷。
QA vs QC
答題口訣:
Quality Assurance (QA) :注重流程與預防(Process and Prevent)。
Quality Control (QC) :注重產品檢測與發現缺陷(Product and Detect)。
Test Plan & Test Cases
考它們的定義,以及由誰負責準備(通常 Test Manager / Test Team 負責 Test Plan,Testers 準備 Test Cases)。
Control Flow Graph CFG 畫法與技巧
基本元素
Statement Nodes :用方形或 S 表示,代表一般敘述或運算。連續多行可合併為一個節點以節省時間。
Decision Nodes :用菱形或 D 表示,代表 if 或 while 判斷,必畫出 True 與 False 兩條分支。
Loop Back :while 迴圈底部箭頭必須拉回到判斷節點,形成迴圈。
畫圖技巧
先草稿標出節點與箭頭,再用直尺畫清楚,避免線條交叉造成混淆。
每個決策節點標註 T 與 F 的箭頭,並在路徑列舉時明確寫出條件方向。
遇到多個 method 或 class 呼叫時,先判斷題目要 CFG(method 內流程)或 Call Graph(方法間呼叫)。
致命陷阱提醒:while 迴圈的回路若忘記拉回判斷節點,會被扣分;Decision 節點必須有兩條箭頭(T / F)。
覆蓋率 Coverage 計算與策略
三種覆蓋率直觀比喻
Statement Coverage :踩過所有地磚,每個節點至少被執行一次。
Branch Coverage :走過所有通道,每個決策的 True 與 False 都被執行一次(包含 Statement coverage)。
Path Coverage :窮舉所有路線,列出從起點到終點的所有可能完整路徑。
計算要點
Statement Coverage :找最少條路徑能覆蓋所有節點。
Branch Coverage :設計路徑以覆蓋每個決策的 T 與 F。
Path Coverage :若有 n 個獨立 if-else 分岔,可能路徑數為乘積,例如 2×2=4。若有 while
迴圈,題目通常會限制迴圈次數以避免無限路徑。
覆蓋率題的致命陷阱:忽略迴圈或把分支條件合併錯誤會導致路徑數計算錯誤。畫圖時務必標註節點順序與條件。
B4 後半部題型變化與隱藏陷阱
兩種主要變化型
The Coverage Combo
經典硬核題型(如 2017/18、2023/24):要求同時回答 Statement、Branch、Path coverage。教授解題密碼:Statement 需要最少案例(通常 1–2
條),Branch 次之,Path 因為要窮舉分岔組合案例數最多。
The Direct Path Listing
近年較常見的仁慈題型(如 2022/23、2024/25):老師直接要求列出指定數量的執行路徑(例如列出 THREE 或 FOUR execution paths)。解題密碼:根據 CFG
的菱形節點與迴圈次數,老老實實寫出 3–4 條不同路線即可拿滿分。
隱藏陷阱:Call Graph
有時題目不是要你畫 CFG,而是要你畫 Call Graph(如 2018/19 年)。區別要點:
CFG :畫同一個 method 內部的流程(if/while 等邏輯)。
Call Graph :畫不同 methods 或 classes 之間誰呼叫誰(例如 main → A.foo() → B.bar())。
實戰提示與考場作答步驟
考場作答步驟建議
先讀題幹判斷題型:CFG 還是 Call Graph?
草稿畫出節點與箭頭,標註決策條件與迴圈回路。
列出所有可能路徑,先找能覆蓋所有節點的最少路徑做 Statement coverage。
檢查每個決策的 T 與 F 是否都有被覆蓋做 Branch coverage。
若題目要求 Path coverage 或列出指定數量路徑,按 CFG 寫出完整路徑並標註條件方向。
考場常見錯誤
忘記把 while 迴圈的回路畫回判斷節點。
決策節點只畫一條箭頭或未標註 True / False。
列路徑時遺漏條件方向或節點順序錯誤。
總結與行動指示
背誦:把四大測試階段、Performance Testing 的四個指標、Black-box vs White-box、QA vs QC 背熟。
實戰:練習畫 CFG(含 if/else 與 while 回路)至少 10 題,並練習列出 Statement / Branch / Path 的測試案例。
練習兩種變化型:Coverage Combo(同時算三種覆蓋率)與 Direct Path Listing(列出指定數量路徑)。
遇到多 method 或 class 呼叫時,先判斷是否要畫 Call Graph,避免把方法間呼叫誤當作方法內流程。
考場速記口訣
CFG 畫捷運圖:方塊合併節省時間,菱形畫兩條箭頭,while 一定要拉回。
覆蓋率三句:踩地磚 Statement、走通道 Branch、列所有路徑 Path。
製作:教授 B4 歷屆題型交叉比對整理 · 建議搭配歷年 B4 題目練習以強化 CFG 畫法與覆蓋率計算