標題: | 應用目標導引與隨機測試之特定程式狀態產生器 Target Directed Random Testing for Feasible State Generation |
作者: | 劉彥佑 黃世昆 Shih-Kun Huang 資訊科學與工程研究所 |
關鍵字: | 軟體測試;測試資料生成;Software Testing;Test Case Generation |
公開日期: | 2006 |
摘要: | 為了增強軟體的強健度,找出軟體的錯誤行為一直是軟體工程領域裡面一個相當重要的課題。在過去已有許多這方面的研究使用靜態或動態程式分析的技術。然而,有時靜態分析回報的錯誤不一定在執行時期會發生,而動態分析通常無法找出全部潛在的錯誤。在本論文中,我們實做一個測試平台,此平台在執行被測程式的過程中,可以同時蒐集目前執行路徑上的條件限制,然後利用這些條件限制來自動地產生測試資料,以覆蓋不同的執行路徑。由於我們的測試平台可以自動地產生高覆蓋率的測試資料,因此我們的方法理論上可以找出全部潛在的錯誤。另一方面,因為我們有實際執行被測程式,所以回報的錯誤都是在執行時期真實會發生的。在本論文中,我們使用此平台來檢測一個由靜態分析工具回報的程式狀態所隱含的臭蟲,是否可能在執行時期發生。此平台會自動地嘗試產生一組測試資料來觸發目標的程式狀態,或是回報目標的程式狀態不可能在執行時期觸發。 Locating software bugs is an important topic in software engineering for enhancing software robustness. Research topics in these areas with static analysis or dynamic analysis have been proposed. However, the diagnosis of static analysis usually has false positive, and dynamic analysis usually has false negative. We implement a testing framework which runs a tested program and collects symbolic constraints along its execution path. It can automatically generate test cases to cover different execution paths. In theory the diagnosis of our testing framework has no false negative because it can automatically produce test cases with high coverage. On the other hands, the diagnosis of our testing framework has no false positive because we concretely run the tested program. In this thesis, we use this tool to check whether or not a program state with potential bug reported by a static analysis tool is feasible in run time. The tool automatically tries to find a test case which can trigger the target program state, or report the target program state is infeasible. |
URI: | http://140.113.39.130/cdrfb3/record/nctu/#GT009455541 http://hdl.handle.net/11536/82064 |
Appears in Collections: | Thesis |
Files in This Item:
If it is a zip file, please download the file and unzip it, then open index.html in a browser to view the full text content.