請用此 Handle URI 來引用此文件:
http://tdr.lib.ntu.edu.tw/jspui/handle/123456789/16664完整後設資料紀錄
| DC 欄位 | 值 | 語言 |
|---|---|---|
| dc.contributor.advisor | 王凡 | |
| dc.contributor.author | Wan-Yi Hsieh | en |
| dc.contributor.author | 謝宛儀 | zh_TW |
| dc.date.accessioned | 2021-06-07T23:43:09Z | - |
| dc.date.copyright | 2014-07-29 | |
| dc.date.issued | 2014 | |
| dc.date.submitted | 2014-07-21 | |
| dc.identifier.citation | [1] A. Mesbah, A. van Deursen, and D. Roest, 'Invariant-based automatic testing of modern web applications,' Software Engineering, IEEE Transactions on, vol. 38, pp. 35-53, 2012.
[2] L. Nachmanson, M. Veanes, W. Schulte, N. Tillmann, and W. Grieskamp, 'Optimal strategies for testing nondeterministic systems,' in ACM SIGSOFT Software Engineering Notes, 2004, pp. 55-64. [3] J. Offutt, S. Liu, A. Abdurazik, and P. Ammann, 'Generating test data from state‐based specifications,' Software Testing, Verification and Reliability, vol. 13, pp. 25-53, 2003. [4] A. A. Andrews, J. Offutt, and R. T. Alexander, 'Testing web applications by modeling with FSMs,' Software & Systems Modeling, vol. 4, pp. 326-345, 2005. [5] S. Rayadurgam and M. P. E. Heimdahl, 'Coverage based test-case generation using model checkers,' in Engineering of Computer Based Systems, 2001. ECBS 2001. Proceedings. Eighth Annual IEEE International Conference and Workshop on the, 2001, pp. 83-91. [6] G. Fraser, F. Wotawa, and P. E. Ammann, 'Testing with model checkers: a survey,' Software Testing, Verification and Reliability, vol. 19, pp. 215-261, 2009. [7] G. Chartrand and O. R. Oellermann, 'Applied and algorithmic graph theory,' 1993. [8] S. Even, Graph algorithms: Cambridge University Press, 2011. [9] J. L. Gross and J. Yellen, Graph theory and its applications: CRC press, 2005. [10] G. Agnarsson and R. Greenlaw, Graph theory: modeling, applications, and algorithms: Pearson/Prentice Hall, 2007. [11] J. Y. Yen, 'Finding the k shortest loopless paths in a network,' management Science, vol. 17, pp. 712-716, 1971. [12] E. J. Weyuker, 'Completely validated software: in defense of coverage criteria (panel session),' in Proceedings of the 11th international conference on Software engineering, 1989, p. 361. [13] A. M. Memon, M. L. Soffa, and M. E. Pollack, 'Coverage criteria for GUI testing,' ACM SIGSOFT Software Engineering Notes, vol. 26, pp. 256-267, 2001. [14] E. J. Weyuker, 'How to judge testing progress,' Information and Software Technology, vol. 46, pp. 323-328, 2004. [15] M. Mcallister, S. T. Vuong, and J. Aliloviccurgus, 'Automated Test-Case Selection Based on Test Coverage Metrics,' Protocol Test Systems, V, vol. 11, pp. 93-104, 1993. [16] S. McMaster and A. M. Memon, 'Call-stack coverage for gui test suite reduction,' Software Engineering, IEEE Transactions on, vol. 34, pp. 99-115, 2008. [17] A. Bergel and V. Pena, 'Increasing test coverage with HAPAO,' Science of Computer Programming, vol. 79, pp. 86-100, Jan 1 2014. [18] N. Li, F. Li, and J. Offutt, 'Better algorithms to minimize the cost of test paths,' in Software Testing, Verification and Validation (ICST), 2012 IEEE Fifth International Conference on, 2012, pp. 280-289. [19] Q. Xie and A. M. Memon, 'Studying the characteristics of a' Good' GUI test suite,' in Software Reliability Engineering, 2006. ISSRE'06. 17th International Symposium on, 2006, pp. 159-168. [20] J. Nielsen and D. Norman. The Definition of User Experience. Available: http://www.nngroup.com/articles/definition-user-experience/ [21] List of GUI testing tools. Available: http://en.wikipedia.org/wiki/List_of_GUI_testing_tools [22] T.-H. Chang, T. Yeh, and R. C. Miller, 'GUI testing using computer vision,' in Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, 2010, pp. 1535-1544. [23] T. Ostrand, A. Anodide, H. Foster, and T. Goradia, 'A visual test development environment for GUI systems,' ACM SIGSOFT Software Engineering Notes, vol. 23, pp. 82-92, 1998. [24] Sikuli Script. Available: http://www.sikuli.org/ [25] A. Mesbah, E. Bozdag, and A. van Deursen, 'Crawling Ajax by inferring user interface state changes,' in Web Engineering, 2008. ICWE'08. Eighth International Conference on, 2008, pp. 122-134. [26] A. Mesbah and A. Van Deursen, 'Invariant-based automatic testing of AJAX user interfaces,' in Proceedings of the 31st International Conference on Software Engineering, 2009, pp. 210-220. [27] A. Mesbah, A. v. Deursen, and S. Lenselink. crawljax. Available: http://crawljax.com/ [28] Document Object Model (DOM). Available: http://www.w3.org/DOM/ [29] Android GUI Ripper Wiki. Available: http://wpage.unina.it/ptramont/GUIRipperWiki.htm [30] D. Amalfitano, A. R. Fasolino, P. Tramontana, S. De Carmine, and G. Imparato, 'A toolset for GUI testing of Android applications,' in Software Maintenance (ICSM), 2012 28th IEEE International Conference on, 2012, pp. 650-653. [31] D. Amalfitano, A. R. Fasolino, and P. Tramontana, 'A gui crawling-based technique for android mobile application testing,' in Software Testing, Verification and Validation Workshops (ICSTW), 2011 IEEE Fourth International Conference on, 2011, pp. 252-261. [32] D. Amalfitano, A. R. Fasolino, P. Tramontana, S. De Carmine, and A. M. Memon, 'Using GUI ripping for automated testing of Android applications,' in Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering, 2012, pp. 258-261. [33] A. Memon, I. Banerjee, and A. Nagarajan, 'GUI ripping: Reverse engineering of graphical user interfaces for testing,' in 2013 20th Working Conference on Reverse Engineering (WCRE), 2003, pp. 260-260. [34] Sourceforge: GUITAR. Available: http://sourceforge.net/apps/mediawiki/guitar/index.php?title=Android_GUITAR [35] W. Yang, M. R. Prasad, and T. Xie, 'A grey-box approach for automated GUI-model generation of mobile applications,' in Fundamental Approaches to Software Engineering, ed: Springer, 2013, pp. 250-265. [36] Google Project Hosting: Robotium. Available: http://code.google.com/p/robotium/ [37] J. Huang, 'An approach to program testing,' ACM Computing Surveys (CSUR), vol. 7, pp. 113-128, 1975. [38] T. J. McCabe, 'A complexity measure,' Software Engineering, IEEE Transactions on, pp. 308-320, 1976. [39] W. E. Howden, 'Methodology for the generation of program test data,' IEEE Transactions on computers, vol. 24, pp. 554-560, 1975. [40] S. Pimont and J.-C. Rault, 'A software reliability assessment based on a structural and behavioral analysis of programs,' in Proceedings of the 2nd international conference on Software engineering, 1976, pp. 486-491. [41] T. S. Chow, 'Testing software design modeled by finite-state machines,' IEEE Trans. Software Eng., vol. 4, pp. 178-187, 1978. [42] S. Naito and M. Tsunoyama, 'Fault detection for sequential machines by transition tours,' in Proc. FTCS, 1981, pp. 238-243. [43] P. Ammann and J. Offutt. Graph Coverage Web Application. Available: http://cs.gmu.edu:8080/offutt/coverage/GraphCoverage [44] W. E. Howden, 'Symbolic testing and the DISSECT symbolic evaluation system,' Software Engineering, IEEE Transactions on, pp. 266-278, 1977. [45] R. S. Boyer, B. Elspas, and K. N. Levitt, 'SELECT—a formal system for testing and debugging programs by symbolic execution,' ACM SigPlan Notices, vol. 10, pp. 234-245, 1975. [46] Android uiautomator. Available: http://developer.android.com/tools/help/uiautomator/index.html [47] Android Debug Bridge (ADB). Available: http://developer.android.com/tools/help/adb.html [48] F-Droid. Available: https://f-droid.org/ [49] Google Play. Available: https://play.google.com/store [50] P. Ammann and J. Offutt. muJava Mutation Tool. Available: http://cs.gmu.edu/~offutt/mujava/ [51] S. McConnell and D. Johannis, Code complete vol. 2: Microsoft press Redmond, 2004. | |
| dc.identifier.uri | http://tdr.lib.ntu.edu.tw/jspui/handle/123456789/16664 | - |
| dc.description.abstract | 智慧型裝置應用程式目前在軟體工業上有許多的機會以及新的挑戰,大部分的應用程式是由小團隊所開發出來,他們可能無法支付太多額外的人力成本去維護。本研究使用軟體工具去挖掘應用程式的行為,抓取一個待測物的行為及畫面資訊以建成有限狀態機。而主要研究部分探討以涵蓋率為基礎的測試用例生成技術與錯誤揭示能力的關係,另外,也提出了一個新的測試用例生成演算法,結合了能以較短的時間覆蓋較多的狀態,比起以往的演算法,也能更有效地揭示出待測物的錯誤。 | zh_TW |
| dc.description.abstract | Mobile applications (apps) present both great opportunities and new challenges to software industry. Most of the apps are developed by small teams that could not afford expensive software process and maintain appropriate documentations. It would be interesting and pragmatic to develop testing tools to help test engineers in such a situation. We develop a software tool that crawls through the screen activities of an app to automatically learn the finite-state machine (FSM) of the app and then generates test cases with a certain adequacy criterion. A research issue is how traditional coverage techniques work with such learned FSMs. We evaluate the bug-revealing capabilities of previous test case generation algorithms for such FSMs. Then we propose a new test case generation algorithm and carried out experiment to compare our algorithm with previous algorithms in the literature. We found that our algorithm is more efficient and more effective in revealing bugs than the others. | en |
| dc.description.provenance | Made available in DSpace on 2021-06-07T23:43:09Z (GMT). No. of bitstreams: 1 ntu-103-R01921094-1.pdf: 2896193 bytes, checksum: b238ff4cfdb91b045635a1322db77f8c (MD5) Previous issue date: 2014 | en |
| dc.description.tableofcontents | 口試委員會審定書 #
誌謝 i 中文摘要 ii ABSTRACT iii CONTENTS iv LIST OF FIGURES vi LIST OF TABLES viii Chapter 1 Introduction 1 1.1 Motivation 2 1.2 Research Goal 4 1.3 Thesis Framework 4 Chapter 2 Related Work 5 2.1 GUI testing 5 2.2 Model-based testing 6 2.3 Test case generation based on models 7 Chapter 3 Background 9 3.1 Model built from Crawljax 9 3.1.1 States 9 3.1.2 Actions 9 3.1.3 Abstraction 9 3.2 Model built from InTOL 10 3.2.1 States 11 3.2.2 Actions 13 3.2.3 Abstraction 13 3.3 K shortest paths algorithm 16 Chapter 4 Running example 18 4.1 k shortest paths algorithm 20 4.1.1 Demonstration 21 4.1.2 Observation 22 4.2 New test case generation 23 4.3 Experimental example 25 4.3.1 Experimental model 25 4.3.2 Test case generation process of 3 algorithms 28 Chapter 5 Our test case generation algorithm 33 Chapter 6 Implementation 37 Chapter 7 Experiment report 39 7.1 Applications under test 39 7.2 Stable model 40 7.3 Bug insertions 40 7.4 Algorithms to compare 43 7.5 Experiment data 43 7.6 Discussion 47 Chapter 8 Conclusion 50 REFERENCE 52 LIST OF FIGURES Fig. 3.1 The state-flow graph visualization from Crawljax. 10 Fig. 3.2 The model visualization from InTOL. 10 Fig. 3.3 Part of Hydrate application model constructed from InTOL. 11 Fig. 3.4 A node structure in an XML file. 12 Fig. 3.5 An Android application crash screenshot. 12 Fig. 3.6 An example of Android screen XML file. 13 Fig. 3.7 Two ListView have the same items. 14 Fig. 3.8 Ignore items bounds in ListView for ListView abstraction. 15 Fig. 4.1 FSM of the Android NotePad. 19 Fig. 4.2 A path from the initial node to a final node. 20 Fig. 4.3 A tree for the alternative branches to T1. 21 Fig. 4.4 Leaves of a shallowest spanning tree extend to a final node. 24 Fig. 4.5 Abstract model from InTOL. 26 Fig. 4.6 The extended model with black nodes presenting actions. 27 Fig. 4.7 All grey nodes which are final states connected to state F. 27 Fig. 4.8 A shallowest spanning tree with extended path of Fig. 4.7. 28 Fig. 4.9 Coverage chart for 3 algorithms with respect to time cost 32 Fig. 7.1 Screenshots of Droid Examiner 42 Fig. 7.2 Screenshots of Hydrate 42 Fig. 7.3 Screenshots of Omnidroid 43 Fig. 7.4 APFD chart for Droid Examiner with respect to time cost 44 Fig. 7.5 APFD chart contained average value of random-walk for Droid Examiner 45 Fig. 7.6 APFD chart for Hydrate with respect to time cost 45 Fig. 7.7 APFD chart contained average value of random-walk for Hydrate 46 Fig. 7.8 APFD chart for Omnidroid with respect to time cost 46 Fig. 7.9 APFD chart contained average value of random-walk for Omnidroid 47 LIST OF TABLES Table 4.1 Yen’s k shortest paths algorithm process 29 Table 4.2 Our test case generation process 30 Table 4.3 The first 10 test paths result 31 Table 4.4 The first 10 test cases generated from 3 algorithms 32 Table 7.1 Characteristics of the SUTs 41 Table 7.2 APFD values of the five times random walk algorithms 47 Table 7.3 APFD values of the algorithms 47 | |
| dc.language.iso | en | |
| dc.subject | 最短測試路徑 | zh_TW |
| dc.subject | 行動裝置應用程式 | zh_TW |
| dc.subject | 有限狀態機 | zh_TW |
| dc.subject | 涵蓋率 | zh_TW |
| dc.subject | 軟體測試 | zh_TW |
| dc.subject | 黑箱測試 | zh_TW |
| dc.subject | 行為模型挖掘 | zh_TW |
| dc.subject | Android | en |
| dc.subject | black-box | en |
| dc.subject | crawling | en |
| dc.subject | app | en |
| dc.subject | mobile computing | en |
| dc.subject | coverage | en |
| dc.subject | FSM | en |
| dc.subject | software testing | en |
| dc.title | 基於狀態機覆蓋率的黑箱測試案例生成-以行動裝置應用程式為例 | zh_TW |
| dc.title | Testing Mobile Apps with Black-Box and Coverage Techniques | en |
| dc.type | Thesis | |
| dc.date.schoolyear | 102-2 | |
| dc.description.degree | 碩士 | |
| dc.contributor.oralexamcommittee | 陳銘憲,陳郁方,王柏堯,戴顯權 | |
| dc.subject.keyword | 黑箱測試,軟體測試,涵蓋率,有限狀態機,行動裝置應用程式,行為模型挖掘,最短測試路徑, | zh_TW |
| dc.subject.keyword | black-box,software testing,FSM,coverage,mobile computing,app,crawling,Android, | en |
| dc.relation.page | 56 | |
| dc.rights.note | 未授權 | |
| dc.date.accepted | 2014-07-21 | |
| dc.contributor.author-college | 電機資訊學院 | zh_TW |
| dc.contributor.author-dept | 電機工程學研究所 | zh_TW |
| 顯示於系所單位: | 電機工程學系 | |
文件中的檔案:
| 檔案 | 大小 | 格式 | |
|---|---|---|---|
| ntu-103-1.pdf 未授權公開取用 | 2.83 MB | Adobe PDF |
系統中的文件,除了特別指名其著作權條款之外,均受到著作權保護,並且保留所有的權利。
