軟體開發與專案管理
對韌體的原始碼使用靜態分析工具時,在不執行程式的情況下最容易找出的問題為下列何者?
- A使用者真正需要的功能,從需求定義書中遺漏了
- B參照未初始化變數的路徑,或可能存取超出陣列範圍的位置
- C量產的部分電路板因焊接不良而使訊號中斷
查看答案與解析
正確答案:B. 參照未初始化變數的路徑,或可能存取超出陣列範圍的位置
靜態分析在不執行原始碼的情況下,檢查語法、控制流程與資料流程,找出參照未初始化的變數、存取超出陣列範圍、可能參照空指標、違反程式撰寫規範(如嵌入式 C 語言使用的 MISRA C)等問題。它也能找出測試不易走到之路徑上的問題,但也會有誤報,因此結果要由人確認。需求遺漏要靠審查或與使用者確認,電路板焊接不良則要靠製造時的檢查或實機測試找出,分析原始碼無法得知。
- A. 需求遺漏要靠需求定義的審查或與使用者確認來發現,分析程式碼無法得知。
- B. 正確。檢查控制流程與資料流程,不必執行就能找出。
- C. 這是硬體的製造不良,要靠製造時的檢查或實機測試找出。