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

Android 錯誤特徵抽取查詢庫

Android Bug Pattern Extraction Library

指導教授 : 王凡

摘要


Android 佔有行動裝置作業系統 80% 的市場。然而,多數的 Android Apps 經常在未經過完整測試的情況下就先公開上架,供使用者下載。造成這 個情況的主要原因有兩個:第一,測試工程師普遍使用手動測試;第二,因為 產品更新的週期縮短,使得測試工程師沒有最新的待測程式規格書。因此,自 動化的黑箱測試技術需求逐年成長。目前既有的自動化測試案例產生工具例如 Monkey 是在畫面上的座標層級亂點。這樣的工具所產生的測試案例多數不會 導致待測物故障,因此開發者用這些工具來除錯效率非常低。反而多數的開發 者寧願選擇手動測試,而非自動測試。 我將在這篇論文中介紹 Android 錯誤類型抽取查詢庫,用來提升測試案例 中真正導致待測物故障的比例。有別於以往必須手動撰寫測試案例,這個查 詢庫接收來自以 Monkey 隨機點擊待測物的路徑 (traces),並將失敗的路徑 依錯誤類型分類。依照不同類型的錯誤進行分析搭配資料探勘、數據分析方 法,找出待測物在執行時的錯誤特徵。最後,提供使用者可導致應用程式 故障的測試案例。測試者透過 Monkey 這樣的自動化測試工具以及這篇論 文內所介紹的演算法及查詢庫,能大幅提升以測試案例幫助除錯的效率。 讓測試者不需要再自行撰寫測試案例,就能進行精準的黑箱測試。最後, 我將這一套查詢庫用在 3 個不同的 Android App 上做實驗,並提出實驗報告。

並列摘要


Android dominated the mobile operating system market with a 80% share. However, most of Android apps are not adequately tested [23] before they are released for public use. There are two paradigm shifts making present testing works are more complicated than before. First, test engineer have to deal with system under test (SUT) without source code. Second, test engineer have to test SUT without up-to-date documentation. Therefore, there is a growing need for automated testing techniques aimed at Android apps. In this thesis, we introduce an Android Bug Pattern Extraction Library. This library can cluster fail traces by different types of crash, mine association temporal rules that is the most likely one lead to crash and generating test cases by the rules. We provide a service, which make developer find existing bugs in the Apps. By this analysis library, developers can automate their testing process to reduce costs of money and time.

參考文獻


[3] Lo, David, Siau-Cheng Khoo, and Chao Liu. "Efficient mining of recurrent rules from a sequence database." Database Systems for Advanced Applications. Springer Berlin Heidelberg, 2008.
[5] Havelund, Klaus, Grigore Rosu, and Peter Norvig. "Testing linear temporal logic formulae on finite execution traces." (2001).
[7] Memon, Atif, Ishan Banerjee, and Adithya Nagarajan. "GUI ripping: Reverse engineering of graphical user interfaces for testing." 2013 20th Working Conference on Reverse Engineering (WCRE). IEEE Computer Society, 2003.
[9] Amalfitano, Domenico, et al. "MobiGUITAR--A Tool for Automated Model- Based Testing of Mobile Apps." (2014): 1-1.
[15] Choi, Wontae, George Necula, and Koushik Sen. "Guided gui testing of android apps with minimal restart and approximate learning." ACM SIGPLAN Notices. Vol. 48. No. 10. ACM, 2013.

延伸閱讀