| 研究生: |
丁冠華 Kuan-Hua Ting |
|---|---|
| 論文名稱: | Test Automation for Fault Tolerant Service over Kernel-based Virtual Machine |
| 指導教授: |
鄭永斌
Yung-Pin Cheng |
| 口試委員: | |
| 學位類別: |
碩士 Master |
| 系所名稱: |
資訊電機學院 - 資訊工程學系 Department of Computer Science & Information Engineering |
| 論文出版年: | 2014 |
| 畢業學年度: | 102 |
| 語文別: | 中文 |
| 論文頁數: | 56 |
| 中文關鍵詞: | 虛擬機容錯系統 、測試自動化 、虛擬機 |
| 外文關鍵詞: | fault tolerant virtual machine, test automation, kernel-based virtual machine |
| 相關次數: | 點閱:11 下載:0 |
| 分享至: |
| 查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報 |
虛擬機容錯系統(System for Fault Tolerant Virtual Machine)在近幾年來是一個非常熱門的議題,主要用於解決以虛擬機的方式架設伺服器發生虛擬機或實體機故障之後服務能夠迅速復原,或是不被中斷。不過對於虛擬機容錯系統測試自動化的議題卻鮮少有人提出。虛擬機容錯系統是一個非常複雜的系統,其所涵蓋的部分不只是應用程式的部分,還包含了實體機器的作業系統以及硬體裝置的部分。要使一個涵蓋層面非常廣的系統能有穩定、高品質的運作,測試是必不可少的。虛擬機容錯系統的測試是非常耗費時間,若要維持一定的系統品質就需要不斷的測試。在人力有限的情況下,採取手動測試並不是一個明智的選擇,採取測試自動化是必要的手段。
虛擬機容錯系統測試自動化必須模擬測試所需環境是相當困難的。在測試的過程中要能完整模擬出整個環境,如果不能百分之百模擬環境就可能導致測試案例不準確。此外,對於如何設計與實作test oracle也是虛擬機容錯系統測試自動化相當困難的環節,因為根據不同的測試案例,所使用的test oracle不盡相同,有些測試案例是透過觀察虛擬機內部的狀態作為test orcale,而有些測試案例則是觀察虛擬機容錯系統的部分元件的狀態作為test oracle。
本論文對於Fault Tolerant Service over Kernel-based Virtual Machine(FTKVM)開發一套自動化測試系統──Fault Tolerant service over Kernel-based Virtual Machine Test Framework。本系統設計一套測試自動化架構,使得開發人員可以輕鬆撰寫出測試案例,透過參數化的方式提升測試案例的彈性。再者,本系統與Jenkins結合,使得我們能達到對FTKVM回歸測試之目的。透過本系統與Jenkins,本系統能夠幫助開發團隊省去手動測試的時間、並對程式碼修正之後能夠取得快速的回饋,使系統開發者能馬上了解當前系統版本的狀況,進而達到提升系統的品質。
Fault tolerant virtual machine (FTVM) is a popular issue in recent years. When guest O.S., host O.S., or VM crashes, FTVM seeks out methods to keep the services alive without being aware by the clients. But the research about test automation for such a system is rare. Fault tolerant virtual machine is a complicated system, which requires the cooperation among hardware, operating systems, modified virtual machines, and monitoring components. To guarantee high quality fault tolerant virtual machine in development, testing is indispensable. Due to the complexity of testing the system, manual testing is too inefficient and time costly. Test automation is the solution to the problem.
To design and build test automation for FTVM, we face three challenges. First is how to automatically setup test environment. Second is how to simulate the faults to test FTVM. The last is the design and implementation of test oracles to make sure FTVM recover as expected.
This paper develops a test automation system for Fault Tolerant Service over Kernel-based Virtual Machine (FTKVM), named Fault Tolerant service over Kernel-based Virtual Machine Test Framework (FTKVMTF). FTKVMTF is a framework to let testers write test case easily. The purpose of FTKVMTF and Jenkins (a Continuous Integration tool) is to construct a regression test automation for FTKVM developers. As a results, developers of FTKVM can get immediate feedback on their changes to FTKVM in a daily build fashion.
[1] Virtual Machine. Available: http://en.wikipedia.org/wiki/Virtual_machine
[2] Test Oracle. Available: http://en.wikipedia.org/wiki/Oracle_(software_testing)
[3] M. Uehara, "Fault tolerant computing in computational field model," in Engineering of Computer-Based Systems, 1997. Proceedings., International Conference and Workshop on, 1997, pp. 34-37.
[4] T. Shwe and A. Win, "A fault tolerant approach in cluster computing system," in Electrical Engineering/Electronics, Computer, Telecommunications and Information Technology, 2008. ECTI-CON 2008. 5th International Conference on, 2008, pp. 149-152.
[5] F. O. Sem-Jacobsen, O. Lysne, and T. Skeie, "Combining Source Routing and Dynamic Fault Tolerance," in Computer Architecture and High Performance Computing, 2006. SBAC-PAD '06. 18TH International Symposium on, 2006, pp. 151-158.
[6] L. B. Bhajantri and N. Nalini, "A fault tolerance approach to topology control in Distributed Sensor Networks," in Advanced Communication Control and Computing Technologies (ICACCCT), 2012 IEEE International Conference on, 2012, pp. 208-212.
[7] D. J. Scales, M. Nelson, and G. Venkitachalam, "The design of a practical system for fault-tolerant virtual machines," SIGOPS Oper. Syst. Rev., vol. 44, pp. 30-39, 2010.
[8] Y. Tamura, K. Sato, S. Kihara, and S. Moriai, Kemari: Virtual Machine Synchronization for Fault Tolerance.
[9] S. Garg, Y. Huang, C. M. R. Kintala, and K. S. Trivedi, "Minimizing Completion Time of a Program by Checkpointing and Rejuvenation," Sigmetrics Performance Evaluation Review, vol. 24, pp. 252-261, 1996.
[10] J. Gray and A. Reuter, Transaction Processing: Concepts and Techniques, 1993.
[11] K. Vaidyanathan and K. S. Trivedi, "A Comprehensive Model for Software Rejuvenation," IEEE Transactions on Dependable and Secure Computing, vol. 2, pp. 124-137, 2005.
[12] Advanced Telecommunications Computing Architecture. Available: http://en.wikipedia.org/wiki/Advanced_Telecommunications_Computing_Architecture
[13] R. Hillbrecht and L. C. E. de Bona, "A SNMP-Based Virtual Machines Management Interface," in Utility and Cloud Computing (UCC), 2012 IEEE Fifth International Conference on, 2012, pp. 279-286.
[14] W. Song, D. Li, J. Hai, S. Xuanhua, Z. Yankun, G. Wei, et al., "Virtual Machine Management Based on Agent Service," in Parallel and Distributed Computing, Applications and Technologies (PDCAT), 2010 International Conference on, 2010, pp. 199-204.
[15] libvirt. Available: http://en.wikipedia.org/wiki/Libvirt
[16] Xen. Available: http://wiki.xen.org/wiki/Scheduling_in_Xen
[17] Virtualbox. Available: https://www.virtualbox.org/
[18] M. Bolte, M. Sievers, G. Birkenheuer, O. Niehorster, and A. Brinkmann, "Non-intrusive virtualization management using libvirt," in Design, Automation & Test in Europe Conference & Exhibition (DATE), 2010, 2010, pp. 574-579.
[19] Regression test. Available: http://en.wikipedia.org/wiki/Regression_testing
[20] Virt test. Available: http://virt-test.readthedocs.org/en/latest/
[21] Jenkins. Available: https://wiki.jenkinsci.org/display/JENKINS/Home
[22] S. Dosinger, R. Mordinyi, and S. Biffl, "Communicating continuous integration servers for increasing effectiveness of automated testing," in Automated Software Engineering (ASE), 2012 Proceedings of the 27th IEEE/ACM International Conference on, 2012, pp. 374-377.
[23] Secure Shell. Available: http://en.wikipedia.org/wiki/Secure_Shell
[24] Magic SysRq key. Available: http://en.wikipedia.org/wiki/Magic_SysRq_key
[25] D. Hoffman, P. A. Strooper, and L. J. White, "Boundary Values and Automated Component Testing," Software Testing, Verification & Reliability, vol. 9, pp. 3-26, 1999.
[26] R. Zhao and L. Zheng, "Boundary Value Testing Using Integrated Circuit Fault Detection Rule," in Testing: Academic and Industrial Conference - Practice and Research Techniques, 2009. TAIC PART '09., 2009, pp. 3-12.