崔艷婷
(中國傳媒大學 信息工程學院,北京 100024)
面向標準符合性測試的接口標準建模方案
崔艷婷
(中國傳媒大學 信息工程學院,北京 100024)
為了減少標準符合性測試工作中標準文檔編寫以及自然描述語言轉(zhuǎn)化的人工工作量,對自然描述語言向結(jié)構(gòu)化的數(shù)據(jù)格式的轉(zhuǎn)換進行了研究,提出了對標準進行建模的解決方案,該方案建立了接口類標準的可擴展的公共標簽庫,基于該標簽庫可以自動生成接口描述文檔及標準文檔的接口描述部分,提高標準符合性測試的效率。
符合性測試;建模;標簽庫
標準是為了在一定的范圍內(nèi)獲得最佳秩序,經(jīng)協(xié)商一致制定并由公認機構(gòu)批準,共同使用和重復使用的一種規(guī)范性文件[1]。軟件信息標準的作用是統(tǒng)一軟件開發(fā)上的數(shù)據(jù)格式、通信方式和設(shè)計模式等,目的是實現(xiàn)資源共享,最終在軟件使用上方便用戶[2]。在標準實施過程中,為保證各個軟件開發(fā)商都能準確遵循相應標準工作,人們提出了標準符合性測試的技術(shù)手段。
軟件標準符合性測試是指從標準出發(fā),對軟件產(chǎn)品進行嚴格、定量的測試,以確認產(chǎn)品是否符合該標準,或在多大程度上符合標準[3]。國內(nèi)目前的標準符合性測試從被測內(nèi)容來分可分為三個方面,分別是超大容量字符集的選擇性驗證、接口類的編程規(guī)范檢驗和數(shù)據(jù)庫中數(shù)據(jù)和設(shè)計方面在應用上的約束性規(guī)范。在目前的國內(nèi)市場上除了接口類的部分測試工作借助于智能機操作,其他兩個方面基本上都是手工進行的[2]。標準的符合性測試工作從最初的自然語言收集到最終的測試報告,一般需要經(jīng)歷自然語言整理、描述語言轉(zhuǎn)化、測試用例生成和對被測軟件的運行結(jié)果解析四個階段的工作[2],目前自然語言的整理即標準文檔的編寫工作是由標準編寫人員在word環(huán)境下編寫,工作量大且容易出錯;將自然描述語言轉(zhuǎn)換為機器可讀的語言即信息格式化也是由人工編寫代碼來完成,工作繁瑣,耗費大量時間與精力,同時在測試用例的生成中也需要人工添加約束條件,無法批量生成測試用例。
本文從這兩個問題出發(fā),提出了對標準進行建模的解決思路,根據(jù)對接口類的標準文檔進行整理后設(shè)計出一套較完整的并支持可擴展的公共標簽庫。基于該標簽庫,借助可視化的XML文檔編輯工具,可自動生成接口描述文檔,一方面,由于該文檔是以XML(可擴展標記語言)格式存儲的,是機器可讀的表達形式,可直接用于測試用例的批量生成;另一方面,通過解析接口描述文檔,可自動生成標準文檔中的接口描述部分,省去了其在word中編輯的工作量,改變傳統(tǒng)標準編寫的流程,有利于技術(shù)人員通過XML語言來實現(xiàn)標準中部分內(nèi)容的自動生成。
公共標簽庫的設(shè)計原則:
1.科學性公共標簽庫用于標準的編寫及標準描述文檔的生成,因此必須遵循標準編寫的規(guī)范,本文設(shè)計的公共標簽庫嚴格遵循接口類標準中對接口描述的規(guī)范,每個標簽都有其特定的意義,適用于接口類標準,保證了公共標簽庫的科學性。
2.完整性通過對分析綜合多個接口類標準文檔后提取出來的標簽,基本包含了自然語言對接口的所有描述,保證了公共標簽庫的完整性。
3.可擴展性為了能適應未來的標準文檔,公共標簽庫需支持可擴展,本文設(shè)計的公共標簽庫是基于XML語言的,而XML語言本身具有良好的可擴展性,保證了公共標簽庫的可擴展性。
(1)接口標準的基本結(jié)構(gòu)
在接口類的標準文檔中,關(guān)于接口說明的內(nèi)容與格式是固定的。一個標準里包含多個接口,對每個接口規(guī)定了其描述的內(nèi)容與格式。首先是對接口的名稱及其說明描述;其次對接口的參數(shù)分類描述,包括輸入?yún)?shù)、輸出參數(shù)及返回參數(shù);最后是對每個參數(shù)的詳細描述。
如表1是一個接口的輸入?yún)?shù)的示例。

表1 接口輸入?yún)?shù)示例
(2)公共標簽庫的整體框架
將接口標準中描述的內(nèi)容提取為標簽加入標簽庫中,并根據(jù)實際情況設(shè)置該標簽的可選性。由于接口描述文檔是以XML格式存儲的,因此標簽庫應該有直觀嚴謹?shù)膶哟侮P(guān)系,圖1是公共標簽庫的基本結(jié)構(gòu)。需要名稱標識的標簽都可貼上一個屬性標簽,如接口函數(shù)標簽有一個屬性標簽,標簽名為名稱。

圖1 公共標簽庫的整體框架
(3)標簽類型的定義
在接口描述文檔中,每個標簽的內(nèi)容都有一定的類型規(guī)范,因此需要為每個標簽定義其類型,以確保用戶在信息錄入時的格式正確,最底層的標簽為簡單類型,其他標簽為自定義的復雜類型。表2為部分標簽的類型定義示例。
(4)約束類的設(shè)計
在接口描述文件中,每個參數(shù)都有自己的類型,包括簡單類型和復雜類型,需要針對各種類型的參數(shù)進行不同的約束,以保證測試用例的生成。在標簽庫中將對參數(shù)的約束分為以下幾種:無約束、長度范圍、取值范圍、集合長度、枚舉范圍、日期格式、特定值、正則表達式、文件類型和文件路徑,對于每一種不同的約束需

表2 部分標簽的類型定義
要不同的標簽來完成約束條件。表3為各個約束類的約束標簽,在對參數(shù)進行約束時,每個參數(shù)只能選擇其中一種約束,所以各個約束類是多選一的關(guān)系,并且所選擇的約束類中的約束標簽必須全部出現(xiàn)且只出現(xiàn)一次,因此將同一個約束類下的約束標簽定義為標簽組的形式。

表3 約束類和約束標簽定義
公共標簽庫設(shè)計完成之后,為每一個標簽添加內(nèi)容,得到標準約束文檔。基于該標簽庫生成的標準描述文檔應具有如下的格式:
〈接口 名稱=“接口描述”〉
〈接口所在類 名稱=“接口所在類名 ”〉
〈接口函數(shù) 名稱=“接口函數(shù)名”〉
〈中文名稱〉接口中文名稱〈/中文名稱〉
〈參數(shù) 名稱=“參數(shù)名”〉
〈中文名稱〉參數(shù)中文名稱〈/中文名稱〉
〈輸入輸出類型〉輸入輸出類型〈/輸入輸出類型〉
〈刪除標識〉是否可刪除〈/刪除標識〉
〈類型定義〉參數(shù)的類型定義〈/類型定義〉
〈類定義全名〉參數(shù)的類定義全名〈/類定義全名〉
〈簡單類型標識〉是否為簡單類型〈/簡單類型標識〉
〈集合類型標識〉是否為集合類型〈/集合類型標識〉
〈可選性〉參數(shù)的可選性〈/可選性〉
〈編碼方式〉參數(shù)的編碼方式〈/編碼方式〉
〈約束類 名稱=“ 約束類名”〉 〈!--無約束時省略--〉
〈!--具體的約束描述--〉
〈/約束類〉
〈說明〉對該參數(shù)的說明〈/說明〉
〈示例〉參數(shù)示例〈/示例〉
〈參數(shù)〉〈/參數(shù)〉 〈!--當參數(shù)是簡單類型時省略--〉
〈/參數(shù)〉
〈/接口函數(shù)〉
〈/ 接口所在類 〉
〈/接口〉
從接口描述文檔中可以看出,基于本文設(shè)計的公共標簽庫生成的接口描述文檔,基本覆蓋了對所測接口的信息描述,根據(jù)該文檔中描述的接口信息與約束條件可批量生成測試用例;在標準編寫時,解析該文檔,提取標準文檔描述需要的標簽與內(nèi)容,可自動生成標準文檔中的接口描述部分。
現(xiàn)根據(jù)標準《數(shù)字家庭項目標準—數(shù)字家庭地理信息服務(wù)接口規(guī)范》[4],在本文所設(shè)計的公共標簽庫的基礎(chǔ)上,利用XML可視化編輯工具對其文化教育接口的請求參數(shù)描述進行建模。在標準中對這個接口的請求參數(shù)描述如表4所示:

表4 天氣信息接口請求參數(shù)
注:可選性分為:必選:M;條件必選:C。
操作步驟如下:
1.根據(jù)給出的接口參數(shù)信息,對應公共標簽庫中的各個標簽(標簽庫如圖1所示),在可視化工具中錄入接口信息。該接口函數(shù)有四個輸入?yún)?shù),分別將其對應的標簽內(nèi)容錄入。
2.選擇需要進行約束的接口并輸入約束條件。該函數(shù)有三個接口有約束,接口ID與接口名稱的約束是特定值,請求查詢的類型的約束是枚舉范圍,分別給這三個參數(shù)錄入不同的約束條件。
3.根據(jù)1和2中錄入的信息生成接口描述文檔:
〈interface name=“接口描述”〉
〈mainClass name=“”〉
〈operation name=“EducationInfo”〉
〈cnName〉文化教育接口〈/cnName〉
〈param name=“InterfaceID”〉
〈cnName〉接口ID〈/cnName〉
〈ioType〉輸入?yún)?shù)〈/ioType〉
〈isDelete〉false〈/isDelete〉
〈className〉integer〈/className〉
〈packClass〉integer〈/packClass〉
〈bSimple〉true〈/bSimple〉
〈bArray〉false〈/bArray〉
〈isRequired〉必選〈/isRequired〉
〈encodeMode〉無編碼〈/encodeMode〉
〈restrictClsName name=“fixObject”〉
〈value〉8〈/value〉
〈/restrictClsName〉
〈/param〉
〈param name=“InterfaceName”〉
〈cnName〉接口名稱〈/cnName〉
〈ioType〉輸入?yún)?shù)〈/ioType〉
〈isDelete〉false〈/isDelete〉
〈className〉string〈/className〉
〈packClass〉string〈/packClass〉
〈bSimple〉true〈/bSimple〉
〈bArray〉false〈/bArray〉
〈isRequired〉必選〈/isRequired〉
〈encodeMode〉無編碼〈/encodeMode〉
〈restrictClsName name=“fixObject”〉
〈value〉EducationInfo〈/value〉
〈/restrictClsName〉
〈/param〉
〈param name=“CityName”〉
〈cnName〉城市名稱〈/cnName〉
〈ioType〉輸入?yún)?shù)〈/ioType〉
〈isDelete〉false〈/isDelete〉
〈className〉string〈/className〉
〈packClass〉string〈/packClass〉
〈bSimple〉true〈/bSimple〉
〈bArray〉false〈/bArray〉
〈isRequired〉必選〈/isRequired〉
〈encodeMode〉無編碼〈/encodeMode〉
〈/param〉
〈param name=“Type”〉
〈cnName〉請求查詢的類型〈/cnName〉
〈ioType〉輸入?yún)?shù)〈/ioType〉
〈isDelete〉false〈/isDelete〉
〈className〉integer〈/className〉
〈packClass〉integer〈/packClass〉
〈bSimple〉true〈/bSimple〉
〈bArray〉false〈/bArray〉
〈isRequired〉可選〈/isRequired〉
〈encodeMode〉無編碼〈/encodeMode〉
〈restrictClsName name=“enumObject”〉
〈objectList〉1#2#3〈/objectList〉
〈/restrictClsName〉
〈/param〉
〈/operation〉
〈/mainClass〉
〈/interface〉
本文提出的基于公共標簽庫的建模方案,建立了一套較完整的公共標簽庫,是一個較大的突破點與創(chuàng)新點。實現(xiàn)了標準描述文檔的自動生成,在該基礎(chǔ)上可批量生成測試用例以及自動生成標準文檔的接口描述部分。該方案具有以下特點:
1.高效率性。從本方案的設(shè)計目的上不難看出,將自然語言的轉(zhuǎn)化和標準文檔的生成交給計算機來完成,大大減輕了人工工作量,提高了標準符合性測試的工作效率。
2.直觀性。標簽庫的設(shè)計是基于XML的,XML本身結(jié)構(gòu)層次清晰,便于閱讀,用戶在使用可視化工具的時候也避免了與程序語言打交道,可直觀的從用戶界面錄入接口信息。
3.可擴展性。XML的主要特點是它的可擴展性和靈活性[5],支持用戶自定義標簽,基于XML設(shè)計的標簽庫必然也具有良好的可擴展性。
[1]GB/T 20000.1-2002,標準化工作指南 第1部分:標準化和相關(guān)活動的通用詞匯[S].北京:中國標準出版社,2002.
[2]范國梅.標準符合性測試平臺的研究與實現(xiàn)[D].北京:北方工業(yè)大學,2012.
[3]鄧日矢,劉又誠.軟件標準符合性測試[J].北京航空航天大學學報,1997,23(1):68-73.
[4]XBSZJT 12-2013,數(shù)字家庭項目標準 數(shù)字家庭地理信息服務(wù)接口規(guī)范[S].北京:數(shù)字家庭服務(wù)解決方案與系統(tǒng)集成技術(shù)研究課題組,2013.
[5]孫更新,肖冰,彭玉忠.XML編程與應用教程[M].北京:清華大學出版社,2010.
(責任編輯:王謙)
The Modeling Scheme of Interface Standard for Standards Compliance Testing
CUI Yan-ting
(College of Information Engineering,Communication University of China,Beijing 100024,China)
To reduce the artificial work of standard document writing and natural description language transformation,the transformation from natural description language to structured data format were studied and a modeling of standard program was proposed.A scalable public tag library of interface standard was built;the structured interface description document and the interface description part in standard document could be automatically generated based on the public tag library.The Efficiency of standards compliance testing was improved.
compliance testing;modeling;tag library
2015-03-02
崔艷婷(1991-),女(漢族),云南昭通人,中國傳媒大學碩士研究生.E-mail:cuiyanting7@qq.com
TP317.2
A
1673-4793(2015)06-0044-06