您的位置:軟件測(cè)試 > 開源軟件測(cè)試 > 開源單元測(cè)試工具 >
對(duì) Information Bridge Framework 智能標(biāo)記進(jìn)行單元測(cè)試
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/2/6 14:28:29 ] 推薦標(biāo)簽:

簡(jiǎn)介

  隨著 Microsoft Office Information Bridge Framework 1.0 的推廣,Microsoft Office 2003 開發(fā)人員的工具箱中現(xiàn)在有了很多非常棒的新工具。公開 Microsoft Office Professional 2003 中的 Information Bridge Framework 功能的主要方法是智能標(biāo)記;但是,為智能標(biāo)記創(chuàng)建自動(dòng)單元測(cè)試可能是一個(gè)很麻煩的過(guò)程。本文將討論托管智能標(biāo)記開發(fā)人員服務(wù)庫(kù) (MSTDSL) 的用法,它位于可從 Microsoft 下載中心得到的 Microsoft Office 2003 Smart Tag Developer Tools 工具包中,并且可以減小為基于 Information Bridge Framework 的智能標(biāo)記實(shí)現(xiàn)自動(dòng)單元測(cè)試所需的工作量。

  對(duì)于像使用 Information Bridge Framework 創(chuàng)建的解決方案一樣概略的解決方案的生存期中的所有元素進(jìn)行完整的、自動(dòng)的單元測(cè)試,是一個(gè)非常廣泛的主題,因而無(wú)法在本文范圍內(nèi)進(jìn)行詳盡的闡述。本文只是重點(diǎn)討論如何測(cè)試解決方案的智能標(biāo)記部分,但是它當(dāng)然不認(rèn)為應(yīng)該使單元測(cè)試終止于這一地步。本文也不討論如何實(shí)現(xiàn)智能標(biāo)記。本文使用作為 Microsoft Office Information Bridge Framework Resource Kit 1.0 下載的一部分提供的示例解決方案作為測(cè)試主體。此外,本文進(jìn)行了下列假設(shè):

  您熟悉使用托管代碼開發(fā)智能標(biāo)記。
  您知道如何使用 NUnit 來(lái)自動(dòng)執(zhí)行單元測(cè)試。
  您已經(jīng)安裝了 Information Bridge Framework 以及關(guān)聯(lián)的示例客戶關(guān)系管理解決方案。


  為什么使用自動(dòng)單元測(cè)試?

  盡管沒有一種工具或技術(shù)能夠保證從給定的代碼片段中消除所有缺陷,但單元測(cè)試是您在代碼中工作時(shí)可以使用的少數(shù)幾種技術(shù)之一。通過(guò)單元測(cè)試,可以在開發(fā)期間以及以后的維護(hù)期間捕捉到缺陷。一些估計(jì)顯示,開發(fā)期間的單元測(cè)試有可能從給定的代碼部分中消除 15% 到 55% 的缺陷 (Software Quality:Analysis and Guidelines for Suclearcase/" target="_blank" >ccess, Capers Jones, International Thomson Computer Press, 1997)。盡管這是對(duì)單元測(cè)試的價(jià)值的強(qiáng)有力的證明,但我們的看法是,只有在初的開發(fā)之后,單元測(cè)試 — 更具體地說(shuō)應(yīng)該是自動(dòng)單元測(cè)試(當(dāng)用每個(gè)更改或生成運(yùn)行測(cè)試時(shí))— 才會(huì)真正體現(xiàn)出它的價(jià)值。自動(dòng)測(cè)試提供了附加保護(hù),以幫助確保更改不會(huì)意外改變現(xiàn)有的功能。

  在 Information Bridge Framework 開發(fā)的上下文中,需要考慮幾件事情。首先,“轉(zhuǎn)椅”信息工作者所完成的工作的特點(diǎn)是需求不斷演化 — 有時(shí)會(huì)非?焖。這些新的需求可能由新的工作要求引起,由對(duì)基礎(chǔ)信息資源的更改引起,或者只是由了解到更多有關(guān)這些人完成工作的方式的信息而引起。但是,重要的是來(lái)自這些開發(fā)項(xiàng)目的信息可能用來(lái)進(jìn)行業(yè)務(wù)關(guān)鍵的決策(它可能僅僅基于通過(guò)該開發(fā)公開的信息)。如果功能不是對(duì)于開發(fā)的每個(gè)迭代都可靠,則發(fā)生災(zāi)難性后果的可能性是巨大的。既然快速而準(zhǔn)確地調(diào)整 Information Bridge Framework 解決方案以適應(yīng)不斷更改的需求是如此重要,那么不難看出自動(dòng)單元測(cè)試對(duì)于這些開發(fā)項(xiàng)目的每個(gè)部分是何等關(guān)鍵。像任何工具一樣,自動(dòng)單元測(cè)試不應(yīng)當(dāng)成為您的測(cè)試項(xiàng)目。

使用 MSTDSL

  MSTDSL 用于簡(jiǎn)化對(duì)智能標(biāo)記的某些常見功能以及對(duì)某些系統(tǒng)級(jí)別智能標(biāo)記設(shè)置的訪問(wèn)。MSTDSL 的能力涵蓋了非常廣泛的功能。為了更加明了,本文只討論針對(duì)指定的解決方案實(shí)現(xiàn)單元測(cè)試所需的方法。該討論主要集中于構(gòu)成 MSTDSL 的命名空間中的兩個(gè)命名空間:識(shí)別器和操作。來(lái)自這些命名空間的實(shí)例支持對(duì)已安裝的智能標(biāo)記進(jìn)行枚舉、檢索特定的智能標(biāo)記實(shí)例、檢查屬性,并且在某些情況下,支持調(diào)用智能標(biāo)記接口上的方法并且無(wú)須將它們加載到 Microsoft Office 2003 中。

  該庫(kù)提供了用于訪問(wèn)識(shí)別器和操作的類似方法。首先,分別實(shí)例化命名空間集合 RecognizerCollection 和 ActionCollection,然后調(diào)用各自的加載方法(LoadRecognizers 或 LoadActions)。通過(guò)使用上述任一方法,該調(diào)用在系統(tǒng)注冊(cè)表中查找已安裝的智能標(biāo)記,并且試圖實(shí)例化它找到的任何智能標(biāo)記。在檢索了您感興趣的智能標(biāo)記對(duì)象的實(shí)例之后,MSTDSL 為很多公開的方法提供了簡(jiǎn)化接口。應(yīng)當(dāng)說(shuō)明的是,MSTDSL 并未公開智能標(biāo)記的每個(gè)屬性或方法,但是它的確提供了使用常見屬性或方法的能力。

使用 NUnit

  NUnit 是一個(gè)自動(dòng)單元測(cè)試框架,完全使用 C# 編寫(可以使用任何 Microsoft .NET 語(yǔ)言編寫)。您通過(guò)在由 NUnit 框架中的屬性描述的對(duì)象上實(shí)現(xiàn)方法來(lái)創(chuàng)建測(cè)試。在已經(jīng)實(shí)現(xiàn) NUnit 之后,NUnit .exe 文件(包括命令行和圖形用戶界面 [GUI] 文件)可以發(fā)現(xiàn)這些方法,并且以自動(dòng)方式運(yùn)行它們。該框架極其靈活,并且使測(cè)試可以查詢各種條件以及查找預(yù)期的異常。NUnit 下載隨附了一個(gè)示例項(xiàng)目,該項(xiàng)目演示了測(cè)試方法的各種使用方式,包括聲明各種條件和測(cè)試預(yù)期的異常。

圖 1. NUnit 測(cè)試應(yīng)用程序示例

  NUnit 用于運(yùn)行自動(dòng)測(cè)試的測(cè)試應(yīng)用程序

  當(dāng)您使用 NUnit 時(shí),對(duì)各種條件的測(cè)試通過(guò) NUnit.Framework.Assert 對(duì)象的多個(gè)靜態(tài)方法進(jìn)行了簡(jiǎn)化。NUnit 框架下載提供了有關(guān)該主題的文檔,但是該演示中的大多數(shù)測(cè)試都使用 Assert.IsTrue 方法來(lái)測(cè)試 True 條件,并且使用 Assert.AreEqual 方法來(lái)查找預(yù)期的條件。如果在這兩種情況下條件都失敗了,則整個(gè)測(cè)試失敗,并且 NUnit 應(yīng)用程序會(huì)顯示適當(dāng)?shù)男畔ⅰ?/p>

  我們之所以選擇 NUnit,是因?yàn)樗呀?jīng)由很多開發(fā)人員使用,它具有良好的說(shuō)明,它被認(rèn)為很穩(wěn)定,并且好的一點(diǎn)在于它是免費(fèi)的!盡管如此,如果您使用的是除 NUnit 以外的測(cè)試框架,那么請(qǐng)不要擔(dān)心。只要您的測(cè)試環(huán)境支持 Microsoft .NET 框架,您能夠使我們這里描述的技術(shù)適應(yīng)您自己的測(cè)試環(huán)境。

軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd