摘 要 XML基準(zhǔn)測試已經(jīng)成為流行的XML文檔管理技術(shù)的測試方法。文章從測試場景、測試數(shù)據(jù)和對XQuery支持三方面,對主流的五種XML基準(zhǔn)測試:Xmach-1、Xmark、Xbench、XOO7和TpoX進(jìn)行了比較與分析。并闡明了這五種測試方法當(dāng)前所存在的問題。
引 言
隨著XML技術(shù)在各種應(yīng)用領(lǐng)域中廣泛的使用,越來越多的數(shù)據(jù)以XML文檔形式呈現(xiàn)。如何對海量的XML文檔進(jìn)行有效管理,已成為人們所研究的熱點(diǎn)。目前,主要有兩類技術(shù)來管理大批量XML文檔,分別是XML原生數(shù)據(jù)庫技術(shù)和關(guān)系數(shù)據(jù)庫擴(kuò)展技術(shù)。前者主要以開源軟件居多,且內(nèi)部多依靠Xpath、XQuery技術(shù)實(shí)現(xiàn),現(xiàn)已有eXist、MonetDB/XQuery和BaseX等十余款產(chǎn)品;后者基本上是成熟的商業(yè)關(guān)系數(shù)據(jù)庫,通過附加插件的方式,以增加對XML文檔管理的能力,代表產(chǎn)品有IBM的PureXML、Oracle的XDK等。
伴隨著XML文檔管理技術(shù)的發(fā)展,衡量各種技術(shù)的處理效率的要求也日益增長。XML基準(zhǔn)測試是一種衡量XML文檔管理技術(shù)的測試方法。對開發(fā)者而言,通過XML基準(zhǔn)測試,可以衡量已有技術(shù)的處理效率,對未來的開發(fā)有指導(dǎo)意義;對用戶來說,它的結(jié)果是選擇XML文檔管理產(chǎn)品時的可靠依據(jù)。
XML基準(zhǔn)測試簡介
從1999年FK提出XML 數(shù)據(jù)向關(guān)系數(shù)據(jù)庫映射效率問題起,到2001年首個開源產(chǎn)品Xmach-1面世,再到2007年首個有工業(yè)支持背景的TpoX,其間出現(xiàn)了多種XML基準(zhǔn)測試。截止2010年,共有Xmach-1、Xmark、MBench等十余款產(chǎn)品面世。其設(shè)計出發(fā)點(diǎn)、測試重點(diǎn)、實(shí)現(xiàn)機(jī)制各不相同。本文挑選了在實(shí)際應(yīng)用中獲得廣泛使用的五種主流基準(zhǔn)測試作為研究對象進(jìn)行闡述。
Xmach-1是萊比錫大學(xué)E. Rahm與T. Böhme在2000年研發(fā)的一款多用戶基準(zhǔn)測試。其系統(tǒng)框架包括XML數(shù)據(jù)庫、應(yīng)用服務(wù)器、數(shù)據(jù)負(fù)載器和用戶端瀏覽器。其不僅是第一款開源產(chǎn)品,也是第一款面向多用戶的基準(zhǔn)測試。
Xmark是CWI小組的R. Busse、M. Carey等人在2003年提出的。它是單用戶級別的基準(zhǔn)測試。它模擬了一個網(wǎng)絡(luò)拍賣的應(yīng)用環(huán)境。與其他測試不同的是,它只采用了一個容量可伸縮,最大可達(dá)10GB的XML文件,作為測試基礎(chǔ)數(shù)據(jù)。
Xbench是滑鐵盧大學(xué)B.Yao與M. Tamer Özsu等人與2002年提出。其將實(shí)際中的XML文檔應(yīng)用,按單、多文檔和數(shù)據(jù)集中、文本集中等特征進(jìn)行交叉劃分,分為四類應(yīng)用類型。基于各種類型,有不同的測試策略。
XOO7是在完善的OO7基準(zhǔn)測試的基礎(chǔ)上,U. Nambiar等人在2001年擴(kuò)充完成的。其出發(fā)點(diǎn)是測試基于面向?qū)ο蠹夹g(shù)的數(shù)據(jù)庫管理系統(tǒng),對XML文檔的處理能力。
TpoX是M. Nicola和A. Gonzalez等人在2007年提出的。與前述基準(zhǔn)測試不同,TpoX項目的參與人員均來自商業(yè)公司,是第一款有工業(yè)背景的基準(zhǔn)測試。它模擬了一個多用戶的金融應(yīng)用環(huán)境。
比較與分析
盡管各種測試的研發(fā)出發(fā)點(diǎn)和實(shí)現(xiàn)技術(shù)各不相同,但其執(zhí)行流程都遵循如下順序:先生成測試場景,再基于場景生成測試基礎(chǔ)數(shù)據(jù),最后再使用XQuery對數(shù)據(jù)進(jìn)行操作,即輸出最終的測試用例。以下也從該三方面進(jìn)行比較與分析。
測試場景
測試場景是與待測試軟件的執(zhí)行相對應(yīng)的一個活動場景,由一系列活動按照一定的順序組成,它描述了系統(tǒng)的典型活動過程,是系統(tǒng)業(yè)務(wù)特性的一種體現(xiàn)。一個設(shè)計優(yōu)秀的測試場景,將使測試更符合實(shí)際使用情況,揭示出產(chǎn)品在現(xiàn)實(shí)應(yīng)用中的真實(shí)表現(xiàn)。
Xmach-1的測試場景是構(gòu)建了一個多用戶的圖書論文管理系統(tǒng),共有目錄文檔和受管文檔兩類文檔,其各自又包含結(jié)構(gòu)化數(shù)據(jù)和文本數(shù)據(jù)兩種數(shù)據(jù)類型。測試場景映射為數(shù)據(jù)庫的ER圖后,包含文檔、題目、章節(jié)、作者名等共8個實(shí)體,及這些實(shí)體之間的18個相互關(guān)系。
Xmark的測試場景是構(gòu)建了一個單用戶的網(wǎng)絡(luò)拍賣站點(diǎn),模擬一個注冊用戶從挑選拍賣品開始,到出價定拍結(jié)束的整個流程。其主要實(shí)體有注冊用戶、拍賣品、出價等共6個,其之間交互關(guān)系有9個。
Xbench將測試場景依據(jù)應(yīng)用特性和數(shù)據(jù)特性分為四類:DC/SD、DC/MD、TC/SC和TC/MD。其分別模擬不同的在線應(yīng)用,如DC/SD模擬一個在線購物網(wǎng)站,DC/MD為B2B系統(tǒng)。但總體來說,其性質(zhì)還是偏向電子商務(wù)類的應(yīng)用系統(tǒng)。四類中最為復(fù)雜的DC/SD,其實(shí)體包括日期、發(fā)布者等十余個,關(guān)系也達(dá)到了數(shù)十個。從數(shù)量上來說,是五種基準(zhǔn)測試中最多的。
XOO7可以說是OO7基準(zhǔn)測試的XML版,其測試場景也是依據(jù)OO7而設(shè)定。構(gòu)建了一個用戶交互頻繁的電子商務(wù)系統(tǒng)。實(shí)體包括用戶信息、基本匯集信息等共11個,關(guān)系也達(dá)到了42條。是本次比較中,實(shí)體數(shù)僅次于Xbench的。
TpoX是五種基準(zhǔn)測試中面世最晚的,其在場景設(shè)計中,也借鑒了先前各種方法的經(jīng)驗。它仍然是構(gòu)建一個基于Web的電子商務(wù)系統(tǒng),但其實(shí)體數(shù)只有用戶、賬戶等共5個,其關(guān)系沒有事先指定,而是封裝在了41個外部的XSD文件中。這樣,在測試過程中,可以從XSD文件中靈活地選擇搭配,來組合出符合測試者關(guān)注點(diǎn)的測試場景。
測試數(shù)據(jù)
測試數(shù)據(jù)是指依據(jù)已有的測試場景,遵循實(shí)體--關(guān)系的定義,自動生成的大批量基礎(chǔ)數(shù)據(jù)。是在實(shí)際測試前,生成并輸入到數(shù)據(jù)庫中,做為測試用例的數(shù)據(jù)輸入。衡量測試數(shù)據(jù)是否有效,一般從數(shù)據(jù)量和數(shù)據(jù)生成方式兩方面進(jìn)行。過小規(guī)模的數(shù)據(jù)量,無法模擬真實(shí)的使用環(huán)境;通過簡單的隨機(jī)方式生成的數(shù)據(jù),也無法有效地反映XML文檔管理系統(tǒng)的處理效率。
表1從默認(rèn)數(shù)據(jù)集容量、生成方式及種子來源三個方面對五種基準(zhǔn)測試進(jìn)行了比較。

表1 測試數(shù)據(jù)比較
XQuery支持
W3C于2001年12月提出了XML查詢語言規(guī)范—XQuery語言。XQuery是一種對XML結(jié)構(gòu)的文檔和數(shù)據(jù)進(jìn)行查詢的語言,它汲取了其它多種查詢語言的優(yōu)點(diǎn),適用于各種類型的XML數(shù)據(jù)源的查詢,而且簡潔靈活易于實(shí)現(xiàn)。
當(dāng)前幾乎絕大多數(shù)的XML文檔管理系統(tǒng),都是基于XQuery來實(shí)現(xiàn)對XML文檔的CRUD操作。相應(yīng)的,五種基準(zhǔn)測試均不同程度上使用了XQuery技術(shù),來生成測試用例,以檢驗XML文檔管理的處理效率。
W3C制定的XML Query Use Case中舉出了XQuery操作實(shí)例,五種基準(zhǔn)測試均借鑒了其操作方式。為便于比較,將操作實(shí)例映射為數(shù)據(jù)庫的增加、查詢、更新與刪除操作(CRUD)。表2給出了各基準(zhǔn)測試對XQuery支持的情況。
需要指出的是,所生成的XQuery,依賴于被測的XML文檔管理系統(tǒng)。如TpoX所生成的XQuery查詢語句針對DB2進(jìn)行了許多優(yōu)化,使得其七個語句充分?jǐn)U展后,可以支持CRUD四種操作。

測試數(shù)據(jù)比較
3 現(xiàn)有問題
XML基準(zhǔn)測試目前已經(jīng)在眾多實(shí)際XML數(shù)據(jù)集中的項目中,得到廣泛應(yīng)用:Amsterdam大學(xué)在ILPS項目中使用了xmach-1;Berkeley大學(xué)的B. Yanbin等人的XSet搜索引擎中使用了XBench;TPox在10T數(shù)據(jù)規(guī)模的實(shí)驗室環(huán)境中,成功地進(jìn)行了測試。
盡管XML基準(zhǔn)測試在實(shí)際應(yīng)用有不錯的表現(xiàn),但其仍存在一些問題:
1)生成的部分XQuery語句已經(jīng)過時,與W3C標(biāo)準(zhǔn)不兼容
L. Afanasiev以Galax、SaxonB等以Native XML數(shù)據(jù)庫存儲XML文檔,進(jìn)行了XMach-1、XOO7共5款基準(zhǔn)測試,發(fā)現(xiàn)在總共生成的163個XQuery語句中,有62個不符合W3C標(biāo)準(zhǔn)。XOO7由于開發(fā)版本較早,其22個語句竟然無一符合。
由于XML具有高度的自由性,盡管不符合W3C標(biāo)準(zhǔn),仍能被處理。但W3C標(biāo)準(zhǔn)代表了業(yè)界開發(fā)標(biāo)準(zhǔn),越來越多的產(chǎn)品以W3C標(biāo)準(zhǔn)作為開發(fā)規(guī)范。XML基準(zhǔn)測試如不能與W3C標(biāo)準(zhǔn)較好兼容的話,其測試結(jié)果將不能真實(shí)體現(xiàn)這些產(chǎn)品的實(shí)際性能。
2)測試場景單一,與實(shí)際使用的系統(tǒng)相差較大
按測試場景的應(yīng)用領(lǐng)域來分,Xmach-1模擬了圖書論文管理系統(tǒng),其余四款均是模擬了在線的電子商務(wù)系統(tǒng)。但對近年來大規(guī)模應(yīng)用XML的社交網(wǎng)絡(luò)、e-learning系統(tǒng),以上五種測試均未涉及。此外,在已模擬的電子商務(wù)場景中,各種測試生成的模擬操作均是成功的流程用例。但實(shí)際環(huán)境中,存在大量的交易取消和交易失敗的情況。Xbench對場景進(jìn)行了細(xì)分,是五種測試中場景定義最好的,但也存在生成的用例,難以達(dá)到復(fù)雜應(yīng)用對系統(tǒng)輸入的要求。
3)測試數(shù)據(jù)類型只基于ASCII碼;內(nèi)容缺乏針對性;生成方式單一
五種基準(zhǔn)測試生成的測試數(shù)據(jù),絕大多數(shù)都是基于ASCII字符集的英文語系內(nèi)容,沒有設(shè)計其他語種的文字內(nèi)容。在軟件開發(fā)國際化要求越來越突出的背景下,不支持多語種大字符集(如Unicode)的基準(zhǔn)測試,很難得到廣泛應(yīng)用。
此外,測試數(shù)據(jù)的內(nèi)容過于寬泛,缺乏針對性。在使用非隨機(jī)數(shù)的基準(zhǔn)測試中,Xmach-1使用的是純詞頻優(yōu)先方式,對出現(xiàn)在主流報刊的詞匯進(jìn)行挑選;Xbench選擇了牛津詞典作為數(shù)據(jù)來源;Xmark與Xmach-1類似,將常見的詞匯作為數(shù)據(jù)來源。這樣所選取的數(shù)據(jù),內(nèi)容覆蓋過廣,缺乏代表性,不能較好體現(xiàn)被測系統(tǒng)所面向特定領(lǐng)域的特點(diǎn)。如藥品的拉丁文英文譯名在實(shí)際情況下,極少出現(xiàn)在一家出售家用電器的B2B系統(tǒng)中。
生成方式單一也有可能會導(dǎo)致數(shù)據(jù)質(zhì)量不高。除Xbench使用了概率模型,其他幾種主要使用了隨機(jī)生成方法。由于隨機(jī)種子的限制,很難保證數(shù)據(jù)不出現(xiàn)重復(fù)。而數(shù)據(jù)重復(fù)現(xiàn)象,在TB級別的數(shù)據(jù)生成時,將較大影響測試效果。
結(jié) 論
XML基準(zhǔn)測試是一種衡量XML文檔管理技術(shù)的測試方法。本文從測試場景、測試數(shù)據(jù)和對XQuery支持三方面對五種主流的XML基準(zhǔn)測試進(jìn)行了比較與分析。此后,指出了其現(xiàn)存的問題。
XML基準(zhǔn)測試在實(shí)際應(yīng)用中使用頻率逐漸增加,日益得到人們認(rèn)可。如能在未來的研發(fā)過程中,不斷完善功能,彌補(bǔ)自身現(xiàn)有缺陷,將成為評測XML文檔管理技術(shù)的有力工具。