( 您好!臺灣時間:2021/08/05 23:16
字體大小: 字級放大   字級縮小   預設字形  
回查詢結果 :::


研究生(外文):Yi-Ching Chen
論文名稱:一個支援元件抽象化的Android GUI測試工具
論文名稱(外文):An Android GUI Testing Tool with Component Abstraction
指導教授(外文):Woei-Kae Chen
口試委員(外文):Chien-Hung LiuYung-Pin Cheng
外文關鍵詞:Android testingGUI testingComponent abstraction
  • 被引用被引用:0
  • 點閱點閱:231
  • 評分評分:
  • 下載下載:0
  • 收藏至我的研究室書目清單書目收藏:0
現有的Android測試工具大部分是利用撰寫程式碼的方式來製作測試腳本(Test Script),必須花費大量時間學習並撰寫測試碼,若使用錄影播放功能來編輯腳本則必須先實作程式功能才能夠進行腳本的錄製,不符合先行測試的概念,且遇到圖形介面更動的情形時,舊的腳本可能需要花很多成本來維護。本論文提出一套支援元件抽象化(Component Abstraction)的Android GUI測試工具。測試人員在PC端建立待測程式的巨集結構(Macro Structure)並編輯腳本,即可將腳本傳至Android裝置上進行自動化測試。測試人員可以藉由巨集結構重複利用已經撰寫過的腳本,減少編輯類似腳本所需花費的時間,或維護腳本時所需付出的成本。本論文以實際的Android App檢驗所提出的工具是否可實際提升Android GUI測試腳本的可讀性及可維護性。

Most current Android testing tools use source code to construct test scripts, which requires a great deal of learning and construction time. If the record/playback technique is used to create test scripts, program functionalities need to be implemented first in order to record the script. This contradicts the concept of test-driven development. Plus, if the GUI is modified, the test script may need considerable amount of effort to maintain. This thesis proposes an Android testing tool that supports component abstraction. Testers only need to construct the macro structure of the application under test from the PC-end and edit the script, which can then be transferred onto an Android device for automatic testing. Testers can reuse the scripts already written through the macro structure, which reduces the time and cost to maintain the scripts. In addition, this thesis examines whether the proposed tool really increases the readability and maintainability of Android GUI test scripts using a real Android App.

目 錄

摘 要 i
致 謝 iii
目 錄 iv
圖目錄 vi
表目錄 ix
第一章 緒論 1
1.1 研究動機及目的 1
1.2 研究的假設前提 3
1.3 論文組織架構 3
第二章 相關研究 4
2.1 自動化GUI Testing 4
2.2 Keyword-driven Testing 5
2.3 Android GUI Testing 6
2.4 Android GUI Testing相關工具 6
2.4.1 Android Testing Framework 6
2.4.2 Robotium 8
2.4.3 FoneMonkey 9
2.5 GTT4 11
第三章 應用元件抽象化在Android GUI測試 13
3.1 Android 應用程式與元件抽象化 13
3.2 巨集結構 15
3.3 元件抽象化方法 16
3.4 元件抽象化的優點 19
第四章 Android4GTT系統設計與實作 23
4.1 Use Case 23
4.2 System Architecture 24
4.3 支援的Android元件及事件 25
4.4 AndroidComponent類別 27
4.5 Plug-in Extensions 28
4.5.1 Android Script Model 28
4.5.2 Android Editor 29
4.6 Android4GTT Agent 30
第五章 Android4GTT功能說明與範例 31
5.1 安裝Android4GTT 31
5.2 設定Android測試專案 32
5.2.1 開啟測試專案 32
5.2.2 修改MacroEntryPoint.java 34
5.3 建立巨集結構 36
5.3.1 加入巨集元件 36
5.3.2 加入基本元件 39
5.3.3 加入巨集事件 42
5.4 編輯巨集腳本 46
第六章 結論 52
參考文獻 57


[1]Gerrard, Paul, "Testing GUI Applications," EuroSTAR’97, pp 24-28 November 1997, Edinburgh UK.
[2]Kepple, Laurence, "The Black Art of GUI Testing automated testing in an event-driven environment," Dr. Dobb’s Journal, pp 40-46, Feb 1994
[3]Linz, Tilo; Daigl, Matthias, "How to Automate Testing of Graphical User Interface," March. 1, 2007 [Online]. Available: http://www.imbus.de
[4]Linz, Tilo; Daigl, Matthias; "GUI Testing Made Painless," March. 1, 2007 [Online]. Available: http://www.imbus.de
[5]Memon, A.M.; Pollack, M.E.; Soffa, M.L, "Hierarchical GUI test case generation using automated planning," Software Engineering, IEEE Transactions on , Vol. 27, Issue 2 , pp 144-155, Feb. 2001.
[6]Newmarch, J. , "Testing Java Swing-based applications," In the 31st Internation Conference on Technology on Object-Oriented Language and Systems, Nanjing, China, September 1999.
[7]Ostrand, Thomas; Anodidi, Aaron; Foster, Herber; Goradia, Tarak, "A Visual Test Development Environment for GUI Systems," ISSTA 98 Clearwater Beach Florida USA
[8]Walworth, Alan, "Java GUI Testing automated testing is as problematic as it is essential," Dr. Dobb''s
[9]Kent Beck, Test-Driven Development By Example, New Yotk: Addison Wesley, 2002, November 08
[10]Shehady, Ricard; Siewiorek, Daniel, "A Method to Automate User Interface Testing Using Variable Finite State Machines," Proc. of the 27th Int. Symposium on Fault Tolerant Computing, Seattle, WA, pp80-88, June, 1997.
[11]Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Design Patterns, New Yotk: Addison Wesley, 1995, January 15
[12]IEEE Standard for Software Test Documentation, IEEE Std 829, 09/1998.
[13]Charles Lowell, "Jeremy Stell-Smith Successful Automation of GUI Driven Acceptance Testing", Lecture Notes in Computer Science, Springer-Verlag Heidelberg, Vol. 2675, pp. 331-333, 2003.
[14]Atif M. Memon, A Comprehensive Framework for Testing Graphical User Interface, Ph.D. Thesis, University of Pittsburgh, PA, July 2001.
[15]Atif M. Memon, "GUI Testing : Pitfalls and Process", IEEE Computer, Vol. 35, Issue 8, Aug. 2002, pp. 87-88
[16]Atif M. Memon, Pollack, M.E.; Soffa, M.L, "Hierarchical GUI test case generation using automated planning", IEEE Transactions on Software Engineering, Vol. 27, No. 2 , pp 144-155, 2001.
[17]Atif M. Memon, Mary Lou, Soffa Martha, and E. Pollack, “Coverage criteria for GUI testing,” Proceedings of the 8th European software engineering conference held jointly with 9th ACM, Sept. 2001. pp. 256-267.
[18]Atif M. Memon, Ishan Banerjee, and Adithya Nagarajan, "What Test Oracle Should I Use for Effective GUI Testing," Proceedings of the 18th IEEE International Conference on Automated Software Engineering (ASE’03), 2003.
[19]Atif M. Memon, Adithya Nagarajan, Qing Xie, “Automating regression testing for evolving GUI software,” Journal of Software Maintenance Vol. 17, Issue 1, pp. 27-64, 2005.
[20]Atif M. Memon and Mary Lou Soffa, "Regression Testing of GUIs," ESEC/FSE''03, September 1-5, pp. 118-127, 2003, Helsinki, Finland. Copyright 2003 ACM.
[21]Atif M. Memon, "A Comprehensive Framework for Testing Graphical User Interface," Ph.D. Thesis, University of Pittsburgh, PA, July 2001.
[22]Atif M. Memon, Adithya Nagarajan, Qing Xie, “Automating regression testing for evolving GUI software,” Journal of Software Maintenance Vol. 17, Issue 1, pp. 27-64, 2005.
[23]Qing Xie and Atif Memon, “Designing and Comparing Automated Test Oracles for GUI-based Software Applications,” ACM Transactions on Software Engineering and Methodology, Vol. 16, no. 1, 2007, 4 pp., ACM Press.
[24]Qing Xie and Atif M. Memon, “Rapid "Crash Testing" for Continuously Evolving GUI-Based Software Applications,” International Conference on Software Maintenance 2005 (ICSM''05), pp. 473-482, Sept. 25-30, 2005
[25]John Steven, "jRapture: A Capture/Replay Tool for Observation-Based testing", Proceedings of the Internationaal Symposium on Software Analysis, Vol. 25, Issue 5. pp. 158-167. 2000.
[26]Yanhong Sun and Edward L. Jones, "Specification-Driven Automated Testing", Proceedings of the 42nd annual Southeast regional conference, Alabama.USA. pp 140-145, April 2-3, 2004.
[27]Johan Andersson, Geoff Bache, “The Video Store Revisited Yet Again: Adventures in GUI Acceptance Testing,” Lecture Notes in Computer Science, Springer-Verlag Heidelberg, Vol. 3092, pp. 1-10, 2004.
[28]S. Dutta, “Abbot-A Friendly JUnit Extension for GUI Testing,” Java Developer Journal, April 2003, pp. 8-12.
[29]K. Beck, Test-Driven Development by Example, Addison Wesley, 2002.
[30]Woei-Kae Chen, Tung-Hung Tsai, and Hung-Hsing Chao, “Integration of Specification-based and CR-based Approaches for GUI Testing,” Proceeding of the IEEE 19th International Conference on Advanced Information Networking and Applications (AINA 2005), pp. 967-972, 2005.
[31]R.V. Binder, “Design for Testability in Object-Oriented Systems,” Communications of the ACM, volume 37, No 9, pp. 87-101, 1994.
[32]Andrew Harbert﹐William Lively﹐and Sallie Sheppard “A Graphical Specification System for User-Interface Design“﹐Texas A&M University.IEEE Software archive Volume 7,Issue 4 (July 1990) Pages: 12 – 20 Year of Publication:1990
[33]White, L. Almezen, H. Alzeidi, N. “User-Based Testing of GUI Sequences and Their Interaction”Software Reliability Engineering, 2001. ISSRE 2001. Proceedings. 12th International Symposium on 27-30 Nov. 2001
[34]White, L. “Generating Test Cases for GUI Responsibilities Using Complete Interaction Sequences“ Almezen,H.Software Reliability Engineering, 2000. ISSRE 2000. Proceedings. 11th International Symposium on 8-11 Oct. 2000
[35]Belli, F. “Finite state testing and analysis of graphical user interfaces “Software Reliability Engineering, 2001. ISSRE 2001. Proceedings. 12th International Symposium on Publication Date: 27-30 Nov. 2001 On page (s): 34 – 43
[36]David LEE, “Principles and methods of testing finite state machines-a survey“ Proceedings of the IEEE Aug 1996 Volume: 84, Issue: 8 On page(s): 1090-1123
[37]Bernhard K. Aicherning and Percy Antonio Pari Salas, “Test Case Generation by OCL Mutation and Constraint Solving”, Proceedings of QSIC pp 64-71, IEEE 2005.
[38]Rick Mugridge, Ward Cunningham, Fit for Developing Software: Framework for Integrated Tests, Publisher: Prentice Hall PTR, 2005
[39]Laurie Williams, Dright Ho, Ben Smith and Sarah Heckman, Acceptance Testing in Eclipse Using FIT, http://agile.csc.ncsu.edu/SEMaterials/tutorials/fit/
[40]Woei-Kae Chen, Zheng-Wen Shen, Che-Ming Chang Secure System Integration and Reliability Improvement, 2008. SSIRI ''08. Second International Conference, Publication Date: 14-17 July 2008, On page(s): 128-134
[41]Filippo Ricca, Massimiliano Di Penta, Marco Torchiano, Paolo Tonella, Mariano Ceccato, Corrado Aaron Visaggio: Are fit tables really talking?: a series of experiments to understand whether fit tables are useful during evolution tasks. ICSE 2008: 361-370
[42]Cuixiong Hu, Iulian Neamtiu, “Automating GUI Testing for Android Applications,” Proceedings of the 6th International Workshop on Automation of Software Test (AST ’11), pp. 77-83, 2011.
[43]Matthew Robinson and Pavel A Vorobiev, Swing, Manning Publications, 1999. March. 1, 2007 [Online]. Available: http://www.cscc.de/books/swingbook/
[44]Marathon: an open source Java GUI Test Tool focuses on end-user testing, March. 1, 2007 [Online]. Available: http://marathonman.sourceforge.net/
[45]GTT, March. 1, 2007 [Online]. Available: http://www.ntut.edu.tw/~wkchen/gtt/
[46]Android, http://www.android.com/
[47]Android Market, https://market.android.com/
[48]Android SDK, http://developer.android.com/sdk/index.html
[49]Android Testing Framework, http://developer.android.com/guide/topics/testing/testing_android.html
[50]Eclipse, http://www.eclipse.org/
[51]SWT - The Standard Widget Toolkit, http://www.eclipse.org/swt/
[52]Robotium Framework, http://code.google.com/p/robotium/
[53]FoneMonkey, http://www.gorillalogic.com/fonemonkey4android
[54]AspectJ Development Tools, http://www.eclipse.org/ajdt/
[55]K-9 Mail, http://code.google.com/p/k9mail/
[56]Astrid To-do List, https://github.com/todoroo/astrid
[57]趙宏興,一個測試Java Swing圖形使用者介面應用程式的工具,碩士論文,國立臺北科技大學資訊工程所,台北,2002年
[58]蔡東宏,一個支援測試先行編輯模式的Java GUI測試工具,碩士論文,國立臺北科技大學資訊工程所,台北,2004年
[63]王振宇,一個以Harel Statechart為基礎的GUI測試案例產生工具,碩士論文,國立臺北科技大學資訊工程所,台北,2008年

第一頁 上一頁 下一頁 最後一頁 top