跳到主要內容

臺灣博碩士論文加值系統

(44.200.171.156) 您好!臺灣時間:2023/03/27 10:18
字體大小: 字級放大   字級縮小   預設字形  
回查詢結果 :::

詳目顯示

: 
twitterline
研究生:甘旻儒
研究生(外文):Kan, MIN-JU
論文名稱:運用計次指標輔助Web API黑箱模糊測試停點分析
論文名稱(外文):Web API Black-Box Fuzzing Terminating Point Analysis with Counter Parameters
指導教授:田筱榮田筱榮引用關係
指導教授(外文):TYAN, HSIAO-RONG
口試委員:黃世昆廖弘源
口試委員(外文):HUANG, SHIH-KUNLIAO, HONG-YUAN
口試日期:2022-07-20
學位類別:碩士
校院名稱:中原大學
系所名稱:資訊工程學系
學門:工程學門
學類:電資工程學類
論文種類:學術論文
論文出版年:2022
畢業學年度:110
語文別:中文
論文頁數:45
中文關鍵詞:REST API黑箱測試模糊測試模糊測試停點分析
外文關鍵詞:REST APIBlackbox testingFuzz testingFuzz testing terminating point analysis
相關次數:
  • 被引用被引用:0
  • 點閱點閱:68
  • 評分評分:
  • 下載下載:3
  • 收藏至我的研究室書目清單書目收藏:0
現今的網路應用程式快速發展,為確保系統的完整性、可用性及安全性,一般會在開發過程中進行軟體測試,但由測試人員進行人工檢測與撰寫測試案例相當費時,且無法窮舉使用者所有可能的輸入,透過自動化的測試工具能有效地改善這個問題,而模糊測試是一項成熟的自動化測試技術,透過黑箱模糊測試可以在不瞭解程式源碼的情況下,自動化生成測試用例,並對服務進行測試。目前API逐漸成為服務之間的通訊方式,以網站應用程式來說,其中又以REST風格所設計的API為主流。在REST API測試方面,多數REST API測試工具皆著重在找尋軟體弱點的效能,對於評斷測試時間是否足夠缺乏討論,由於測試時間的設定會影響到黑箱測試結果,為了改善測試者缺乏可以用於判定測試時間是否足夠的資訊,本研究提出增加在測試進行時可以即時產生的指標做為測試者評斷測試進行狀況的回饋資訊,在使用基於多獨立目標演算法的黑箱測試工具的測試過程中,這些即時回饋指標可以輔助測試人員進行黑箱測試的時間效益分析,提供測試時間停點判定的依據。我們將所提出的做法實作於黑箱測試工具中,並針對不同OpenAPI規格版本的服務進行測試,實驗結果顯示,本研究所提出的回饋指標能協助測試停點分析。
Web application services are needed everywhere. To ensure integrity, availability and security of web services, software testing is a necessary and integral part during the development process. However, composing test cases and conducting tests manually is time-consuming. And, it is difficult to produce an exhaustive list of all possible input combinations. Developing automated testing tools is important to assist software testing. Fuzz testing is a mature automated software testing technology. Through black-box fuzzing, test cases can be automatically generated without the source code of a program and used for testing the corresponding service. At present, API has gradually become the major communication model used among services. For website applications, REST style APIs design is the mainstream. In terms of REST API testing, most researches on REST API testing tools focus on discovering as many software vulnerabilities as possible within a given amount of time. However, there is little discussion on how to determine whether a selected amount of time is sufficient. To allow the tester to make informed decisions on whether a selected test time is sufficient, in this study, we propose four indicators that can be generated in real-time to be used as feedback information for testers to determine the progress of the test. During the testing process of the black-box testing tool, these instant feedback indicators can assist the tester to analyze the time benefit of the black-box testing and provide the basis for the determination of the testing time termination point. We implement the proposed approach in a black-box testing tool and test it against services of different OpenAPI specification versions. The experimental results show that the feedback indicators proposed in this study can assist in the analysis of termination points.
摘要 I
Abstract II
誌謝 III
目次 IV
圖目錄 VI
表目錄 IX
第一章 緒論 1
1.1 背景與動機 1
1.2 目的 2
1.3 論文架構 3
第二章 背景與相關研究 4
2.1 REST API 4
2.2 OpenAPI規範與Swagger 5
2.3 模糊測試 6
2.4 REST API測試相關研究 7
第三章 研究方法與設計 8
3.1 黑箱測試流程 8
3.2 具測試時間回饋之測試工具 9
3.2.1 測試流程與輸出資訊 9
3.2.2 測試時間回饋值與其衍伸問題 11
3.3 即時回饋指標 14
3.4 變化與效能評估 17
第四章 實驗方法與結果 18
4.1 實驗環境 18
4.2 測試目標文件 19
4.3 黑箱測試功能與回饋指標輸出 22
4.4 實驗結果 23
4.4.1 受測系統端點數較少之黑箱測試結果 25
4.4.2 受測系統端點數較多之黑箱測試結果 28
4.4.3 增加測試時間之結果 31
4.5 實驗結果討論 33
第五章 結論與未來工作 34
參考文獻 35



圖目錄-
圖 1 Software Development Life Cycle 2
圖 2 REST API應用於網站開發之架構 4
圖 3 OpenAPI文件內容範例圖 6
圖 4 一般黑箱測試流程 8
圖 5 EvoMaster黑箱測試流程 10
圖 6 黑箱測試後的輸出結果 10
圖 7 受測系統FundService使用EvoMaster黑箱測試進行4次不同測試時間之結果 11
圖 8 受測系統apisetu.gov.in使用EvoMaster黑箱測試進行4次不同測試時間之結果
12
圖 9 受測系統digitalnz.org使用EvoMaster黑箱測試進行4次不同測試時間之結果 12
圖 10 受測系統HopeService使用EvoMaster黑箱測試進行4次不同測試時間之結果
13
圖 11 受測系統Azure API Management使用EvoMaster黑箱測試進行4次不同測試時
間之結果 13
圖 12 加入即時回饋指標的黑箱測試流程 15
圖 13 執行已添加回饋指標的黑箱測試簡易流程 22
圖 14 即時回饋指標的輸出 23
圖 15 Buy Marketing API:1 endpoint 25
圖 16 ebay Identity API:1 endpoint 25
圖 17 Where to Credit API:2 endpoint 25
圖 18 Who Hosts This API:2 endpoint 25
圖 19 Afterbanks API:3 endpoint 26
圖 20 WebScraping.AI:4 endpoint 26
圖 21 Mtaa API Documentation:5 endpoint 26
圖 22 ZEIT API:5 endpoint 26
圖 23 Azure Enterprise Knowledge Graph Service:7 endpoint 26
圖 24 eBay Finances API:7 endpoint 26
圖 25 Authentiq Connect API:9 endpoint 27
圖 26 WeGA API:10 endpoint 27
圖 27 WINSMS:11 endpoint 27
圖 28 World Time API:12 endpoint 27
圖 29 Marketplace RP Service:13 endpoint 27
圖 30 SportsData API:15 endpoint 27
圖 31 api.wordnik.com:16 endpoint 28
圖 32 Optical Character Recognition (OCR) APIs:19 endpoint 28
圖 33 Adyen for Platforms: Account API:19 endpoint 28
圖 34 Instagram API:27 endpoint 28
圖 35 WikiPathways Webservices:27 endpoint 29
圖 36 YNAB API Endpoints:30 endpoint 29
圖 37 Balance Platform Configuration API:32 endpoint 29
圖 38 WireMock:32 endpoint 29
圖 39 Wikimedia REST API:39 endpoint 29
圖 40 Adobe Experience Manager API:48 endpoint 29
圖 41 Marketcheck APIs:61 endpoint 30
圖 42 Yodlee Core APIs:70 endpoint 30
圖 43 PowerTools Developer:88 endpoint 30
圖 44 Airbyte Configuration API:104 endpoint 30
圖 45 Optical Character Recognition APIs(OCR APIs) 增加測試時間至2小時的結果 31
圖 46 Adobe Experience Manager API增加測試時間至2小時的結果 32
圖 47 Airbyte Configuration API增加測試時間至2小時的結果 32
圖 48 未添加回饋指標之測試者可見的結果 33




表目錄
表 1 RESTful API與一般API的差異 5
表 2 實驗環境使用軟硬體設備 18
表 3 Swagger2.0版本之REST API遠程測試目標資訊 20
表 4 OpenAPI3.0版本之REST API遠程測試目標資訊 21
表 5 EvoMaster黑箱模式功能參數 22
表 6 各受測目標測試結果 24



[1]Software Testing Help. (June 15, 2022). SDLC (Software Development Life Cycle)
Phases, Process, Models. softwaretestinghelp.com. Retrieved July 10, 2022, from
https://www.softwaretestinghelp.com/software-development-life-cycle-sdlc/.
[2]Fielding, R. T., & Taylor, R. N. (2002). Principled design of the modern web architecture. ACM Transactions on Internet Technology (TOIT), 2(2), pp. 115-150.
[3]OpenAPI Initiative. Structure of an OpenAPI Document. oai.github.io. Retrieved April 26, 2022, from https://oai.github.io/Documentation/specification-structure.html
[4]SmartBear. API Documentation. Swagger.io. Retrieved April 20, 2022, from https://swagger.io/solutions/api-documentation/
[5]SmartBear. OpenAPI Specification and Swagger. Swagger.io. Retrieved April 20, 2022, from https://swagger.io/solutions/getting-started-with-oas/
[6]Atlidakis, V., Godefroid, P., & Polishchuk, M. (May, 2019). Restler: Stateful rest api fuzzing. In 2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE) (pp. 748-758). IEEE.
[7]Martin-Lopez, A., Segura, S., & Ruiz-Cortés, A. (December, 2020). RESTest: Black-box constraint-based testing of RESTful web APIs. In International Conference on Service-Oriented Computing (pp. 459-475). Springer, Cham.
[8]Alberto Martin-Lopez. (Jun , 2020). Inter parameter dependencies. Github.com. Retrieved April 28, 2022, from https://github.com/isa-group/RESTest/wiki/Inter-parameter-dependencies
[9]Arcuri,A. (April, 2022). EvoMaster: A Tool For Automatically Generating System-Level Test Cases. Github.com. Retrieved April 20, 2022, from https://github.com/EMResearch/EvoMaster
[10]Wikipedia. Search-based software engineering. en.wikipedia.org. Retrieved April 29, 2022, from https://en.wikipedia.org/wiki/Search-based_software_engineering
[11]Marginean, A., Bader, J., Chandra, S., Harman, M., Jia, Y., Mao, K., ... & Scott, A. (May, 2019). Sapfix: Automated end-to-end repair at scale. In 2019 IEEE/ACM 41st International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP) (pp. 269-278). IEEE.
[12]Langdon, W. B., & Harman, M. (2014). Optimizing existing software with genetic
programming. IEEE Transactions on Evolutionary Computation, 19(1), pp.118-135.
[13]Wikipedia. Evolutionary algorithm. en.wikipedia.org. Retrieved April 29, 2022, from https://en.wikipedia.org/wiki/Evolutionary_algorithm
[14]Arcuri, A. (September, 2017). Many independent objective (MIO) algorithm for test suite generation. In International symposium on search based software engineering (pp. 3-17). Springer, Cham.
[15] Spring. Serving Web Content with Spring MVC. Spring.io. Retrieved July 7, 2022, from https://spring.io/guides/gs/serving-web-content/
[16] Spring. Spring Quickstart Guide. spring.io. Retrieved July 8, 2022, from https://spring.io/quickstart
[17] APIs.guru. APIs.GURU Wikipedia for WEB APIs. Retrieved April 12, 2022, from https://apis.guru/about/
[18] Wikipedia. Gradient descent. en.wikipedia.org. Retrieved August 7,2022, from https://en.wikipedia.org/wiki/Gradient_descent

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