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

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

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