(3.237.97.64) 您好!臺灣時間:2021/03/04 12:10
字體大小: 字級放大   字級縮小   預設字形  
回查詢結果

詳目顯示:::

我願授權國圖
: 
twitterline
研究生:洪子軒
研究生(外文):HONG, Z-XUAN
論文名稱:一個偵測Android應用程式異常之操作注入框架
論文名稱(外文):An Operation-Injection Framework for Detecting Android Application Anomalies
指導教授:陳偉凱陳偉凱引用關係劉建宏劉建宏引用關係
指導教授(外文):CHEN, WOEI-KAELIU, CHIEN-HUNG
口試委員:馬尚彬林楚迪陳偉凱劉建宏
口試委員(外文):MA, SHANG-PINLIN, CHU-TICHEN, WOEI-KAELIU, CHIEN-HUNG
口試日期:2020-07-24
學位類別:碩士
校院名稱:國立臺北科技大學
系所名稱:資訊工程系
學門:工程學門
學類:電資工程學類
論文種類:學術論文
論文出版年:2020
畢業學年度:108
語文別:中文
論文頁數:62
中文關鍵詞:Android測試異常偵測操作注入注入階層框架
外文關鍵詞:Android TestingAnomalies DetectionOperation-InjectionInjection LevelFramework
相關次數:
  • 被引用被引用:0
  • 點閱點閱:45
  • 評分評分:系統版面圖檔系統版面圖檔系統版面圖檔系統版面圖檔系統版面圖檔
  • 下載下載:8
  • 收藏至我的研究室書目清單書目收藏:0
Android Anomaly Detector (AAD)為一個偵測Android App行為異常(Anomaly)的自動化工具,它能從App的GUI狀態圖產生測試路徑,並在測試路徑上注入不同的使用者操作(Operation)以產生測試案例,然後透過執行測試案例來偵測App的行為是否有異常,由於AAD僅支援一些Operation,這些Operation在測試路徑上注入的數量亦為固定,使得AAD難以擴充新的Operation及彈性選擇Operation注入的數量,加上AAD需先將測試案例轉成測試腳本,然後再執行腳本以進行異常偵測,導致耗費較多的時間。為提高AAD的偵測效率並解決上述問題,本論文開發出一個AAD 框架(AAD Framework),此框架結合設計樣式(Design Pattern),並採用Test Path Runner的概念,可以在注入Operation後直接執行測試案例,以節省偵測時間。特別是它允許使用者擴充Operation及其對應的Test Path Runner,以提升其異常偵測的能力,同時能擴充Operation的注入階層(Injection Level),以改變Operation注入的數量來改善偵測效率。實驗結果顯示AAD 框架容易理解、使用、以及擴充新的Operation、Injection Level與Test Path Runner。
Android Anomaly Detector (AAD) is an automated tool for detecting behavioral anomalies of Android Apps. Particularly, AAD can generate test paths from the GUI state graph of an App and inject different user operations into the test paths to create test cases. The test cases are then executed automatically to check whether the App behaves as expected. However, AAD currently supports only a fixed set of operations and the number of injection points in the test paths is also predetermined by the type of operations. This makes AAD hard to add new operations and lack of flexibility to adjust the number of injection points as needed for improving detection efficiency. Further, AAD needs to convert test cases into test scripts first and then executes the scripts manually, which can cost more time for anomaly detection. To alleviate the aforementioned problems and improve the efficiency of AAD, this thesis presents an AAD framework that is developed with various design patterns and adopts the notion of test path runner. In particular, the test path runner enables AAD framework to run the test cases immediately right after injecting operations. Thus, there is no need to generate test scripts and execute the scripts manually, which can reduce the time required for anomaly detection. Moreover, AAD Framework allows users to extend and add new operations and their corresponding test path runners in order to enhance its capability of anomaly detection. In addition, AAD Framework also enables users to extend and specify the injection level of an operation for determining the number of injection points as needed so as to improve the detection efficiency. The experimental results suggest that AAD Framework indeed is easy to understand, use, and extend for adding new operations, injection levels, and test path runners.
摘 要 i
ABSTRACT ii
誌 謝 iv
目 錄 v
表目錄 viii
圖目錄 ix
第一章 緒論 1
1.1 研究動機 1
1.2 研究目的 2
1.3 論文組織架構 4
第二章 背景介紹與相關研究 5
2.1 AAD背景介紹 5
2.2 ACE背景介紹 6
2.3 Pattern Generate Architecture背景介紹 7
2.4 異常偵測工具相關研究 7
2.5 Framework相關研究 9
2.5.1 Inversion of Control介紹 9
2.5.2 Dependency Injection介紹 9
2.5.3 DI Container介紹 10
第三章 AAD框架設計 12
3.1 AAD框架設計目標 12
3.1.1 既有AAD限制 12
3.1.2 AAD框架目標 13
3.2 框架設計過程 15
3.2.1 Test Path Runner (Command) 16
3.2.2 Test Path Runner (Template Method) 17
3.2.3 Operation (Abstract Factory Pattern) 18
3.2.4 Injection Level (Strategy Pattern) 20
3.2.5 State Checker (Gateway Pattern) 21
3.2.6 AAD Service (Façade Pattern) 23
3.2.7 Test Path Provider (Adapter Pattern) 24
3.2.8 Test Path Repository (Repository Pattern) 25
3.2.9 框架設計總結 26
3.3 介面擴充設計 27
3.3.1 Operation擴充介面設計 27
3.3.2 Injection Level擴充介面設計 28
3.3.3 Test Path Runner擴充介面設計 29
3.4 框架整體可測試性 30
第四章 系統架構與實作 32
4.1 系統架構圖 32
4.2 AAD框架實作原理 33
4.2.1 AAD應用層模組實作 33
4.2.2 測試路徑轉換模組實作 33
4.2.3 測試路徑核心模組實作 34
4.2.4 狀態驗證模組實作 35
4.2.5 測試路徑報表實作 36
4.3 AAD與ACE之整合 37
4.4 AAD設定檔案調整 39
4.5 AAD模組擴充步驟 42
4.5.1 State Immutable Operation擴充 42
4.5.2 Context Changing Operation擴充 43
4.5.3 Event Changing Operation擴充 44
4.5.4 Injection Level擴充 45
4.5.5 Test Path Runner擴充 46
4.6 AAD完整情境擴充 48
第五章 實驗 52
5.1 研究問題 52
5.2 實驗環境 53
5.3 實驗一 54
5.4 實驗二 56
5.5 實驗三 57
5.6 實驗效度 58
第六章 結論與未來展望 60
6.1 結論 60
6.2 未來展望 60
參考文獻 62


[1]李宗哲, "以爬蟲器產生測試案例之Android程式異常行為偵測方法," 2017.
[2]劉宸宗, "偵測Android應用程式不合宜權限處理," 2018.
[3]S. A. Koroglu Y., "Test Case Mutation to Improve Crash Detection in Android
" 2018.
[4]Amalfitano, "Considering context events in event-based testing of mobile applications," Software Testing, Verification and Validation Workshops (ICSTW), 2013 IEEE Sixth International Conference on. IEEE, 2013, 2013.
[5]C. Hu, and Iulian Neamtiu., "Automating GUI testing for Android applications.," Proceedings of the 6th International Workshop on Automation of Software Test. ACM, 2011., 2011.
[6]K. Moran, "Automatically discovering, reporting and reproducing android application crashes.," Software Testing, Verification and Validation (ICST), 2016 IEEE International Conference on. IEEE, 2016., 2016.
[7]K. Mao, Mark Harman, and Yue Jia, "Sapienz: Multi-objective automated testing for android applications," Proceedings of the 25th International Symposium on Software Testing and Analysis. ACM, 2016., 2016.
[8]R. Anbunathan, and Anirban Basu., "A recursive crawler algorithm to detect crash in Android application.," Computational Intelligence and Computing Research (ICCIC), 2014 IEEE International Conference on. IEEE, 2014., 2014.
[9]"https://get.fabric.io/."
[10]M. Seemann, "Dependency Injection in .NET," 2011. Manning Publications.
[11]R. J. Kent Beck, "Patterns Generate Architectures," 1994.
[12]R. H. Erich Gamma, Ralph Johnson, John Vlissides, "Design Patterns: Elements of Reusable Object-Oriented Software," 1994. Addison-Wesley Professiona.
[13]R. C. Martin, "The Dependency Inversion Principle," 1996.
[14]M. Folwer, "Patterns of Enterprise Application Architecture," 2002. Addison-Wesley Professional.
[15]M. Robert C, "The Open-Closed Principle," 1996.
[16]K. Beck, "Implementation Patterns," 2007. Addison-Wesley Professional.
[17]E. Evans, "Domain-Driven Design: Tackling Complexity in the Heart of Software," 2004. Addison-Wesley Professional.


QRCODE
 
 
 
 
 
                                                                                                                                                                                                                                                                                                                                                                                                               
第一頁 上一頁 下一頁 最後一頁 top
系統版面圖檔 系統版面圖檔