研究生: |
李昆擇 Kun Ze Li |
---|---|
論文名稱: |
基於分散式物件同步系統之測試自動化技術與可測試性探討 Test Automation and Testability in a Distributed Object Synchronization Application |
指導教授: |
鄭永斌
Cheng, Yung-Pin |
學位類別: |
碩士 Master |
系所名稱: |
資訊工程學系 Department of Computer Science and Information Engineering |
論文出版年: | 2010 |
畢業學年度: | 98 |
語文別: | 中文 |
論文頁數: | 47 |
中文關鍵詞: | 分散式網路同步 、測試自動化 、軟體測試 、GUI測試自動化 、軟體可測試性 |
論文種類: | 學術論文 |
相關次數: | 點閱:129 下載:6 |
分享至: |
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報 |
本研究主要包含兩大部分:分散式物件同步機制與侵入式測試自動化,我們將分別討論,並在最後探討分散式物件同步機制之可測試性。
現行的多人網路遊戲(Massively Multiplayer Online Games : MMOGs)中,同步是非常關鍵的一件事情。同步機制是否完善,將會影響到整個遊戲的過程與結果的合理性。一般的網路遊戲透過遊戲伺服器(Server)來運算重要的事件結果,然後藉由廣播發送給所有的玩家,例如勝負判斷、角色移動、物件位置等資訊。這些方法都是為了要維持客戶端(Client)彼此之間資料的一致性。不過,如果同步的訊息過多且複雜,此時若再透過伺服器進行轉發,會使得伺服器不堪負荷。
我們提出一種可以讓客戶端直接進行同步的機制,稱為peer-to-peer的分散式物件同步機制(P2P Distributed Object Synchronization),簡稱為DOS。這種方式可以將不會影響遊戲結果的資訊,轉嫁給客戶端傳送,而伺服器只需要負責廣播重要的資訊,例如角色動作、加入新的使用者等資訊,而其餘遊戲內物件資訊同步則藉由客戶端彼此之間彼此的同步機制來完成。這樣的做法,不僅大大降低了伺服器端原本的負荷,也可以讓同步的機制可以更快的執行。
為了更有效率的增進軟體品質,建構測試自動化(Test Automation)是一種常用的技術。測試自動化工具除了自行開發外,也可以使用商業測試自動化工具,但是商業軟體除了可能必須付出昂貴的代價,還必須得面臨平台的限制,也可能無法應付特殊的測試需求,如DOS。本論文針對DOS的特殊測試需求,提出一套侵入式的自動化測試方法,而所謂侵入式指的是我們會插入探測程式碼於待測系統的原始碼中,並蒐集程式狀態。我們的目的是使用最少的成本,來達到測試自動化的效果。
最後本研究將針對分散式物件同步機制在迴歸測試自動化的過程中,發現測試案例的可測試與否問題。我們嘗試定義何種類型的測試案例適合用來實施測試自動化,又有哪些類型的測試案例在測試自動化的過程中是不可驗證的。
This thesis includes two major topics: distributed object synchronization mechanisms and intrusive test automation. We will discuss them consecutively. In the end, we will discuss the testability of test case in the content of distributed object synchronization.
In current massive multiplayer online games (MMOGs), synchronization is an important issue. The correctness of synchronization mechanism can change the results of a game play. In general, MMOGs have servers to compute the important events, and then broadcast the information to clients, such as object positions, etc. These methods are aimed to keep the consistency of object states among the clients. However, if a game requires more complicated and heavy synchronization, the server can be overloaded.
In this thesis, we propose a mechanism that the clients can synchronize with each other by Peer-to-Peer. In this mechanism, the server is only responsible for broadcasting the critical events, such as commands from users. In principle, clients exchange the information which does not affect the results of game play. By this way, the server is relieved from the heavy networking workload.
In order to improve software quality in a more efficient way, building test automation is a commonly used technique. Test automation can be built by commercial tools or developed privately. Commercial tools can address most common testing scenarios, such as GUI testing, but can be very expensive. Sometimes, commercial tools can’t handle specific test requirement, such as the Distributed Object Synchronization (DOS) problems described in the thesis. Therefore, we propose an intrusive test automation, in which we insert probing statements into the source code to collect program status in runtime. The collected information will be used to do capture/replay in test automation. The goal of this research is to achieve the effects of test automation with minimum cost.
Finally, we investigate the testability of the test cases in DOS. We try to define and analyze what kind of test cases are suitable for the capture/replay paradigm in test automation.
[1] B. Farkas, The nintendo wii pocket guide: Peachpit Press, 2007.
[2] L. Lazic and N. Mastorakis, "Cost effective software test metrics," W. Trans. on Comp., vol. 7, pp. 599-619, 2008.
[3] wikipedia. (June, 2010, Transmission Control Protocol. Available: http://en.wikipedia.org/wiki/Transmission_Control_Protocol
[4] wikipedia. (June, 2010, User Datagram Protocol. Available: http://en.wikipedia.org/wiki/User_Datagram_Protocol
[5] I. Millington, Game Physics Engine Development (The Morgan Kaufmann Series in Interactive 3D Technology): Morgan Kaufmann Publishers Inc., 2007.
[6] A. Boeing, et al., "Evaluation of real-time physics simulation systems," presented at the Proceedings of the 5th international conference on Computer graphics and interactive techniques in Australia and Southeast Asia, Perth, Australia, 2007.
[7] M. Joselli, et al., "A new physics engine with automatic process distribution between CPU-GPU," presented at the Proceedings of the 2008 ACM SIGGRAPH symposium on Video games, Los Angeles, California, 2008.
[8] P. Lu, "Test case generation for specification-based software testing," presented at the Proceedings of the 1994 conference of the Centre for Advanced Studies on Collaborative research, Toronto, Ontario, Canada, 1994.
[9] M. Fewster and D. Graham, Software test automation: effective use of test execution tools: ACM Press/Addison-Wesley Publishing Co., 1999.
[10] B. S. Green, "Software test automation," SIGSOFT Softw. Eng. Notes, vol. 25, pp. 66-66, 2000.
[11] E. Dustin, Effective Software Testing: 50 Ways to Improve Your Software Testing: Addison-Wesley Longman Publishing Co., Inc., 2002.
[12] V. Kongsli, "Security testing with Selenium," presented at the Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion, Montreal, Quebec, Canada, 2007.
[13] K. Qian, et al., "Automated Testing and Smart Tutoring System for Web Application," presented at the Proceedings of the 2008 International Workshop on Education Technology and Training & 2008 International Workshop on Geoscience and Remote Sensing - Volume 02, 2008.
[14] (2010, June). Rational Functional Tester Available: http://www-01.ibm.com/software/awdtools/tester/functional/
[15] (2010, April). WinRunner - As a GUI based load testing tool. Available: http://www.loadtest.com.au/Technology/winrunner.htm
[16] T.-H. Chang, et al., "GUI testing using computer vision," presented at the Proceedings of the 28th international conference on Human factors in computing systems, Atlanta, Georgia, USA, 2010.
[17] K. Egevang and P. Francis, The IP Network Address Translator (NAT): RFC Editor, 1994.
[18] B. Ford, et al., "Peer-to-peer communication across network address translators," presented at the Proceedings of the annual conference on USENIX Annual Technical Conference, Anaheim, CA, 2005.
[19] wikipedia. (April 2010, NAT traversal. Available: http://en.wikipedia.org/wiki/NAT_traversal
[20] S. Ferretti, "A synchronization protocol for supporting peer-to-peer multiplayer online games in overlay networks," presented at the Proceedings of the second international conference on Distributed event-based systems, Rome, Italy, 2008.
[21] M. L. Hutcheson, Software Testing Fundamentals: Methods and Metrics: John Wiley \& Sons, Inc., 2003.
[22] C. Kaner, Architectures of Test Automation 2000.
[23] B. Pettichord, "Seven Steps to Test Automation Success," June 2001.
[24] B. Posey, Just Enough Software Test Automation: Prentice Hall PTR, 2002.
[25] A. Hartman, et al., "Domain specific approaches to software test automation," presented at the The 6th Joint Meeting on European software engineering conference and the ACM SIGSOFT symposium on the foundations of software engineering: companion papers, Dubrovnik, Croatia, 2007.
[26] B. Marick, "When Should a Test Be Automated?," 998.
[27] Q. Xie and A. M. Memon, "Designing and comparing automated test oracles for GUI-based software applications," ACM Trans. Softw. Eng. Methodol., vol. 16, p. 4, 2007.
[28] C. Murphy, et al., "Automatic system testing of programs without test oracles," presented at the Proceedings of the eighteenth international symposium on Software testing and analysis, Chicago, IL, USA, 2009.
[29] L. Zhao, "A new approach for software testability analysis," presented at the Proceedings of the 28th international conference on Software engineering, Shanghai, China, 2006.
[30] V. Jeffrey and M. Keith, "Improving the Software Development Process Using Testability Research," NASA Langley Technical Report Server1992.
[31] J. M. Voas and K. W. Miller, "Software Testability: The New Verification," IEEE Softw., vol. 12, pp. 17-28, 1995.