(3.239.33.139) 您好!臺灣時間:2021/03/05 17:59
字體大小: 字級放大   字級縮小   預設字形  
回查詢結果

詳目顯示:::

我願授權國圖
: 
twitterline
研究生:陳佳和
研究生(外文):CHEN, CHIA-HE
論文名稱:基於DevOps技術之軟體品質驅動的Android作業自動檢測系統
論文名稱(外文):A Quality-driven Assessment System for Android Assignments based on DevOps
指導教授:陳錫民陳錫民引用關係
指導教授(外文):CHEN, HSI-MIN
口試委員:馬尚彬徐國勛
口試委員(外文):MA, SHANG-PINHSU, KUO-HSUN
口試日期:2020-07-13
學位類別:碩士
校院名稱:逢甲大學
系所名稱:資訊工程學系
學門:工程學門
學類:電資工程學類
論文種類:學術論文
論文出版年:2020
畢業學年度:108
語文別:中文
論文頁數:60
中文關鍵詞:Android程式碼品質自動化DevOps持續整合軟體測試
外文關鍵詞:AndroidCoding StyleAutomaticDevOpsContinuous IntegrationSoftware Testing
相關次數:
  • 被引用被引用:0
  • 點閱點閱:72
  • 評分評分:系統版面圖檔系統版面圖檔系統版面圖檔系統版面圖檔系統版面圖檔
  • 下載下載:0
  • 收藏至我的研究室書目清單書目收藏:0
隨著無線電信網路與智慧型手機的普及,現今智慧型手機已經成為人們生活中不可或缺的工具。近年來Android 作業系統,由於APP(Application)開發環境的開放,使得大量Android開發人員投入APP的開發,如今Android在全球智慧型手機作業系統上的市佔率超過70%。為了因應產業對Android APP開發人才的需求,近年來台灣大學紛紛開設Android APP開發的相關課程。然而由於學校資源有限,老師與助教在檢測學生APP作業時,遭遇檢測耗時、無法檢測APP的軟體品質、無法即時回饋以及無法客觀地檢測作業等問題。
為此,本研究開發了一套以軟體品質驅動的自動化Android APP作業檢測系統,本系統能夠基於DevOps技術迭代地交付程式碼、檢測程式碼品質、檢測作業需求、提供回饋資訊等,這種迭代式學習模式有助於提升學生的程式能力與對軟體品質的重視。另一方面,透過本系統自動檢測功能,老師與助教可以大幅減少檢測APP作業的時間,讓老師更專注在APP作業的內容與測試案例的撰寫。

With the popularity of wireless telecommunication network and smartphone, the smartphone has become an indispensable tool in people's life nowadays. In recent years, the openness of the Android APP development environment makes a lot of Android developers devote to Android APP development, and now Android's market share in the global smartphone operating system is over 70%. To meet the industry's demand for Android APP developers, universities in Taiwan have established courses about Android APP development recently. However, due to the limited resources of the school, instructors and teaching assistants spent a lot of time to review source code when correcting students’ homework. They are unable to provide real-time feedback and objective assessment as well.
To solve these problems, a software quality-driven automated Android APP operation assessment system is developed in this study. The system bases on DevOps allows students to iteratively submit code, inspect code quality, assess homework requirements and provide feedback information. This iterative learning model can help students to improve their programming ability and to pay more attention to software quality. On the other hand, with this system, instructors and teaching assistants can significantly reduce their time spent on assessing APP assignments, and they can focus on the content of APP assignments and writing test cases.

誌謝 i
摘要 ii
Abstract iii
目錄 iv
圖目錄 vi
表目錄 viii
第一章 緒論 1
1.1 研究背景 1
1.2 研究目的 3
1.3 研究原創性 4
1.4 重要性 4
1.5 章節介紹 5
第二章 背景技術 6
2.1 自動化建置工具 6
2.2 持續整合工具 6
2.3 版本控制系統 7
2.4 程式碼品質分析工具 8
2.5 Android 測試框架 8
2.5.1 Espresso 8
2.5.2 Robotium 9
2.5.3 Appium 9
2.5.4 UIAutomator 9
2.5.5 Calabash 10
第三章 文獻回顧 12
3.1 自動化程式檢測系統 12
3.2 Android Applications 測試 12
3.3 程式碼品質 13
第四章 系統設計與方法 14
4.1 系統目的 14
4.2 系統設計 14
4.3 系統架構與流程 16
4.4 檢測流程 17
4.5 靜態檢查 18
4.6 動態檢查 23
4.6.1 單元測試 24
4.6.2 端對端測試 27
第五章 系統呈現 30
第六章 實驗 36
6.1 作業內容設計 36
6.2 電腦規格 41
6.3 實驗設計與評估 41
第七章 結論與未來研究 48
參考文獻 49

[1] eMarketer:
https://www.emarketer.com/content/us-time-spent-with-mobile-2019/
[2] Android:
https://developer.android.com/
[3] iOS:
https://developer.apple.com/
[4] StatCounter:
https://gs.statcounter.com/os-market-share/mobile/worldwide/#monthly-201812-201912/
[5] 教育部課程資源網:
http://ucourse-tvc.yuntech.edu.tw/WebU/index.aspx, 2019/
[6] Gradle:
https://gradle.org
[7] C:
https://en.wikipedia.org/wiki/C_(programming_language)
[8] Java:
https://www.java.com/
[9] Python:
https://www.python.org/
[10] Android Emulator:
https://developer.android.com/studio/run/emulator/
[11] C. Douce, D. Livingstone and J. Orwell, “Automatic Test based Assessment of Programming: A Review,” Journal on Educational Resources in Computing , Vol. 5, no. 3 , 2015.
[12] M. Madeja and J. Porubän, “Automatic assessment of assignments for Android application programming courses,” In Proceeding of 2017 IEEE 14th International Scientific Conference on Informatics, 2017.
[13] R. C. Martin, “Clean Code: A Handbook of Agile Software Craftsmanship,” Prentice Hal, 2008.
[14] S. H. Kan, “Metrics and Mode ls in Software Quality Engineering,” Addison Wesley, 2002.
[15] J. Gaytan and B. C. McEwen, "Effective Online Instructional and Assessment Strategies," The American Journal of Distance Education, vol. 21, no. 3, pp. 117-132, 2007.
[16] C. Ebert , G. Gallardo, J. Hernantes and N. Serrano , "DevOps," IEEE Software, vol. 33, no. 3, pp. 94 100, May-June 2016.
[17] D. Spinellis, "Git," IEEE Software, vol. 29, no. 3, 2012.
[18] Ant:
https://ant.apache.org/
[19] Maven:
https://maven.apache.org/
[20] Groovy:
http://groovy-lang.org/
[21] Nikhil Pathania, “Learning Continuous Integration with Jenkins” Packt Publishing, 2017.
[22] J. Evertse,"Mastering GitLab 12: Implement DevOps culture and repository management solutions," Packt Publishing, 2019
[23] SonarQube:
https://www.sonarqube.org/
[24] Checkstyle:
https://checkstyle.sourceforge.io/
[25] ESLint:
https://eslint.org/
[26] TSLint:
https://palantir.github.io/tslint/
[27] Android Lint:
https://developer.android.com/studio/write/lint/
[28] Espresso:
https://developer.android.com/training/testing/espresso
[29] Robotium:
https://github.com/RobotiumTech/robotium
[30] Appium:
http://appium.io/
[31] UI Automator:
https://developer.android.com/training/testing/ui-automator
[32] Calabash:
https://github.com/calabash/calabash-android
[33] Ruby:
https://www.ruby-lang.org/zh_tw/
[34] Cucumber:
https://cucumber.io/
[35] BDD:
https://en.wikipedia.org/wiki/BDD
[36] Hsi-Min Chen, Wei-Han Chen, Chi-Chen Lee, "An Automated Assessment System for Analysis of Coding Convention Violations in Java Programming Assignments," Journal of Information Science and Engineering, vol. 34, no. 5, 2018-09.
[37] Riccardo Coppola, Maurizio Morisio, Marco Torchiano, "Mobile GUI Testing Fragility A Study on Open-Source Android Applications," IEEE Transactions on Reliability, vol. 68, pp. 67-90, 2019.
[38] Thomas W. Knych, Ashwin Baliga, "Android Application Development and Testability," In Proceeding of the 1st International Conference on Mobile Software Engineering and Systems, pp. 37–40, 2014.
[39] Chun Cao, Jing Deng, Ping Yu, Zhiyong Duan, Xiaoxing Ma, "ParaAim: Testing Android Applications Parallel at Activity Granularity," In Proceeding of 2019 IEEE 43rd Annual Computer Software and Applications Conference (COMPSAC), vol. 1, 2019.
[40] Qirat Ashfaq, Rimsha Khan, Sehrish Farooq, "A Comparative Analysis of Static Code Analysis Tools that check Java Code Adherence to Java Coding Standards," In Proceeding of International Conference on Communication, Computing and Digital systems (C-CODE), 2019
[41] Stephen H. Edwards, Nischel Kandru, Mukund B. M. Rajagopal, "Investigating Static Analysis Errors in Student Java Programs," In Proceeding of the 2017 ACM Conference on International Computing Education Research, pp. 65-73, 2017.
[42] JUnit 4:
https://junit.org/junit4/

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