姓名 |
劉修竹(Hsiu-Chu Liu)
查詢紙本館藏 |
畢業系所 |
資訊工程學系在職專班 |
論文名稱 |
基於知識管理的軟體測試品質提升工具的設計與實現
|
相關論文 | |
檔案 |
[Endnote RIS 格式]
[Bibtex 格式]
[相關文章] [文章引用] [完整記錄] [館藏目錄] [檢視] [下載]- 本電子論文使用權限為同意立即開放。
- 已達開放權限電子全文僅授權使用者為學術研究之目的,進行個人非營利性質之檢索、閱讀、列印。
- 請遵守中華民國著作權法之相關規定,切勿任意重製、散佈、改作、轉貼、播送,以免觸法。
|
摘要(中) |
當前社會中,軟體應用的普及和軟體架構的複雜化使得確保軟體開發
品質成為技術團隊中不可或缺的一部分。除了與測試團隊更為密切合作外,
對於開發人員來說,撰寫完整的單元測試也成為開發過程中必須掌握的技
能。這不僅體現了開發人員對所編寫程式碼品質的責任感,還能提高程式碼
的可維護性和穩定性。測試覆蓋率經常被團隊用來衡量開發人員程式碼交付
品質的標準,代表不同測試案例對程式碼的覆蓋程度。高覆蓋率意味著更多
程式碼被測試,不僅能作為系統潛在漏洞的第一道防線,還能減少因程式碼
變更導致舊有功能出現錯誤的可能性。然而,在多人協作開發的系統中維護
高水準的測試覆蓋率並非易事,確保每次程式碼變更都能及時反映在測試
中,這是團隊需要共同面對的挑戰。
GeekyNote 為本實驗室開發的創新知識管理應用平台,其目的在於提升
程式碼和技術文件管理的效率。透過GeekyNote 獨特的標籤功能,使用者能
夠輕鬆實現程式碼和技術文件之間的雙向綁定,有助於知識的傳承和維護。
本論文結合了持續整合(Continuous Integration, CI)流程以及當前測試
工具所生成的測試資料,提出了兩種全新的標籤類型:「分支測試未覆蓋標
籤」和「最新測試未覆蓋標籤」。將這兩種類型的標籤應用於 GeekyNote 中,
能夠有效解決當前多人協作開發情境下,專案測試覆蓋率難以維護、測試案
例有效性隨著需求迭代逐漸下降以及在不同分支下編寫測試案例所面臨的挑
戰。該研究不僅提升了測試效率和準確性,同時為開發團隊提供了更有效率
且可靠的解決方案。 |
摘要(英) |
In today′s society, the widespread adoption of software applications and the
increasing complexity of software architectures have made ensuring software
development quality an indispensable part of technical teams. Apart from working
closely with testing teams, writing comprehensive unit tests has become a crucial
skill for developers during the development process. This demonstrates developers′
sense of responsibility towards code quality and enhances code maintainability and
stability. Test coverage is often used by teams to measure the quality of code
delivered by developers, representing the extent to which different test cases cover
the code. A high coverage rate means more code is tested, serving as the primary
line of defense against potential system vulnerabilities and reducing the likelihood
of introducing errors in existing functionalities due to code changes. However,
maintaining a high level of test coverage in systems involving multi-person
collaboration is challenging. Ensuring that every code change is promptly reflected
in tests is a challenge that teams must collectively address.
GeekyNote is an innovative knowledge management application platform
developed by our laboratory, aimed at enhancing the efficiency of code and technical
document management. Through GeekyNote′s unique label functionality, users can
easily achieve bidirectional linking between code and technical documents,
facilitating knowledge transfer and maintenance.
This paper combines the Continuous Integration (CI) process with test data
generated by current testing tools, proposing two novel label types: "Branch Test
Uncovered Label" and "Latest Test Uncovered Label". Applying these tag types in
GeekyNote effectively addresses challenges in maintaining project test coverage,
diminishing test case effectiveness with iterative requirements changes, and
difficulties encountered in writing test cases across different branches in today′s
iii
collaborative development scenarios. This study not only improves testing
efficiency and accuracy but also provides development teams with a more efficient
and reliable solution. |
關鍵字(中) |
★ GeekyNote ★ 測試覆蓋率 ★ 測試覆蓋報告 ★ 持續整合 |
關鍵字(英) |
★ GeekyNote ★ Test Coverage Rate ★ Test Coverage Report ★ Continuous Integration |
論文目次 |
一、 緒論 1
二、 研究背景 6
2-1 開發團隊之軟體測試概述 6
2-2 測試框架介紹 6
2-2-1 測試覆蓋率 7
2-2-2 測試覆蓋率報告 9
2-3 持續整合/持續部署 10
2-4 GeekyNote 11
2-4-1 標籤功能 11
2-4-2 多元化的文件管理 12
三、 問題描述與分析 13
3-1 開發團隊測試現況概述 13
3-1-1 多人協作開發導致測試案例有效性失準 13
3-1-2 無法快速找尋未經過測試的程式碼 14
3-1-3 測試覆蓋率報告的應用限制 15
3-1-4 單一檔案歷史提交記錄難以追蹤和分析測試覆蓋率的變化 15
3-2 如何將 GeekyNote 與測試覆蓋率結合 15
3-2-1 基於分支和提交的「分支測試未覆蓋標籤」 16
3-2-2 根據不同開發分支未修改文件的「最新測試未覆蓋標籤」17
3-2-3 新型態標籤應用於 GeekyNote 所帶來的優勢 18
四、 系統架構與設計 20
4-1 架構規劃 20
4-2 市場主流程式語言分析 21
4-2-1 測試框架覆蓋率報告格式與結構比較 21
4-3 CI 腳本撰寫與API 規格設計 23
4-3-1 CI 腳本撰寫 23
4-3-1 API 設計 25
4-4 「分支測試未覆蓋標籤」設計架構 27
4-4-1 優勢與特點 28
4-5 「最新測試未覆蓋標籤」設計架構 29
4-5-1 優勢與特點 30
4-6 測試覆蓋報告資料應用 31
五、 評估與討論 32
5-1 現有測試框架的局限性 32
5-1-1 多人協作開發導致測試案例有效性失準 32
5-1-2 無法快速尋找未經測試的程式碼 32
5-1-3 測試覆蓋率報告應用的局限性 33
5-1-4 單一檔案歷史提交記錄的追蹤困難 33
5-2 GeekyNote 測試未覆蓋標籤功能的導入 33
5-2-1 測試案例有效性的提升 33
5-2-2 測試覆蓋率報告的實用性提升 34
5-2-3 單一檔案歷史提交記錄的追蹤和分析 34
5-3 結論 36
六、 結論與未來展望 37
七、 參考資料 38 |
參考文獻 |
[1] 蘇義雄. "由瀑布式開發轉變至敏捷式開發對專案管理的影響-以TDC 個案
研究為例".台灣科技大學管理研究所碩士論文, 2013.
[2] H. Zhu, P. A. Hall, and J. H. May, "Software unit test coverage and adequacy,"
Acm computing surveys (csur), vol. 29, no. 4, pp. 366-427, 1997.
[3] "Pytest," [Online]. Available: https://docs.pytest.org/en/stable/contents.html.
[4] "Jest," [Online]. Available: https://jestjs.io/.
[5] "NUnit," [Online]. Available: https://nunit.org/.
[6] 高于凱. "CI/CD 安全防護大揭密:DevSecOps 最佳實踐指南". 博碩. 2024
[7] "Atlassian," [Online]. Available: https://www.atlassian.com/git/tutorials/what-isgit.
[8] Cheng, Yung-Pin, et al., "GeekyNote: a technical documentation tool with
coverage, backtracking, traces, and couplings.," in IEEE, 2020.
[9] Percival, harry J. w. "Test-Driven Development with Python: Obey the Testing
Goat: Using Django, Selenium, and JavaScript. " O’Reilly. 2017.
[10] "AWS," [Online]. Available: https://aws.amazon.com/tw/what-is/api/.
[11] "TIOBE," [Online]. Available: https://www.tiobe.com/tiobe-index/.
[12] "GitLab," [Online]. Available: https://docs.gitlab.com/ee/ci/. |
指導教授 |
鄭永斌(Yung-Pin Cheng)
|
審核日期 |
2024-7-24 |
推文 |
facebook plurk twitter funp google live udn HD myshare reddit netvibes friend youpush delicious baidu
|
網路書籤 |
Google bookmarks del.icio.us hemidemi myshare
|