簡易檢索 / 詳目顯示

研究生: 周楹彬
Ying-Bin Jou
論文名稱: 設計與實作一個平行處理為輔的作業系統持續整合自動化測試平台
Design and Implementation of a Parallel Processing Assisted OS Test Automation Platform with Continuous Integration
指導教授: 呂政修
Jenq-Shiou Leu
口試委員: 石維寬
Wei-Kuan Shih
陳省隆
Hsing-Lung Chen
周承復
Cheng-Fu Chou
沈中安
Chung-An Shen
學位類別: 碩士
Master
系所名稱: 電資學院 - 電子工程系
Department of Electronic and Computer Engineering
論文出版年: 2016
畢業學年度: 104
語文別: 中文
論文頁數: 88
中文關鍵詞: 軟體品質驗證軟體自動化測試測試驅動開發敏捷開發方法論Linux作業系統持續整合
外文關鍵詞: Software Quality Verification, Test-Driven Development, Agile Software Development, Software Test Automation, Continuous Integration, Linux Operation System
相關次數: 點閱:376下載:1
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報

近年來,作業系統(Operating System)技術的演進,已經成為各個不同CPU平台架構(CPU Architecture)以及硬體裝置發展上所不可或缺的一環。基於運行Linux作業系統在不同平台上的相關軟體應用也持續發展並推陳出新。然而,在系統開發周期,為了確保作業系統本身以及安裝整合於系統上的應用軟體品質,軟體開發測試亦成為提升軟體品質與產品競爭力的主要關鍵。因此軟體品質測試在開發周期間,儼然成為了重要的產品開發成本之一。有鑑於作業系統核心(Kernel)以及系統軟體、應用程式發行速度的急速成長,持續且加速的系統軟體維運與品質提升成為本研究所要探討的主要議題。在本文中,我們將研究、設計與實作一個基於作業系統的自動化測試框架(Test Automation Framework),並將Linux作業系統透過虛擬化技術(Virtualization)整合於自動化測試平台上,同時引入平行處理(Parallel Processing)概念來提升測試工作執行效率。並基於敏捷開發方法論(Agile Development),導入持續整合(Continuous Integration)技術於自動化測試流程中,以達到降低軟體開發到產品發布之間所存在的風險。實驗結果顯示出,持續整合後的自動化測試平台將大大的提升產品開發流程以及自動化測試效率,如此能降低軟體開發生命周期的成本。


Operation System technology grows rapidly and has become an essential role in hardware devices and different CPU architecture. Besides, Linux OS related applications are as well evolving swiftly and more software technical development and utilization based on Linux are dramatically increasing. However, during the life-cycle of OS development, software quality assurance and testing are two crucial influences in the major cost of the product development, and also are the key to product competitiveness. Given that the releasing period of Linux Kernel and its application package is faster, the overall testing and releasing process has speeded up and become more complicated. The paper was designed and implemented based on the Linux OS test automation framework and integrated the virtualization method to the platform which included the Parallel Processing concept to improve the testing efficiency. Furthermore, in order to reduce the risk during the process of software development and product release as well as to continuously improve the product quality, the development process in this study was also implemented based on the Agile Development Methodology which combined with the Continuous Integration technology. The analysis and experimental results indicated the proposed integrated test automation platform reduced large amount of time consumption, and also improved the product development efficiency.

論文摘要 I ABSTRACT II 謝誌 IV 目錄 V 圖索引 VII 表索引 IX 第一章 緒論 1 1.1 研究背景與動機 1 1.2 研究目標與貢獻 2 1.3 論文組織架構 3 第二章 相關技術之原理與研究 4 2.1 傳統軟體開發流程 4 2.2 敏捷開發流程(Agile Software Development) 6 2.3 測試開發與自動化 8 2.4 測試自動化與自動化測試 11 2.5 持續整合技術(Continuous Integration) 15 2.6 模擬器與虛擬化(Emulator & Virtualizer) 19 第三章 研究方法 20 3.1 系統架構 20 3.2 系統環境架設與安裝 22 3.3 自動化測試元件設計與實作 23 3.4 自動化測試工作運行與流程處理結構 34 3.5 API呼叫與引用方法 41 3.6 貢獻開源程式碼至Github方法 42 第四章 實驗案例及效能分析 44 4.1 實驗環境設定 44 4.2 撰寫測試案例方法 50 4.3 整合測試案例介紹與執行模組 54 4.4 整合測試案例與測試時間效能分析 58 4.5持續整合系統與自動化框架整合實作 64 第五章 結論及未來研究方向 73 參考文獻 74

[1] Xiaohui Liu, Yuqing Lan, Like Ma “Design and Implementation of Automated Testing Framework for Linux Software GUI Testing,” 2010 6th International Conference on Wireless Communications Networking and Mobile Computing (WiCOM), 2010.
[2] openSUSE Linux. Available: https://software.opensuse.org/421/zh_TW
[3] openQA web-frontend. Available: http://os-autoinst.github.io/openQA/
[4] W. W. Royce,“Managing the development of large software systems: concepts and techniques,”ICSE '87 Proceedings of the 9th international conference on Software Engineering, IEEE Computer Society Press Los Alamitos, CA, USA, pp. 328-338, 1987.
[5] Agile_software_development. Available: https://en.wikipedia.org/wiki/Agile_software_development
[6] J. Highsmith ; A. Cockburn,“Agile software development: the business of innovation,” Computer, the flagship publication of the IEEE Computer Society, pp.120-127, 2001.
[7] Kieran Conboy,“Agility from First Principles: Reconstructing the Concept of Agility in Information Systems Development,”Information Systems Research, pp. 329-354, 2009.
[8] Beck, K. “Test-Driven Development by Example, ” Addison Wesley - Vaseem, 2003
[9] Kent Beck. “Why does Kent Beck refer to the "rediscovery" of test-driven development? ” Retrieved December 1, 2014.
[10] Eliane Figueiredo Collins, Vicente Ferreira de Lucena, “Software Test Automation Practices in Agile Development Environment: An Industry Experience Report,” Automation of Software Test (AST), 2012 7th International Workshop on, Zurich, 2012.
[11] Itkonen, Juha; Mika V. Mäntylä; Casper Lassenius (2007). "Defect Detection Efficiency: Test Case Based vs. Exploratory Testing" . First International Symposium on Empirical Software Engineering and Measurement. Retrieved January 17, 2009.
[12] Kolawa, Adam; Huizinga, Dorota, “Automated Defect Prevention: Best Practices in Software Management,” Wiley-IEEE Computer Society Press. p. 74. , 2007.
[13] Chen, Lianping (2015). "Continuous Delivery: Huge Benefits, but Challenges Too". IEEE Software 32 (2): 50. doi:10.1109/MS.2015.27.
[14] Adam Auerbach, “Part of the Pipeline: Why Continuous Testing Is Essential,” TechWell Insights August 2015.
[15] Ashish Kumar Sultanía , “Developing Software Product and Test Automation Software Using Agile Methodology,” Computer, Communication, Control and Information Technology (C3IT), 2015 Third International Conference on, 2015.
[16] Eliane Collins, Arilo Dias-Neto, Vicente F. de Lucena Jr., “Strategies for Agile Software Testing Automation- An Industrial Experience,” Computer Software and Applications Conference Workshops (COMPSACW), 2012 IEEE 36th Annual, 2012.
[17] 邱炫儒, CI (Continuous integration) 關鍵技術—使用 Jenkins, 碁峰出版社, 2013-08
[18] Preeti Rai, Madhurima, Saru Dhir, Madhulika, Anchal Garg, “A prologue of JENKINS with comparative scrutiny of various software integration tools,” Computing for Sustainable Global Development (INDIACom), 2015 2nd International Conference on, New Delhi, 2015.
[19] Valentina Armenise, “Continuous Delivery with Jenkins: Jenkins Solutions to Implement Continuous Delivery,” Release Engineering (RELENG), 2015 IEEE/ACM 3rd International Workshop on, Florence, 2015.
[20] Jixiang Lu, Zhihong Yang, Junxia Qian, “Implementation of Continuous Integration and Automated Testing in Software Development,” Power System Technology (POWERCON), 2014 International Conference on, Chengdu, 2014
[21] QEMU. Available: http://wiki.qemu.org/Main_Page
[22] Dileep K. P, Devesh G, A. Raghavendra Rao, Suman M, S. V. Srikanth “Verification of Linux Device Drivers using Device Virtualization,” Computing for Sustainable Global Development (INDIACom), 2015 2nd International Conference, pp. 694-698, 2015.
[23] Bin Chen, Nong Xiao, Zhiping Cai, Fuyong Chu, Zhiying Wang, “Virtual Disk Image Reclamation for Software Updates in Virtual Machine Environments,” Networking, Architecture, and Storage, 2009. NAS 2009. IEEE International Conference, pp. 43-50, 2009.
[24] Kaveh Razavi, Thilo Kielmann, “Scalable Virtual Machine Deployment Using VM Image Caches,” 2013 SC - International Conference for High Performance Computing, Networking, Storage and Analysis (SC), pp. 1-12, 2013.
[25] qcow2image format. Available: https://people.gnome.org/~markmc/qcow-image-format.html
[26] Comprehensive Perl Archive Network (CPAN). Available: http://www.cpan.org/
[27] OS-autoinst. Available: https://github.com/os-autoinst/os-autoinst
[28] Introducing JSON (JavaScript Object Notation). Available: http://www.json.org/
[29] Yuan-Wei Tseng, Chang-Meng Li, Alan Lee, Guo-Cin Wang, “Intelligent robot motion control system Part I-System overview and image recognition,” Next-Generation Electronics (ISNE), 2013 IEEE International Symposium, pp. 220-223, 2013.
[30] Yuan-Wei Tseng, Chang-Meng Li, Alan Lee, Guo-Cin Wang, “Intelligent robot motion control system Part II- Fuzzy motion control and experiment,” Next-Generation Electronics (ISNE), 2013 IEEE International Symposium, pp. 224-227, 2013.
[31] openCV. Available: http://wiki.qemu.org/Main_Page
[32] openCV lib. Available: https://sourceforge.net/projects/opencvlibrary/
[33] Mazedur Rahman, Zehua Chen, Jerry Gao, “A Service Framework for Parallel Test Execution on a Developer's Local Development Workstation,” Service-Oriented System Engineering (SOSE), 2015 IEEE Symposium, pp. 153-160, 2015.
[34] Tor-Morten Grnli, Gheorghita Ghinea, “Meeting Quality Standards for Mobile Application Development in Businesses: A Framework for Cross-Platform Testing,” 2016 49th Hawaii International Conference on System Sciences (HICSS), pp. 5711-5720, 2016.
[35] Jun Wang, Jesse Beu, Rishiraj Bheda, Tom Conte, Zhenjiang Dong, Chad Kersey, Mitchelle Rasquinha, George Riley, William Song, He Xiao, Peng Xu, Sudhakar Yalamanchili, “Manifold: A Parallel Simulation Framework for Multicore Systems,” Performance Analysis of Systems and Software (ISPASS), 2014 IEEE International Symposium, pp. 106-115, 2014.
[36] Scheduler of openQA with Parallel Processing. Available: https://github.com/os-autoinst/openQA/blob/master/lib/OpenQA/Scheduler/Scheduler.pm

QR CODE