透過您的圖書館登入
IP:18.119.139.87
  • 學位論文

嵌入式軟體分析與測試工具之研發

An Embedded Software Analysis and Testing Tool

指導教授 : 劉建宏

摘要


嵌入式軟體是嵌入式系統的核心,影響整個系統的品質與可靠性,若關鍵性的嵌入式軟體發生錯誤,有可能造成生命或財產的損失,因此有必要對嵌入式軟體進行嚴謹的測試,以確保其品質符合使用者的需求。在本篇論文中我們提出一個分析與測試輔助工具,支援嵌入式軟體的測試與除錯。該工具能夠自動擷取嵌入式軟體內硬體與作業系統的介面資訊,以及資料使用資訊,並建構函式呼叫圖(call graph)和控制流程圖(control flow graph)等測試模型,這些萃取的測試資訊與測試模型可用於分析嵌入式軟體的控制結構與資料的相依關係,以利測試案例的推導。此外,該工具可產生基本路徑來幫助進行路徑測試,提供測試腳本的編輯器,支援測試自動化、測試結果呈現及測試覆蓋率計算。另外,該工具並可產生程式相依圖(program dependence graph)及系統相依圖(system dependence graph),可用來協助嵌入式軟體除錯或程式的理解。對於測試失敗的測試案例,該工具亦可透過程式切片(program slicing)計算出可能與失敗測試案例有關的程式片段,幫助開發人員快速找到程式錯誤。此外,我們在論文中亦透過範例展示本工具可有效協助嵌入式軟體進行分析與測試。

並列摘要


Embedded software is considered the central part of an embedded system and can fundamentally affect the quality and reliability of the system. An error occurs in the critical embedded software can cause the loss of human life or damage to property. Thus, embedded software has to be tested thoroughly in order to ensure that its quality satisfies customer’s needs. In this thesis, an analysis and testing tool is presented to support the testing and debugging of embedded software. In particular, the tool can extract various test artifacts of embedded software, such as OS kernel and hardware interface signature and data usage information. It can also construct different test models including call graph and control flow graph. The extracted test artifacts and test models can be used to analyze the control structure and data dependency of embedded software for deriving test cases. Further, the tool can generate basis paths to facilitate path testing, provide an editor for writing test cases, and support automatic test execution, test result presentation, and test coverage computation. Moreover, the tool can also generate program dependence graph and system dependence graph which can be used for program debugging and understanding. The tool can also help to highlight the program statements related to a failed test case based on the notion of program slicing. This can be very valuable for locating the program errors that might cause the test case to fail. Besides, an example is provided to illustrate the effectiveness of the proposed tool for analyzing and testing embedded software.

參考文獻


[33] 王彥仁,嵌入式軟體結構分析與測試之研究,碩士論文,國立台北科技大學資訊工程研究所,台北,2009。
[35] 陳威諭,基於程式切片的嵌入式軟體分析,碩士論文,國立台北科技大學資訊工程研究所,台北,2011。
[6] Bogdan Korel and Janusz Laski, “Dynamic slicing of computer programs,” Journal of Systems and Software, vol. 13, Issue 3, 1990, pp. 187-195.
[7] Chelf, B. and Ebert, C., “Ensuring the integrity of embedded software with static code analysis,” IEEE Software, vol. 26, Issue 3, 2009, pp. 96-99.
[10] Dominik Hura and Michał Dimmich, “A method facilitating integration testing of embedded software,” Proceeding of the Ninth International Workshop on Dynamic Analysis, pp. 7-11, 2011.

延伸閱讀