博碩士論文 100522052 詳細資訊

以作者查詢圖書館館藏 以作者查詢臺灣博碩士 以作者查詢全國書目 勘誤回報 、線上人數:22 、訪客IP:
姓名 潘韋成(Wei-Cheng Pan)  查詢紙本館藏   畢業系所 資訊工程學系
(Combine Internal Test Oracles and Capture/Replay GUI Testing for Precise Replay and Higher Validation Power)
★ 使用PolyTraceAid進行程式文件覆蓋率計算與分群★ Support Visual Debugging in Electronic Design Automation Software by xDIVA
★ 設計與實作視覺化追蹤點以支援xDIVA進行程式動畫★ Dissimilarity of Polymorphic Execution Sequences
★ The Analysis of Capturing System Test Cases into Unit Test Cases★ 動態延遲載入的測試覆蓋率
★ 建構於JMeter之自動化分散式壓力測試架構★ 模組化因修改具耦合的程式碼所伴隨的成本漣漪
★ Design a Pluggable Architecture for Layout Algorithms in xDIVA★ 重複性程式碼檢測之外掛模組設計
★ Visual Perception of Realistic Rendering in xDiva 3D Environment★ Why and When GUI Test Automation Fails in Practice and Our Solutions to The Problem
★ Why and When GUI Test Automation Fails in Practice and Our Solutions to The Problem★ Very High Precision Optical Character Recognition For Clean-Fixed-Sized True Type Characters
★ Enhance Korat by Branch Capability in Capture/Replay User Scenario to Industrial Test Case Automation★ implement race detection functionality inXThreadDebugger base on pluggable modulesystem
檔案 [Endnote RIS 格式]    [Bibtex 格式]    [相關文章]   [文章引用]   [完整記錄]   [館藏目錄]   [檢視]  [下載]
  1. 本電子論文使用權限為同意立即開放。
  2. 已達開放權限電子全文僅授權使用者為學術研究之目的,進行個人非營利性質之檢索、閱讀、列印。
  3. 請遵守中華民國著作權法之相關規定,切勿任意重製、散佈、改作、轉貼、播送,以免觸法。

摘要(中) 由於圖形使用者界面(Graphical User Interface, GUI)應用程式的種類非常複雜多變,為它們實施測試自動化相當困難,而有關GUI應用程式的測試方法之研究已經行之有年,其中較廣為使用的即是Capture-and-Replay方法。Capture-and-Replay方法可分為非侵入式與侵入式兩種。非侵入式方法是以模擬作業系統的操作資訊記錄操作過程,因此不需要修改待測程式;而侵入式方法則相反,是在待測程式內部插入額外程式碼記錄操作訊息。非侵入式的實作方法非常適合錄製與重現視窗操作,MIT實驗室的Sikuli即屬此類。它能夠撰寫腳本找尋畫面上的視窗元件位置,並模擬滑鼠與鍵盤操作。但因為此作法通常需要在作業系統插入hook以攔截滑鼠與鍵盤等輸入事件,若操作內容有頻繁的拖曳事件則很容易影響到軟體的效能,導致重播失敗,甚至可能一開始就無法錄製。這個問題在近期逐漸興起的多點觸控行動裝置應用程式等需要大量拖曳操作的程式又更顯重要。若要避免效能上的損失,在待測程式內部插入程式碼記錄輸入流程則是另一種可行的方式,然而若需要插入大量程式碼,容易對開發人員造成負擔。此外,在重播過程中的test oracle也是測試自動化時相當重要,卻變化很大的環節。根據不同的狀況,測試系統可能需要偵測外觀變化,或是觀測內部變數狀態來判斷待測程式的正確性,然而非侵入式的作法無法得知待測程式的內部狀態,侵入式做法又剛好相反,很難感測GUI程式的外觀變化。最後,現今的GUI程式大多採事件驅動(event driven)設計,事件之間經常有先後關係,重播時不可隨意變更順序,但也有些事件是交由多執行緒之間同時觸發,重播時可或不可忽略順序的變動。此種不確定性又提高了測試系統的設計難度。本論文將會探討各種Capture-and-Replay在實際應用上的優缺點,並融合它們各自的優點,以Sikuli為主,插入程式碼為輔,建立一個盡可能通用的測試自動化工具及函式庫──xTitan。
摘要(英) In general, it is difficult to apply test automation to GUI(Graphical User Interface) applications, because they are often too complicated. Many testing approachs for GUI applications has been developed in these days, and one of the most widespread approach is Capture-and-Replay. Capture-and-Replay can be categorized into two approaches: intrusive approach and non-intrusive approach. Non-instrusive approach is very suitable for widget-based GUI, where the testing tool Sikuli[1] from MIT that is improved by this thesis is belonged to this category. Sikuli can detect widget positions from screen by giving clipped images and simulate mouse or keyboard actions to the widgets captured by these images. To archieve so, most non-intrusive approachs inject hooks into operating system’s DLLs so that the mouse and keyboard events can be intercepted independently from the system under test. However, this approach impacts the performance of SUT(software under testing) significantly, particularly in while users do continuous drag-and-drop operations. The impact causes the SUT to run slower and behave differently from normal runs, and then fail the replay of test cases. This problem is now more critical on mobile applications, because multi-touch drag and move become the common input events to these applications. To avoid such a problem, the intrusive approach in [2] provides an alternative, but its drawback is that it needs to be done by inserting code in the source code.
Another key factor in capture-and-replay test automation is the test oracles. An automatic test run needs test oracle to detect anomalies of visual effect or internal. How to derive good test oracles for both cases remain a difficult issue. At last, most of GUI applications are event-driven, some events may have dependency and some events could be concurrently executed at same time. A test automation system should be able to distinguish when should wait for next event and when should tolerate event interleaving. In this thesis, all these problems are studied and addressed. A prototype tool, xTitan, is implemented to demonstrate the results of this study.
關鍵字(中) ★ 測試自動化
★ 錄製重播
★ 圖形介面測試
關鍵字(英) ★ Test Automation
★ Capture Replay
★ GUI Testing
論文目次 一、 緒論 1
二、 研究背景 3
2-1 相關研究 3
2-2 Model-based Approach 4
2-3 Capture-and-Replay 5
2-3-1 Non-intrusive Capture-and-Replay 6
2-3-2 Intrusive Capture-and-Replay 7
2-4 綜合分析 8
2-4-1 如何模擬、再現介面操作 8
2-4-2 Test Oracle 9
2-4-3 Multi-threading issues 9
三、 Capture-and-Replay的探討 10
3-1 Non-intrusive Capture-and-Replay 10
3-2 侵入式Capture-and-Replay 11
3-2-1 於事件處理函式錄製輸入數據 11
3-2-2 重播時的物件序列化 13
3-2-3 Assertion power 14
3-2-4 Assertion problem in multi-threading 14
3-3 侵入式與非侵入式做法的結合 15
四、 xTitan and Spy library 17
4-1 Spy Library 20
4-1-1 spyRegisterObject 21
4-1-2 spyInput 21
4-1-3 spyCheck 21
4-1-4 spyAsyncCheck 22
4-2 Sikuli Agent 22
4-3 測試系統主程式 23
五、 實驗 25
5-1 實驗目的與方法 25
5-2 UML editor 25
5-3 音訊轉檔工具 30
5-4 xDiva 33
六、 結論 39
參考文獻 41
參考文獻 [1] T. Yeh, T.-H. Chang, and R. C. Miller, "Sikuli: using GUI screenshots for search and automation," UIST, ACM, 2009, pp. 183-192.
[2] C.-H. Hsueh, Y.-P. Cheng, and W.-C. Pan, "Intrusive Test Automation with Failed Test Case Clustering," APSEC, IEEE, 2011, pp. 89-96.
[3] I. Schieferdecker, “Model-Based Testing,” Software, IEEE, vol. 29, no. 1, pp. 14-18, 2012.
[4] Q. Siyou, and J. Fan, "An event interaction structure for GUI test case generation." pp. 619-622.
[5] A. Memon, I. Banerjee, and A. Nagarajan, "What test oracle should I use for effective GUI testing?." pp. 164-173.
[6] Abbot. "Abbot Java GUI Test Framework," http://abbot.sourceforge.net/doc/overview.shtml.
[7] eggPlant, “eggPlant - QA automation for productive testing.,” 2013.
[8] GTT. "GTT – GUI testing tool," http://gtt.sourceforge.net/.
[9] Selenium. "Selenium software testing framework," http://docs.seleniumhq.org/.
[10] SWTBot. "SWTBot," http://www.eclipse.org/swtbot/.
[11] R. Reda. "robotium," http://code.google.com/p/robotium/.
指導教授 鄭永斌(Yung-Pin Cheng) 審核日期 2013-7-24
推文 facebook   plurk   twitter   funp   google   live   udn   HD   myshare   reddit   netvibes   friend   youpush   delicious   baidu   
網路書籤 Google bookmarks   del.icio.us   hemidemi   myshare   

若有論文相關問題,請聯絡國立中央大學圖書館推廣服務組 TEL:(03)422-7151轉57407,或E-mail聯絡  - 隱私權政策聲明