English  |  正體中文  |  简体中文  |  全文筆數/總筆數 : 78818/78818 (100%)
造訪人次 : 34708421      線上人數 : 861
RC Version 7.0 © Powered By DSPACE, MIT. Enhanced by NTU Library IR team.
搜尋範圍 查詢小技巧:
  • 您可在西文檢索詞彙前後加上"雙引號",以獲取較精準的檢索結果
  • 若欲以作者姓名搜尋,建議至進階搜尋限定作者欄位,可獲得較完整資料
  • 進階搜尋


    請使用永久網址來引用或連結此文件: http://ir.lib.ncu.edu.tw/handle/987654321/61026


    題名: Combine Internal Test Oracles and Capture/Replay GUI Testing for Precise Replay and Higher Validation Power
    作者: 潘韋成;Pan,Wei-Cheng
    貢獻者: 資訊工程學系
    關鍵詞: 測試自動化;錄製重播;圖形介面測試;Test Automation;Capture Replay;GUI Testing
    日期: 2013-07-24
    上傳時間: 2013-08-22 12:10:06 (UTC+8)
    出版者: 國立中央大學
    摘要: 由於圖形使用者界面(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.
    顯示於類別:[資訊工程研究所] 博碩士論文

    文件中的檔案:

    檔案 描述 大小格式瀏覽次數
    index.html0KbHTML703檢視/開啟


    在NCUIR中所有的資料項目都受到原著作權保護.

    社群 sharing

    ::: Copyright National Central University. | 國立中央大學圖書館版權所有 | 收藏本站 | 設為首頁 | 最佳瀏覽畫面: 1024*768 | 建站日期:8-24-2009 :::
    DSpace Software Copyright © 2002-2004  MIT &  Hewlett-Packard  /   Enhanced by   NTU Library IR team Copyright ©   - 隱私權政策聲明