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