摘要: 介紹了.NET Remoting技術的基本原理和框架;針對軟件測試流程和教學訓練的特點,研究和設計了一套基于.NET Remoting技術的軟件測試教學訓練系統;介紹了該系統的實現方法。
關鍵詞: .NET Remoting; 軟件測試; 教學訓練
中圖分類號:TP311 文獻標志碼:A 文章編號:1006-8228(2012)10-57-03
0 引言
當前,隨著軟件技術的發展,軟件測試越來越被人們重視。軟件測試的目的在于確保軟件的質量,確認軟件以正確的方式實現所期望的功能,具體地說,就是發現軟件的錯誤和不足,驗證軟件是否滿足設計需求文檔所規定的技術要求,同時為軟件質量評價提供依據。
如何讓軟件測試人員快速掌握軟件測試的流程,充分掌握軟件測試分析、設計和執行能力,是在軟件測試培訓中亟待解決的問題。本文針對軟件測試的流程和教學訓練的特點,研究和設計了一套功能完善、性能較高、易于部署和擴展的軟件測試教學訓練系統。該系統以Microsoft.NET Remoting分布式技術為基礎,結合關系型數據庫Oracle 9i,通過對基礎數據和測試實驗數據的發布和管理集成,再結合對軟件測試業務流程控制,既滿足了軟件測試教學和軟件測試實驗管理,又在規范軟件測試流程基礎上,實現了對軟件測試過程和數據的管理。
1 .NET Remoting技術介紹
1.1 .NET Remoting概述
.NET Remoting是構建分布式應用程序的一種編程模式,提供了一種允許對象通過應用程序域與另一對象進行交互的框架,使得信息在不同計算機、進程間遠程傳輸。它提供了進程間通信的抽象方法,簡化了分布式對象的訪問,在多數情況下,服務程序通過簡單的設計就可以把本地對象變成可以提供遠程服務的遠程對象;而客戶端則可以類似訪問本地對象的方法透明地訪問遠程對象。.NET Remoting具有易于實現、結構可擴展強、服務器與客戶端可共享程序集、可序列化任務類型數據、可精確管理對象生命周期等優點[1]。
1.2 .NET Remoting技術框架
.NET Remoting框架在于傳遞服務器對象的引用給客戶機進程[2],其通信過程中有四大要素:①遠程對象。Remoting允許任何繼承自基類MarchalByObjRef的對象成為遠程對象,該特性使得對象可以被遠程跨域調用而不需要附加額外的信息,操作Remoting遠程對象與操作本地對象沒有任何區別。②代理。每一個遠程對象在被遠程調用時,Remoting都會在客戶端自動生成一個代理,客戶端調用代理對象上的方法把消息傳到通道中。③消息。消息指封裝了遠程調用過程中所產生參數、數據等的數據塊,它是Remoting通信過程中的“郵件”。④通道。提供Remoting在網絡中進行通信的通道與協議約定[3],格式化器按約定格式或將數據重新封裝,便于網絡傳輸,并將網絡接收數據解封成原始數據。
圖1顯示了.NET Remoting遠程通信過程。客戶應用域進行遠程操作時,客戶端首先會為相應遠程對象生成遠程代理;然后將請求消息用格式化器進行格式化后在網絡通道中傳輸;其后客戶端和服務端的傳輸通道通過HTTP或TCP協議傳輸請求消息,服務端在收到請求消息后,使用與客戶端相對應的格式化器反序列化為原始消息形式;最后傳遞給分配器進行統一管理,服務器端按一定的規則響應客戶端請求并回傳結果。
2 軟件測試教學訓練系統的設計
2.1 功能設計
軟件測試教學訓練系統是面向軟件測試人員的配套教學訓練系統,通過對軟件測試流程及軟件測試數據的管理,使軟件測試人員通過軟件測試實驗,深刻理解軟件測試的理論和技術,熟練掌握軟件測試工具的使用,進一步提高軟件測試的技術水平。
軟件測試教學訓練系統的功能結構組成主要分為四個部分:.NET Remoting對象、教員席軟件、學員席軟件和軟件測試信息資源查詢平臺(如表1所示)。其中,.NET Remoting對象包括:數據庫管理服務(DB Service)和教學指導服務(Teach Service)等;教員席軟件包括:系統管理、基礎數據管理、測試實驗管理等;學員席軟件包括:系統管理、測試實驗管理、測試過程管理等;軟件測試信息資源查詢平臺包括數據庫管理、檢索與查詢等。
2.2 主要業務流程設計
軟件測試教學訓練系統是為軟件測試人員開設“軟件測試”實驗提供教學訓練平臺,利用該系統實施軟件測試實驗教學的流程如下。
⑴ 教員選擇測試樣例軟件,建立測試實驗項目并提出測試實驗要求,而后分發至學員。
⑵ 學員領受測試實驗任務后,從服務器數據庫下載實驗項目相關的測試樣例軟件及文檔資源,并在測試用計算機上安裝、運行測試樣例軟件。
⑶ 學員依據軟件測試流程和標準規范,進行測試需求分析、測試用例設計和測試執行。學員根據軟件需求文檔或研制方案等,進行測試需求分析,確定測試級別、測試類型和測試項,并詳細填寫測試項信息;測試用例設計階段,學員針對每個測試項設計測試用例,填寫測試用例信息和測試用例的步驟信息,確定用例執行的預期結果和通過準則;測試執行階段,學員根據測試用例及步驟信息,操作執行被測軟件,填寫測試用例執行的實際結果,并與預期結果相比較:如兩者相一致,則測試用例執行通過;如不一致,則填寫軟件問題報告單。
⑷ 教員在學員進行軟件測試實驗的過程中能夠實時監控并在線指導。
⑸ 學員完成測試執行后,編寫軟件測試報告。
⑹ 學員提交軟件測試實驗結果,在教員批閱后,學員能夠查看實驗成績。
另外,在軟件測試實驗過程中,教員和學員能通過軟件測試信息資源查詢平臺進行檢索、查詢、下載軟件測試相關的理論方法、技術說明、工具使用說明等信息。
軟件測試教學訓練系統的主要業務流程如圖2所示。
2.3 系統框架設計
軟件測試教學訓練系統采用以.NET Remoting技術框架為核心的多層結構,包括服務端、客戶端兩大部分,如圖3所示。服務端和客戶端通過代理(Proxy)和通道(Channel)實現通信,具體業務由服務端對應代理和接口完成。服務端數據庫管理服務(DB Service)負責接收客戶端的請求,解析指令、訪問數據庫,并將結果返回到客戶端;教學指導服務(Teach Service)負責接收客戶端教員席軟件的指令,并依據指令參數解析發送至相應學員席;客戶端負責接收用戶操作指令發送至服務端,并接收服務端返回的結果等。
2.3.1 服務端
⑴ 數據層:實現對基礎數據、測試實驗數據、軟件測試信息資源數據的管理。
⑵ 應用服務層:實現對前端請求服務的管理和應用業務邏輯的處理,包括測試信息資源查詢、測試樣例軟件下載、教學指導信息分發等應用功能。
2.3.2 客戶端
⑴ Proxy:客戶端為遠程對象DB Service Object和Teach Service Object創建的遠程代理。
⑵ Web Server:完成前端瀏覽器的軟件測試信息資源查詢控制流程,利用標準C#、HTML、XML技術實現前后臺的連接管理,利用ASP.NET開發平臺實現頁面流程的控制以及頁面請求的分發。
⑶ 應用層:通過圖形化軟件實現軟件測試實驗業務流程控制。
2.4 數據設計
軟件測試教學訓練系統采用Oracle 9i數據庫管理系統實現對基礎數據、測試實驗數據、軟件測試信息資源數據的管理。
基礎數據包括教員信息庫、學員信息庫、測試樣例軟件信息庫、測試實驗項目信息庫、測試實驗項目分發信息庫等。
測試實驗數據包括測試實驗進程信息庫、測試需求分析信息庫、測試用例庫、測試用例步驟庫、測試執行庫、測試步驟執行庫、軟件缺陷信息庫、教學指導信息庫、測試實驗批閱結果庫等。
軟件測試信息資源數據包括軟件測試體系庫、國軍標數據庫、軟件測試知識庫、軟件測試文獻庫、軟件測試工具信息庫等。
3 軟件測試教學訓練系統的實現
軟件測試教學訓練系統的實現方法有兩類:一是遠程對象、教員席軟件和學員席軟件,通過Microsoft Visual C#開發平臺編程實現;二是軟件測試信息資源查詢平臺,通過從Web Server下載應用界面并在瀏覽器中顯示的方式實現,只需安裝Microsoft IE瀏覽器即可。
3.1 遠程對象的實現
軟件測試教學訓練系統的.NET Remoting遠程對象提供兩類服務,即DB Service和Teach Service,均繼承于MarshalByRefObject的遠程對象類,分別命名為DBServiceObj和TeachServiceObj。
下面以TeachServiceObj為例,其部分代碼與注釋如下:
3.3 客戶端的實現
軟件測試教學訓練系統的客戶機應用程序域在客戶端創建一個代理對象,當客戶機程序對遠程對象進行函數調用時,調用參數被打包成一個消息,發送至服務器端遠程對象的實例,并將執行結果返回客戶機應用程序。以TeachServiceObj為例,其客戶端激活通道對象代碼實現如下:
4 結束語
本文介紹了.NET Remoting技術的原理和框架,深入闡述了基于該技術的軟件測試教學訓練系統的解決方案和實現。系統提供了信息資源訪問、軟件測試實驗管理、軟件測試業務流程控制等功能,很好地滿足了軟件測試教學與訓練的需求,利用.NET Remoting技術框架,很好地解決了數據和命令的遠程通信問題,提高了數據操作的效率和可靠性。
參考文獻:
[1] Christian Nagel etc.Professional C#2008 [M].USA:Wrox,2008.
[2] [美]Sai Kishore Sripriya著,何紅波,英宇等譯.Visual C++.NET專業項目實例開發[M].中國水利水電出版社,2007.
[3] Ingo Rammer, Mario Szpuszta. Advanced.NET Remoing (SecondEdition) [M].USA:Apress,2005.
[4] 曾登高.NET系統架構與開發[M].電子工業出版社,2003.
[5] [意]Dino Esposito著,寧建平譯.Microsoft .Net XML程序設計[M].機械工業出版社,2003.
[6] 梁冰,呂雙,王小科.C#程序開發范例寶典[M].人民郵電出版社,2009.