張定京,趙良福,付光濤,李小雨,王 穎
(國(guó)家新聞出版廣電總局 廣播科學(xué)研究院,北京 100866)
NGB終端中間件API接口測(cè)試用例的設(shè)計(jì)與實(shí)現(xiàn)
張定京,趙良福,付光濤,李小雨,王 穎
(國(guó)家新聞出版廣電總局 廣播科學(xué)研究院,北京 100866)
根據(jù)NGB終端中間件標(biāo)準(zhǔn)有關(guān)JavaAPI和JSAPI的接口定義和要求,以及NGB的業(yè)務(wù)需求,制定了API接口測(cè)試用例的設(shè)計(jì)原則和設(shè)計(jì)方案,方案包括自動(dòng)化和手動(dòng)兩種方式,兩類測(cè)試相互補(bǔ)充。通過以頻道搜索和媒體處理兩個(gè)典型測(cè)試單元為例,介紹了這兩類測(cè)試用例的軟件設(shè)計(jì)流程和具體實(shí)現(xiàn)方法。該方案設(shè)計(jì)已經(jīng)過驗(yàn)證,并應(yīng)用于NGB中間件的標(biāo)準(zhǔn)符合性測(cè)試中。
下一代廣播電視網(wǎng);中間件;API;測(cè)試用例
下一代廣播電視網(wǎng)(簡(jiǎn)稱NGB)終端中間件是運(yùn)行在數(shù)字電視接收終端中的軟件,按功能層次劃分為處于接收終端資源層之上、應(yīng)用層之下;其向下屏蔽了資源層的差異,向上為應(yīng)用的開發(fā)提供一套完整、統(tǒng)一的應(yīng)用編程接口(簡(jiǎn)稱API);中間件與資源層協(xié)同工作,能承載和支撐各種不同的應(yīng)用。NGB數(shù)字電視接收終端采用中間件可以提升應(yīng)用的互操作性,即同一款終端能夠運(yùn)行不同應(yīng)用提供商開發(fā)的應(yīng)用,同一個(gè)應(yīng)用能夠運(yùn)行在不同的終端之上[1]。因此,NGB中間件技術(shù)對(duì)推動(dòng)NGB和三網(wǎng)融合的整體發(fā)展,加快廣電新業(yè)態(tài)的業(yè)務(wù)生成和部署,以及跨域業(yè)務(wù)的互聯(lián)互通,具有十分重要的意義[2]。
國(guó)家廣播電影電視總局于2012年10月發(fā)布了NGB終端中間件技術(shù)規(guī)范,標(biāo)準(zhǔn)號(hào)為GY/T267—2012[1]。目前遵循該規(guī)范的NGB終端機(jī)頂盒已進(jìn)入研發(fā)和生產(chǎn)階段,接下來產(chǎn)品的測(cè)試和認(rèn)證工作就顯得尤為迫切和重要,因此判定產(chǎn)品是否符合中間件技術(shù)要求將是亟待解決的問題。
GY/T267—2012[1]標(biāo)準(zhǔn)對(duì)NGB終端中間件的軟件架構(gòu)、協(xié)議棧、內(nèi)容格式、應(yīng)用信令、應(yīng)用傳輸、應(yīng)用支撐、安全機(jī)制、應(yīng)用編程接口等各個(gè)方面的技術(shù)要求進(jìn)行了規(guī)定。其中應(yīng)有編程接口是該標(biāo)準(zhǔn)的核心內(nèi)容,檢驗(yàn)終端產(chǎn)品是否符合中間件標(biāo)準(zhǔn)要求基本可通過對(duì)應(yīng)有編程接口的全方位測(cè)試來加以驗(yàn)證。本文將簡(jiǎn)述中間件API接口要求,描述API接口的測(cè)試方法和測(cè)試方案,以典型測(cè)試單元為例,介紹測(cè)試用例的設(shè)計(jì)和實(shí)現(xiàn)方法。
NGB終端中間件軟件架構(gòu)示意見圖1。
圖1中的應(yīng)用編程接口,即中間件提供給應(yīng)用的接口。NGB終端中間件所能支撐的應(yīng)用,按應(yīng)用開發(fā)技術(shù)類型可分為NGB-J和NGB-H應(yīng)用:
1)NGB-J應(yīng)用是指采用Java編程語(yǔ)言開發(fā)應(yīng)用的統(tǒng)稱;
2)NGB-H應(yīng)用是指采用 HTML,JavaScript,CSS等Web技術(shù)開發(fā)應(yīng)用的統(tǒng)稱[1]。
GY/T267—2012標(biāo)準(zhǔn)[1]針對(duì)NGB-J應(yīng)用和NGB-H應(yīng)用分別定義了JavaAPI和JS(JavaScript)API兩套接口。
圖1 NGB終端中間件軟件架構(gòu)示意
1.1 JavaAPI
NGB終端中間件應(yīng)為NGB-J應(yīng)用開發(fā)提供三類Java接口,即Java基礎(chǔ)接口、DAVIC擴(kuò)展接口和NGB擴(kuò)展接口[1]。
Java基礎(chǔ)接口由SUN公司制定,是開發(fā)NGB-J應(yīng)用的必要支撐。NGB終端中間件應(yīng)支持CDC1.1.2(JSR218)/FP1.1.2(JSR219)/PBP1.1.2(JSR217)和MIDP2.0(JSR118)Java基礎(chǔ)接口[1]。
NGB擴(kuò)展接口由中間件標(biāo)準(zhǔn)定義,針對(duì)NGB應(yīng)用需求擴(kuò)展制定。NGB終端中間件應(yīng)實(shí)現(xiàn)的擴(kuò)展Java接口功能單元包括:?jiǎn)蜗驈V播網(wǎng)絡(luò)接入單元、廣播協(xié)議處理單元、媒體處理單元、應(yīng)用引擎單元——頻道搜索、應(yīng)用引擎單元——業(yè)務(wù)選擇等[1]。
DAVIC擴(kuò)展接口由數(shù)字音頻視頻委員會(huì)針對(duì)數(shù)字電視應(yīng)用而制定。NGB終端中間件應(yīng)支持的DAVIC 1.4.1p9定義的部分接口,主要包括MPEG/DVB傳輸流、表格數(shù)據(jù)裝載等處理的相關(guān)類和方法[3]。
1.2 JSAPI
NGB終端中間件應(yīng)為NGB-H應(yīng)用提供兩類JS對(duì)象,即基礎(chǔ)JS對(duì)象和NGB擴(kuò)展JS對(duì)象[1]。
基礎(chǔ)JS對(duì)象由W3C組織定義,是開發(fā)NGB-H應(yīng)用的基礎(chǔ)。NGB-H應(yīng)用應(yīng)支持的基礎(chǔ)JS對(duì)象遵循W3CJS1.5規(guī)范[1]。
NGB擴(kuò)展JS對(duì)象由中間件標(biāo)準(zhǔn)定義,針對(duì)NGB應(yīng)用需求擴(kuò)展制定[1]。NGB-H應(yīng)用應(yīng)支持的擴(kuò)展JS對(duì)象功能單元與Java接口基本相同。
2.1 設(shè)計(jì)原則
NGB中間件API數(shù)量龐大,涉及業(yè)務(wù)邏輯繁多復(fù)雜,如果想完全模擬這些業(yè)務(wù)邏輯,需要設(shè)計(jì)一套基于白盒測(cè)試的模擬測(cè)試環(huán)境,通過調(diào)用API對(duì)業(yè)務(wù)邏輯的觸發(fā)來驗(yàn)證API功能的完整性和穩(wěn)定性。
白盒測(cè)試又稱結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試,主要是對(duì)程序模塊進(jìn)行如下檢查:
1)對(duì)邏輯模塊的所有獨(dú)立的執(zhí)行路徑至少測(cè)試一遍;
2)對(duì)所有的邏輯判定,取“真”與取“假”的兩種情況都至少測(cè)試一遍;
3)在循環(huán)邊界和運(yùn)行界限內(nèi)執(zhí)行循環(huán)體;
4)測(cè)試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性[4]。
應(yīng)用白盒測(cè)試的思想,通過測(cè)試用例設(shè)計(jì)和腳本的編寫,即可實(shí)現(xiàn)對(duì)NGB中間件API接口的可用性和完整性進(jìn)行更準(zhǔn)確的測(cè)試。由于NGB-H和NGB-J應(yīng)用編程接口的基礎(chǔ)接口主要采用現(xiàn)有成熟技術(shù),出現(xiàn)問題的可能性較小,所以測(cè)試用例主要針對(duì)中間件標(biāo)準(zhǔn)定義的擴(kuò)展接口來進(jìn)行設(shè)計(jì)。測(cè)試用例的設(shè)計(jì)原則為:
1)對(duì)API的調(diào)用,覆蓋率達(dá)到100%;
2)對(duì)同一API接口測(cè)試涵蓋正例和反例;
3)對(duì)API的調(diào)用,符合業(yè)務(wù)邏輯執(zhí)行規(guī)律;
4)模擬NGB業(yè)務(wù)典型應(yīng)用場(chǎng)景。
2.2 設(shè)計(jì)方案
本測(cè)試實(shí)施過程將采用單元測(cè)試,以及自動(dòng)化和手動(dòng)相結(jié)合的方式。針對(duì)這種方式,測(cè)試用例的設(shè)計(jì)方案為:
1)采用模塊化設(shè)計(jì),模塊劃分以標(biāo)準(zhǔn)定義的功能單元為依據(jù),包括單向廣播網(wǎng)絡(luò)接入單元、廣播協(xié)議處理單元、雙向?qū)拵ЬW(wǎng)絡(luò)接入單元等;
2)設(shè)計(jì)兩類測(cè)試用例,分別為自動(dòng)化方式和手動(dòng)方式,兩種方式相互補(bǔ)充,使測(cè)試過程更趨向高效和完整。
2.2.1 自動(dòng)化方式
自動(dòng)化方式測(cè)試用例主要按照以下要求進(jìn)行設(shè)計(jì):
1)測(cè)試程序運(yùn)行后,將自動(dòng)執(zhí)行測(cè)試步驟和測(cè)試項(xiàng);
2)API的輸入?yún)?shù)為預(yù)先設(shè)定的固定值,參數(shù)一般取有效和無效兩種情況;
3)測(cè)試結(jié)果的判定一般依據(jù)函數(shù)的返回值或者有無異常情況;
4)每個(gè)測(cè)試項(xiàng)執(zhí)行完成后將自動(dòng)顯示測(cè)試結(jié)果“PASS”或“FAIL”。
這類測(cè)試用例的優(yōu)點(diǎn)是測(cè)試過程效率高,操作簡(jiǎn)單,測(cè)試結(jié)果準(zhǔn)確且直觀;不足之處是對(duì)測(cè)試條件有一定要求,不夠靈活(如前端發(fā)送信號(hào)的調(diào)諧參數(shù)要與測(cè)試程序里的有效參數(shù)一致等),并且對(duì)一些須人工審核測(cè)試結(jié)果的API不能準(zhǔn)確測(cè)試(如媒體播放API等)。
2.2.2 手動(dòng)方式
手動(dòng)方式測(cè)試用例主要按照以下要求進(jìn)行設(shè)計(jì):
1)具有可視化的交互界面;
2)測(cè)試程序運(yùn)行后,由人為觸發(fā)測(cè)試項(xiàng),須手動(dòng)執(zhí)行測(cè)試步驟;
3)API的輸入?yún)?shù)須手動(dòng)輸入或選擇;
4)正例測(cè)試和反例測(cè)試須由測(cè)試人員操作;
5)測(cè)試結(jié)果的判定須由測(cè)試人員依據(jù)輸出結(jié)果、返回?cái)?shù)據(jù)或顯示效果等來驗(yàn)證;
6)每個(gè)測(cè)試項(xiàng)的測(cè)試結(jié)果須測(cè)試人員記錄“PASS”或“FAIL”。
這類測(cè)試用例的優(yōu)點(diǎn)是測(cè)試條件靈活(如前端發(fā)送信號(hào)的參數(shù)可隨意修改等),可測(cè)試多種情況和場(chǎng)景,且便于測(cè)試一些須人為觀察測(cè)試結(jié)果的API(如媒體播放API等);不足之處測(cè)試過程較長(zhǎng),操作稍顯復(fù)雜,測(cè)試結(jié)果因由人工審核,所以對(duì)測(cè)試人員的專業(yè)要求較高(如須熟悉DVB/MPEG相關(guān)技術(shù)規(guī)范等)。
本章將以NGB中間件JavaAPI接口的頻道搜索模塊和媒體處理單元為例,分別描述自動(dòng)化方式和手動(dòng)方式這兩類測(cè)試用例的實(shí)現(xiàn)方法。
3.1 頻道搜索
頻道搜索測(cè)試單元主要測(cè)試中間件標(biāo)準(zhǔn)Java應(yīng)用引擎中的org.ngb.toolkit.channelscan包,該包的概要見表1。
表1 org.ngb.toolkit.channelscan包概要[1]
頻道搜索單元測(cè)試用例采用自動(dòng)化方式,該單元設(shè)計(jì)為一個(gè)Xlet(一種J2ME應(yīng)用模型)模型,其中每個(gè)子測(cè)試用例為1個(gè)函數(shù)測(cè)試1~2個(gè)API[5]。Xlet在啟動(dòng)運(yùn)行后,自動(dòng)執(zhí)行每個(gè)子測(cè)試用例,測(cè)試過程如發(fā)現(xiàn)問題則輸出錯(cuò)誤位置和原因,并在執(zhí)行結(jié)束前輸出測(cè)試結(jié)果“PASS”或者“FAIL”。
頻道搜索單元測(cè)試用例設(shè)計(jì)流程圖見如圖2所示,其中圖左側(cè)為該測(cè)試單元的整體軟件設(shè)計(jì)流程,右側(cè)為子測(cè)試用例ChannelScanTC8(測(cè)試啟動(dòng)頻道自動(dòng)搜索功能)的軟件設(shè)計(jì)流程。該測(cè)試單元所測(cè)接口和測(cè)試目的見表2。
圖2 頻道搜索單元測(cè)試用例設(shè)計(jì)流程圖
3.2 媒體處理
媒體處理單元主要測(cè)試中間件標(biāo)準(zhǔn)Java媒體處理單元中的org.ngb.media包,該包的概要見表3。
媒體處理單元測(cè)試用例采用手動(dòng)方式,該單元設(shè)計(jì)為1個(gè)Xlet模型,其中每個(gè)子測(cè)試用例為一個(gè)測(cè)試項(xiàng)測(cè)試1~3個(gè)API[5]。Xlet在啟動(dòng)運(yùn)行后,每個(gè)測(cè)試項(xiàng)將人為地按下界面中的按鈕來觸發(fā)執(zhí)行,API調(diào)用后的返回?cái)?shù)據(jù)、接收事件、異常情況或錯(cuò)誤信息將輸出打印在界面中,并且音視頻的播放效果也將直接呈現(xiàn),測(cè)試人員以此判斷并記錄測(cè)試結(jié)果“PASS”或者“FAIL”。該測(cè)試單元所測(cè)接口和測(cè)試目的見表4。
表2 頻道搜索單元測(cè)試用例測(cè)試接口
表3 org.ngb.media包概要[1]
媒體處理單元測(cè)試用例設(shè)計(jì)流程圖如圖3所示,圖中左側(cè)為該測(cè)試單元的整體軟件設(shè)計(jì)流程,右側(cè)為子測(cè)試用例MediaTC3(測(cè)試啟動(dòng)媒體播放器功能)的軟件設(shè)計(jì)流程。
表4 媒體處理單元測(cè)試用例測(cè)試接口
圖3 媒體處理單元測(cè)試用例設(shè)計(jì)流程圖
目前,NGB中間件標(biāo)準(zhǔn)已應(yīng)用于部分廣電網(wǎng)絡(luò)運(yùn)營(yíng)商,基于該標(biāo)準(zhǔn)的終端機(jī)頂盒也正在研制生產(chǎn),準(zhǔn)備部署。同時(shí),該標(biāo)準(zhǔn)定義的API接口已確定作為廣電總局正在牽頭研制的NGB智能電視操作系統(tǒng)應(yīng)用框架層的對(duì)外接口。本文給出的API測(cè)試用例的方案包括自動(dòng)化和手動(dòng)兩種方式,兩類測(cè)試相互補(bǔ)充,使測(cè)試結(jié)果更加高效完整?;谠摲桨?,已開發(fā)完成了一整套NGB中間件API接口測(cè)試用例集,并已成功運(yùn)用于NGB中間件標(biāo)準(zhǔn)符合性測(cè)試的驗(yàn)證工作。
[1]GY/T267—2012,下一代廣播電視網(wǎng)(NGB)終端中間件技術(shù)規(guī)范[S].2012.
[2] 國(guó)家廣播電影電視總局科技司.下一代廣播電視網(wǎng)(NGB)中間件需求白皮書(第一部分),v1.00[S].2010.
[3]DAVIC1.4.1,標(biāo)準(zhǔn)第9部分:信息呈現(xiàn)[S].1999.
[4] 王小雨,張昀,陳雷.基于白盒測(cè)試的ParlayAPI接口測(cè)試方法設(shè)計(jì)[J].現(xiàn)代電信科技,2007(6):38-45.
[5]袁江海,張文軍.數(shù)字電視中間件應(yīng)用管理器的一種優(yōu)化設(shè)計(jì)方案[J].電視技術(shù),2004,28(1)13-15:.
Design and Implementation of API Test Cases for Middleware of NGB Rceiver
ZHANGDingjing,ZHAOLiangfu,FUGuangtao,LIXiaoyu,WANGYing
(Academy of Broadcasting Science State Administration of Radio, Film Television, Beijing 100866, China)
According to Java API and JS API interface definitions and requirements of NGB receiver middleware specification, as well as NGB business needs, design principles and schemas for API interface test cases are developed,including automated and manual modes, the two types could complement each other. In this paper, the two types of software design processes and implementation methods for test cases are described by two typical testing units-channel scanning and media processing. The design has been validated and applied to NGB middleware standards compliance testing.
NGB; middleware; API; test case
TN949.6
B
?? 京
2013-07-01
【本文獻(xiàn)信息】張定京,趙良福,付光濤,等.NGB終端中間件API接口測(cè)試用例的設(shè)計(jì)與實(shí)現(xiàn)[J].電視技術(shù),2014,38(2).
國(guó)家科技支撐計(jì)劃項(xiàng)目(2012BAH02B01)