跳到主要內容

簡易檢索 / 詳目顯示

研究生: 徐易成
Yi-cheng Hsu
論文名稱: 基於服務導向架構之每日建置與自動測試系統設計與實作
Design and Implementation of SOA-based Daily Build and Auto Test System
指導教授: 李允中
Jonathan Lee
口試委員:
學位類別: 碩士
Master
系所名稱: 資訊電機學院 - 資訊工程學系
Department of Computer Science & Information Engineering
畢業學年度: 96
語文別: 中文
論文頁數: 60
中文關鍵詞: 每日建置煙霧測試自動測試單元測試服務導向架構
外文關鍵詞: Smoke Test, Auto Test, Unit Test, SOA, Daily Build
相關次數: 點閱:11下載:0
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 在軟體開發的流程之中,每日建置與自動測試被認為是很重要的一部分。然而,因為建置的流程通常和比較底層的環境因素(如程式語言、相關檔案擺放的位置以及取得最新原始碼(source code)的方式等等)關係非常密切,所以並非所有進行軟體開發的組織都有適當的工具來支援這項流程。
    也因此,許多人試著開發一套適合他們自己使用的工具。但隨著專案型態的不同以及需求的增加,這些系統常常跟不上這些需要而無法提供使用者有力的支援。
    為了解決此一問題,本篇論文試著建立一個基於服務導向架構且分散式、跨平台以及可以根據不同專案型態進行延伸的框架。在這個框架之上,我們實作了一個系統來驗證我們的設計,以及輔助我們對這篇論文進行闡述。
    除了每日建置之外,我們的系統更提供了三種不同層級的統計資料-組織層級、專案層級與流程層級供組織參考。


    Daily build and auto test is an important part of software development processes. However, not all of the organizations which develop software apply such processes with appropriate tools because daily build processes are usually bundled tightly with lower level environment factors such as programming language, the directory paths of all the artifacts, and the way of acquiring the latest source code. Therefore, lots of people and companies may try to establish their own one but get in mare because of different type of projects and their wide needs. In order to solve this problem, we tried to construct a SOA-based framework which is distributed, platform-independent and extensible for different project types even in the future. And based on this framework, we set up a running system to verify our design and as an aid of our study. Instead of daily build only, our system provides more statistical information in three different levels – organization, project and process.

    摘 要 v ABSTRACT vi 致 謝 vii 目 錄 viii 表 目 錄 xi 圖 目 錄 xii 一、 緒論 1 1-1 引言 1 1-2 動機 2 1-3 方法概觀 5 1-4 論文架構 6 二、 背景知識 7 2-1 關於建置(build) 7 2-2 關於煙霧測試(smoke test) 8 2-3 每日建置與自動測試(daily build and auto test) 9 三、 每日建置與自動測試系統概觀 11 3-1 每日建置與自動測試系統介紹 11 3-2 協調伺服器(coordinating server)概觀 14 3-3 編譯(compiling)/ 測試(testing)伺服器概觀 15 3-4 部署伺服器(deploy server)概觀 17 3-5 任務伺服器(task server)概觀 18 3-6 任務(task)概觀 19 四、 每日建置與自動測試系統設計與實作 20 4-1 每日建置與自動測試系統架構 20 4-2 任務設計與實作 22 4-2-1 ITask介面 23 4-2-2 Task抽象類別 24 4-2-3 IMetaTask介面 25 4-2-4 SequenceTask類別 25 4-2-5 Task建議實作 26 4-3 任務伺服器設計與實作 27 4-3-1 回傳(callback)機制 29 4-3-2 逾時(timeout)機制 30 4-4 協調伺服器設計與實作 31 4-5 編譯伺服器設計與實作 33 4-6 測試伺服器設計與實作 34 4-7 部署伺服器設計與實作 35 4-8 每日建置與自動測試服務設計與實作 36 五、 案例分析 39 5-1 每日建置與自動測試服務系統 39 5-1-1 使用者將程式碼簽入建構管理系統 39 5-1-2 使用者登入至每日建置與自動測試系統 41 5-1-3 各層級統計數據 42 5-1-4 組織與專案設定 43 5-1-5 建立新的流程 44 5-1-6 修改流程 45 5-1-7 儲存及同步流程。 46 5-1-8 流程執行報告 47 5-1-9 任務伺服器設定 48 六、 相關文獻探討 50 6-1 Make 50 6-2 Ant 50 6-3 Continuum 51 6-4 Automated Build Studio 51 6-5 建置系統特色對照表 51 七、 總結 53 八、 未來工作 55 附錄A 樣版任務分派與參數設定文件範例(節錄) 56 附錄B 樣版設定文件範例 57 附錄C 流程文件範例 58 參考資料 59

    [1] Joel Spolsky, Daily Builds Are Your Friend, 27 January 2001. From: http://www.joelonsoftware.com/articles/fog0000000023.html.
    [2] CMMI, 7 July 2008. From: http://www.sei.cmu.edu/cmmi/general/index.html.
    [3] Wikipedia, Software Build, 5 July 2008. From: http://en.wikipedia.org/wiki/Software_build.
    [4] Martin Fowler, Continuous Integration, 22 September 2005. From: http://www.martinfowler.com/articles/continuousIntegration.html.
    [5] Steve McConnell, 軟體建構之道 2nd, 譚詠歸, Microsoft Press, July 2007.
    [6] Jim McCarthy, Dynamics of Software Development, Microsoft Press, Redmond, 1995.
    [7] Wikipedia, Smoke Test, 5 July 2008. From: http://en.wikipedia.org/wiki/Smoke_test.
    [8] Martin Fowler, Xunit, 5 July 2008. From: http://www.martinfowler.com/bliki/Xunit.html.
    [9] Kent Beck, Simple Smalltalk Testing: With Patterns, 5 July 2008. From: http://www.xprogramming.com/testfram.htm.
    [10] Wikipedia, Unit Test, 5 July 2008. From: http://en.wikipedia.org/wiki/Unit_test.
    [11] Dave Kelly, Software Test Automation and Product Life Cycle, 5 July 2008. From: http://www.mactech.com/articles/mactech/Vol.13/13.10/SoftwareTestAutomation/.
    [12] Steve McConnell, 軟體快速開發, 宋昆旻, Microsoft Press, May 2005.
    [13] Steve McConnell, “Daily Build and Smoke Test”, IEEE Software, Vol. 13, pp.144-143, JULY 1996.
    [14] Mira Kajko-Mattsson, “Lesson Learned from Attempts to Implement Daily Build”, Software Maintenance and Reengineering, Proceedings of the Eighth Euro micro Working Conference on Software Maintenance and Reengineering, pp. 137-147, 2004.
    [15] Erik Hatcher, Java Development with Ant, 邱忠文, Manning, October 2003.

    QR CODE
    :::