999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

CNONIX標準符合性測試研究*

2014-03-23 06:03:12吳潔明李碩征
計算機工程與科學 2014年5期
關鍵詞:標準信息

吳潔明,李碩征

(北方工業大學信息工程學院,北京100144)

1 引言

中國出版物在線信息交換CNONIX(China Online Information Exchange)標準為解決圖書出版整個產業鏈中,不同實體之間由于數據項和數據格式的不一致而造成的信息使用效率低下的問題,提供了一個切實可行的方案。該標準是在國外ONIX標準的基礎上結合我國國情制定的,旨在為我國圖書出版整個產業鏈各個階段提供標準的圖書信息交換格式,提高信息的質量以及使用效率[1]。

CNONIX作為計算機技術在圖書出版領域的應用,需要大量的軟件進行支撐。對相關的第三方軟件的標準符合性測試是保證相關軟件能夠符合CNONIX標準,保證CNONIX規定的數據項和數據格式得以正確應用的必要措施。本文首先介紹了CNONIX的數據格式;然后討論了CNONIX標準符合性測試的方法;最后通過一個CNONIX消息片段,對測試流程予以說明。

2 相關工作

國際上,對軟件產品進行標準符合性測試與確認的工作始于20世紀60年代末,從20世紀70年代初的程序語言的標準符合性測試發展到20世紀90年代的開發系統接口標準測試[2]。標準符合性測試已經從單純的計算機、通信標準擴展到醫療機械、電子政務等領域。然而,我國在這方面發展較慢。普遍認為,國內的標準測試開始于90年代,而且多是學術上的研究,局限于開發接口類標準上的測試,比如SQL標準符合性測試,還有就是JDBC、ODBC類的規范測試以及網絡協議方面的測試。在軟件產業實際應用中的普及還有待提高。

軟件標準符合性測試大多屬于黑盒測試,廣泛采用“瀑布模型”[2]。本文的測試方法也是建立在這種模型上的。

ONIX于1999年由歐美多個國家共同制定,2000年正式推出。程麗紅、馬蕾等人[3,4]詳細介紹了ONIX,并認為借鑒該標準是解決我國圖書發行行業信息不暢問題的一種辦法。2011年,相關單位參考ONIX開始制定更符合我國國情的CNONIX。

3 CNONIX元素分析

CNONIX屬于數據交換標準,它規定了整個圖書出版、發行過程中需要用到的所有數據元,并將其分為復合元素和元素兩類,它們之間的關系如圖1所示。

Figure 1 Structure of elements圖1 數據元的結構

圖1說明CNONIX中的數據形式是從復合元素開始的,復合元素包含元素和更低級別的復合元素。這種形式不斷地遞歸下去,直到某一個復合元素不再包含更低級別的復合元素為止。

CNONIX規定,采用XML格式的文件進行數據交換。每個可用的XML文件應該包含一組消息頭,復合元素以及一組或多組產品記錄復合元素。一條完整的消息格式如例1所示。如果消息中使用字符集,應使用XML聲明的格式。

元素是CNONIX標準中最小的數據單元,每個元素都有各自的屬性,包括選擇性、重復性、類型、位數、CNONIX代碼表編號等,同時還擁有英文標識。復合元素是由若干關聯的元素組成的數據集合,同樣擁有英文標識,但是只包含選擇性和重復性等屬性。

英文標識用于在XML文件中聲明元素或復合元素(為了方便,下文中如無特殊說明復合元素和元素都統稱為元素),屬性用于規范開始標簽和結束標簽之間的內容的約束。下面以CNONIX中的CNONIX for Books為代表(以下簡寫為CNONIX)予以說明,具體約束詳見表1。

Table 1 Element attributes constraints表1 元素屬性約束

類型屬性決定元素的輸入類型;長度是輸入的字符的長度;代碼表編號是指元素按照標準需要調用的代碼表的編號。根據CNONIX標準,當一個元素的類型為數字時,位數為定長,輸入的內容必須為CNONIX代碼表的編號;當類型為字符和數值時,位數為變長。

根據元素的選擇性以及使用條件,可以將所有的元素分為基本必備元素、基本擴展元素、條件必備元素和條件擴展元素。其中,基本必備元素是指在消息中應該必須出現的元素;基本擴展元素是指選擇性的、可選的元素;條件必備元素指當某一元素出現時,必須出現的元素;條件擴展元素指當某一元素出現時,可以出現也可以不出現的元素。總體來說,擴展元素通常用來對必備元素進行補充。

4 測試系統的設計

CNONIX的推廣需要一系列的產品來支撐該標準。其中,能夠根據用戶的需要自動生成相應的XML文件的軟件是必須要在投入使用前進行標準符合性測試的。這是因為CNONIX標準規范的重點就是用于進行信息交換的元素的屬性及數據內容。

有些時候需要測試的僅僅只是一個XML文件,例如,用戶自己用記事本編輯一個XML文檔來完成信息交換工作。在這種情況下,信息交換的參與者并不是利用專業的軟件自動生成XML文件。但是,為了能夠正常地進行信息交換,仍然需要在使用前對該XML文件進行標準符合性驗證,判斷其對于CNONIX標準的符合性。

本文針對這兩種情況分別設計了標準符合性測試方案。

4.1 對待測軟件的符合性測試

同大多數的標準符合性測試一樣,對于待測軟件的CNONIX標準符合性測試不需要考慮待測軟件內部的數據結構及運行邏輯,只需要考慮在合法或非法輸入的情況下是否能夠得到符合標準的XML文件或相應的錯誤信息。可以參考有關黑盒測試的相關經驗。整個測試的流程如圖2所示。

(1)根據待測軟件選取相應的輸入項,包括合法輸入及非法輸入,記錄合法輸入。

(2)檢查所有輸入中是否包含了所有的基本必備元素和條件必備元素。

(3)將所有的輸入作為測試用例輸入到待測軟件中,記錄所有可以獲得輸出的輸入。

(4)分析待測軟件的輸出。如果合法輸入沒有得到相應的輸出,則待測軟件不符合CNONIX標準。

(5)除合法輸入外,如果還有其它輸入可以獲得輸出,則待測軟件在處理相應的非法輸入時不符合CNONIX標準。

(6)根據合法輸入生成標準比對文件a(完全符合CNONIX標準)。

(7)將合法輸入對應的輸出b同a進行比對,如果一致則通過測試,否則不通過測試。

(8)生成測試報告。

Figure 2 Testing process圖2 測試流程

4.2 測試用例分析

在進行測試之前,需要考慮如何生成測試用例。CNONIX中每個元素的各個屬性對于輸入數據的各個方面做了明確的規定,所以可以采用等價類劃分法來生成測試用例。同時,對于輸入條件中規定了取值的范圍或者值的個數這種境況,由測試工作經驗得知,大量的錯誤是發生在輸入或輸出范圍的邊界上,而不是在輸入內部[5]。因而,本文在等價類用例的基礎上對某些屬性補充上邊界值,扣除重復的部分。

例如,對于位數屬性,輸入內容的長度可以分為最大長度(max)、大于最大長度(>max)、1和0四種情況。通過表1可以看出,如果單純計算各種屬性的不同情況共有2*2*3*4*2=96種可能,顯然各屬性對于生成測試用例來說存在交集。因此,必然存在更具有代表性的測試用例可以覆蓋多種可能。同時,考慮到實際應用,如此多的可能也帶來了相當大的困擾。

所有屬性中,選擇性和重復性約束的是元素的輸入次數,其它屬性約束的是應該輸入的內容。為了便于說明,設每個元素需要的測試用例個數為N。

首先考慮元素的選擇性和重復性。很明顯,對于每一種元素都有三種可能:不存在、唯一及大于1(重復)。其中,如果測試用例中該元素不存在,表明沒有輸入該元素,顯然其余各屬性不需要考慮。對于重復性,為了最大限度地縮減測試用例,同時不失一般性,考慮重復次數為2,即將一條符合標準的測試用例,重復輸入兩次。所以,每個元素需要的測試用例個數為:

N=N′+2

其中,N′為不考慮選擇性和重復性時,每個元素需要的測試用例數。2是表示考慮重復一次以及不作輸入這兩種情況。

考慮剩下的三種屬性。就位數屬性來說,對于定長以及未規定最大長度的元素有三種情況;對于變長且規定了最大長度的元素,只考慮邊界值,有0、1、max和max+1四種情況。其中,長度為0的情況相當于沒有輸入,在選擇性中已經討論。同時,因為長度為1和max都為符合條件的輸入,將這兩種情況合并,取長度為max的輸入作為代表。綜上,針對位數屬性做如下考慮:

其中,式(1)位數為變長,n為最大長度;式(2)位數為定長,n為規定長度。

就類型來說,字符類型較為特殊,因為輸入內容為數字、數值或者文字、符號都可以理解為字符。此時需要考慮的就是其它屬性對輸入的約束。數字類型和數值類型的區別是數字類型的最左側一位可以為0,數值類型則不可。例如,表2中所列的兩種元素。對于“最新印次”元素可以選取“999”作為合法輸入,“1000”、“099”及“a99”作為非法輸入,共三個測試用例。而對于“版權年份”元素可以選取“2012”作為合法輸入,“20120”作為非法輸入,共兩個測試用例。

Table 2 Element attributes(1)表2 部分元素屬性(1)

最后,考慮CNONIX代碼表編號屬性,因為并不是所有元素都包含該屬性。如果,一個元素包含該屬性,那么還需要驗證該元素的輸入是否與對應的CNONIX代碼表中的代碼相匹配。例如,對于正文字符集代碼(〈ScriptCode〉)元素,標準規定的代碼表中代碼為四位英文字符集,如Syrc(敘利亞文)是一個合法的輸入,而Ssss、Syrcc、Syr等都是與之對應的非法輸入。

另外,通過分析CNONIX標準中各元素的屬性得知,所有類型為數值型的元素都不含有CNONIX代碼表屬性。

因此,把元素的所有屬性綜合起來考慮,需要測試用例最多的元素的屬性為數字型、定長且有CNONIX代碼表屬性的元素。例如,對于表3中的元素(List 73規定輸入為00~39的數字),在不考慮重復性和選擇性的情況下,需要的測試用例至少有四個。可行的一組為:{01,011,0a,99},其中只有01是合法輸入。

Table 3 Element attributes(2)表3 部分元素屬性(2)

綜上,針對每個元素的測試用例至多有N=4+2=6個。

4.3 XML文件的標準符合性

根據之前的討論,CNONIX中規定的所有元素分為基本必備元素、基本擴展元素、條件必備元素、條件擴展元素四類。對于XML的檢測正是基于這四種分類的基礎上。以下是測試的邏輯:

(1)檢查待測文件是否符合XML格式,包括XML的相關聲明、開始標簽和結束標簽是否匹配等。

(2)檢查待測文件中的CNONIX的聲明標簽。

(3)檢查基本必備元素。

(4)檢查基本擴展元素。

(5)檢查最外層的條件擴展元素,即產品記錄復合元素下一級別的復合元素,這些通常可以用來聲明該文件實現的是哪一階段的信息交換。

(6)判斷XML文件最外層未驗證元素中條件必備元素的合法性。

(7)判斷XML文件最外層未驗證元素中條件擴展元素的合法性。

(8)重復第(6)步和第(7)步,直到所有元素都完成了驗證。

需要特別說明的是,這里的驗證只能驗證元素格式的合法性,對于數據內容無法進行檢測。由于部分條件必備元素的條件也許是條件擴展元素(不是必選項),所以只有在同一層所有元素都進行過驗證以后才能對下一級別元素進行驗證。

如果將整個XML文件看作是一棵樹的話,那么CNONIX聲明標簽就是整棵樹的根節點。

如果僅考慮基本元素的話,第(3)步和第(4)步中對于基本必備元素和基本擴展元素的驗證可以采用深度優先遍歷,順序是先頭文件信息后產品記錄信息。

如果砍掉所有基本必備元素的分支(消息頭復合元素和產品記錄復合元素保留),那么對其他元素的驗證類似廣度優先遍歷。

4.4 實例分析

下面的例2是一個CNONIX消息的片段:

例2 CNONIX信息片段

現用上節所述方法予以分析。在這段信息中:

(1)基本必備元素有:Header、ProductSender、SendDateTime、Notification Type;

(2)基本擴展元素有:Sender Identifier、Message Number、CollateralDetail和Cited Content;

(3)條件必備元素有:SenderIDType、Content-DateRole、Cited Content Type;

(4)條件擴展元素有:TextContent、Content Audience。

因此,標準符合性驗證的具體流程如下:

(1)整條信息中包含XML文件的聲明以及CNONIX的聲明,表明這條信息是用于進行CNONIX標準下的信息交換的。

(2)檢查基本必備元素,依次驗證Header、Sender、SendDate Time、Product、Notification-Type。

(3)檢查基本擴展元素,順序是先驗證SenderIdentifier,再驗證MessageNumber、Collateral-Detail,最后驗證Cited Content。

(4)檢查Sender IDType、CitedContent Type。

(5)檢查TextContent、Content Audience,至此最外層的條件元素檢查完畢,下面檢查下一次條件元素。

(6)檢查Content Date,本次迭代中最外層條件元素檢查完畢,進行下一次迭代。

(7)檢查ContentDateRole,至此所有元素檢查完畢。

5 設計與實現

基于本文的分析,采用JAVA(JDK7.0)作為編程語言,借助于Eclipse 4.2.0和Apache Tomcat 6.0環境搭建了一個CNONIX標準符合性測試平臺。同時,采用Oracle 10g作為數據庫保存標準中對各元素的約束。

5.1 測試用例生成

因為對于元素的選擇性和重復性的測試只需要重復輸入一次或不輸入,所以這兩個屬性在設計實現過程中沒有考慮,只考慮了類型、位數以及CNONIX代碼表這三個屬性。仍然是以上文提到的三個元素作為測試實例,重新整理后如表4所示,其中List 73規定的輸入為00~99的兩位數字。

Table 4 Element attributes(3)表4 部分元素屬性(3)

生成測試用例的時候,首先根據數據庫中保存的元素全部約束生成一條合法的輸入,然后修改位數、類型、代碼表等屬性以生成不合法的輸入。每條非法輸入都是通過對合法輸入最小改動得到的。實驗結果如表5所示。

Table 5 Element attributes(4)表5 部分元素屬性(4)

需要再次強調的是,表5中的結果是在不考慮元素的選擇性和重復性的情況下得到的。

5.2 XML文件的驗證

對XML文件的驗證,在設計和實現上借助了dom4j API,同時需要使用XSD(XML Schema Definition)語言記錄標準中各元素(及復合元素)的規則。在進行測試之前需要做些準備工作。首先,根據4.2節和4.3節的分析,按照相應方法生成與待測XML文件對應的XSD文件來保存校驗規則。其次,為了引入XSD文件,需要修改XML中的標簽,將〈ONIXMessage release="3.0"〉改為〈ONIXMessage release="3.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:no NamespaceSchema Location="XSD文件地址"〉,以便使用dom4j API配合XSD語言來對相應的XML文件進行驗證。

最后,需要再次強調的是,這一部分里提到的測試和驗證,只是測試信息的結構是否符合CNONIX標準,并不能驗證信息的具體內容。

6 結束語

本文針對CNONIX系列標準提出了一個標準符合性測試的設計方案,并以CNONIX for Books為代表討論了作為輸入的測試用例的數量及生成方案。最后,考慮到CNONIX屬于數據交換標準,為了方便信息的流通,設計了一個直接檢驗相關XML文件的方案,并提供了一個實例片段進行了說明。

通過討論,發現由于元素量大、每條元素屬性影響明顯,進行覆蓋測試需生成大量的測試用例。雖然在文中了對單個元素的屬性進行了分析,但是以此為依據進行測試需要的測試用例數量仍然不小。因而,在未來的工作中,將重點研究元素之間的相關性,期望可以進一步縮減測試用例數目。

[1] China online information exchange for books(CNONIX)[S].Beijing:State Administration of Press,Publication,Radio,Film and Television of the People’s Republic of China,2013.(in Chinese)

[2] Deng Yi,Liu You-cheng.Test method for measuring a software’s conformance to standards[J].Journal of Beijing University of Aeronautics and Astronautics,1997,23(1):68-73.(in Chinese)

[3] Cheng Li-hong.ONIX:The key of book industry information standards in China[EB/OL].[2007-06-18].http://www.360doc.com/content/09/0411/22/81544_3099364.shtml.(in Chinese)

[4] Ma Lei.Metadata standards for electronic publications,ONIX[J].Journal of Modern Information,2003(1):64-66.(in Chinese)

[5] Kan Dan-dan.Several commonly used test case design methods and its applications[J].Computer Knowledge and Technology,2010,6(1):118-120.(in Chinese)

[6] Zhu Hai-yan.An algorithm for software test suite reduction[J].Microelectronics and Computer,2007,24(1):204-206.(in Chinese)

[7] Cui Qi,Ma Nan,Liu Xian-gang.Design and implementation of compliance test on TPM interface command[J].Computer Engineering,2009,35(2):129-132.(in Chinese)

[8] Zhong Rong-hua,Huang Jian,Chen Bin,et al.Research on federate compliance test method[C]∥Proc of the 7th International Conference on System Simulation and Scientific Computing,2008:851-856.

[9] Hegde V,Respironics P.Compliance testing is not reliability testing[C]∥Proc of Annual Reliability and Maintainability Symposium(RAMS),2010:1-5.

附中文參考文獻:

[1] 中國出版物在線信息交換(CNONIX)圖書[S].北京:中華人民共和國國家新聞出版廣電總局,2013.

[2] 鄧昳,劉又誠.軟件標準符合性測試[J].北京航空航天大學學報,1997,23(1):68-73.

[3] 程麗紅.ONIX:我國書業發行信息標準的鑰匙[EB/OL].[2007-06-18].http://www.360doc.com/content/09/0411/22/81544_3099364.shtml.

[4] 馬蕾.電子出版物元數據標準ONIX[J].現代情報,2003(1):64-66.

[5] 闞丹丹.幾個常用測試用例設計方法及應用[J].電腦知識與技術,2010,6(1):118-120.

[6] 朱海燕.軟件測試用例縮減的一個算法[J].微電子學與計算機,2007,24(1):204-206.

[7] 崔奇,馬楠,劉賢剛.TPM接口命令標準符合性測試的設計與實現[J].計算機工程,2009,35(2):129-132.

猜你喜歡
標準信息
2022 年3 月實施的工程建設標準
忠誠的標準
當代陜西(2019年8期)2019-05-09 02:22:48
美還是丑?
你可能還在被不靠譜的對比度標準忽悠
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
一家之言:新標準將解決快遞業“成長中的煩惱”
專用汽車(2016年4期)2016-03-01 04:13:43
2015年9月新到標準清單
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
信息
建筑創作(2001年3期)2001-08-22 18:48:14
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 色偷偷av男人的天堂不卡| 91麻豆精品国产高清在线| 91偷拍一区| 免费一级毛片在线播放傲雪网| 久久精品国产电影| 亚洲国产成人自拍| 亚洲一级无毛片无码在线免费视频| 亚洲日韩精品无码专区| 玖玖精品在线| 91蝌蚪视频在线观看| 国产亚洲高清在线精品99| 亚洲国产综合精品一区| 色综合五月| 国产最爽的乱婬视频国语对白| 国产高清在线观看| 欧美午夜在线播放| 亚洲欧美日韩中文字幕在线一区| 久久国产毛片| 97视频精品全国免费观看| 中文字幕天无码久久精品视频免费| 国产91视频观看| 色爽网免费视频| 国产激情在线视频| 国产精品欧美激情| 九色最新网址| 无码国产偷倩在线播放老年人| 国产一国产一有一级毛片视频| 小说 亚洲 无码 精品| 国产激情无码一区二区APP | 在线观看无码av五月花| 欧美日韩资源| 亚洲国产成人在线| 福利在线免费视频| 91精品情国产情侣高潮对白蜜| 成人噜噜噜视频在线观看| 国产日本欧美亚洲精品视| 亚洲第一极品精品无码| 亚洲人成人伊人成综合网无码| 久草视频福利在线观看| 久久96热在精品国产高清| 国产永久无码观看在线| 欧美一级夜夜爽www| 99精品免费欧美成人小视频| 欧美人与动牲交a欧美精品| 99999久久久久久亚洲| 丰满人妻久久中文字幕| 伊人久久婷婷五月综合97色| 伊在人亚洲香蕉精品播放| 极品国产在线| 中文字幕亚洲无线码一区女同| 99久久国产自偷自偷免费一区| 久久人人97超碰人人澡爱香蕉| 久久久精品无码一二三区| 欧美视频在线不卡| 国产一区免费在线观看| 日韩av高清无码一区二区三区| 欧美精品v| 99热免费在线| 国产新AV天堂| 又污又黄又无遮挡网站| 国产亚洲男人的天堂在线观看| 2022精品国偷自产免费观看| AV熟女乱| 欧美在线观看不卡| 99免费视频观看| 一级爆乳无码av| www.91在线播放| 伊人久久久大香线蕉综合直播| 亚洲精品成人福利在线电影| 免费看美女毛片| 无码不卡的中文字幕视频| 无码'专区第一页| 亚洲黄色片免费看| 国产无套粉嫩白浆| 在线网站18禁| 亚洲国产精品一区二区高清无码久久| 午夜国产在线观看| 亚洲精品欧美重口| 国产伦精品一区二区三区视频优播 | 色婷婷在线影院| 色妞www精品视频一级下载| 国产乱人伦偷精品视频AAA|