NGB终端中间件API接口测试用例的设计与实现
2014-07-07张定京赵良福付光涛李小雨
张定京,赵良福,付光涛,李小雨,王 颖
(国家新闻出版广电总局 广播科学研究院,北京 100866)
NGB终端中间件API接口测试用例的设计与实现
张定京,赵良福,付光涛,李小雨,王 颖
(国家新闻出版广电总局 广播科学研究院,北京 100866)
根据NGB终端中间件标准有关JavaAPI和JSAPI的接口定义和要求,以及NGB的业务需求,制定了API接口测试用例的设计原则和设计方案,方案包括自动化和手动两种方式,两类测试相互补充。通过以频道搜索和媒体处理两个典型测试单元为例,介绍了这两类测试用例的软件设计流程和具体实现方法。该方案设计已经过验证,并应用于NGB中间件的标准符合性测试中。
下一代广播电视网;中间件;API;测试用例
下一代广播电视网(简称NGB)终端中间件是运行在数字电视接收终端中的软件,按功能层次划分为处于接收终端资源层之上、应用层之下;其向下屏蔽了资源层的差异,向上为应用的开发提供一套完整、统一的应用编程接口(简称API);中间件与资源层协同工作,能承载和支撑各种不同的应用。NGB数字电视接收终端采用中间件可以提升应用的互操作性,即同一款终端能够运行不同应用提供商开发的应用,同一个应用能够运行在不同的终端之上[1]。因此,NGB中间件技术对推动NGB和三网融合的整体发展,加快广电新业态的业务生成和部署,以及跨域业务的互联互通,具有十分重要的意义[2]。
国家广播电影电视总局于2012年10月发布了NGB终端中间件技术规范,标准号为GY/T267—2012[1]。目前遵循该规范的NGB终端机顶盒已进入研发和生产阶段,接下来产品的测试和认证工作就显得尤为迫切和重要,因此判定产品是否符合中间件技术要求将是亟待解决的问题。
GY/T267—2012[1]标准对NGB终端中间件的软件架构、协议栈、内容格式、应用信令、应用传输、应用支撑、安全机制、应用编程接口等各个方面的技术要求进行了规定。其中应有编程接口是该标准的核心内容,检验终端产品是否符合中间件标准要求基本可通过对应有编程接口的全方位测试来加以验证。本文将简述中间件API接口要求,描述API接口的测试方法和测试方案,以典型测试单元为例,介绍测试用例的设计和实现方法。
1 中间件API
NGB终端中间件软件架构示意见图1。
图1中的应用编程接口,即中间件提供给应用的接口。NGB终端中间件所能支撑的应用,按应用开发技术类型可分为NGB-J和NGB-H应用:
1)NGB-J应用是指采用Java编程语言开发应用的统称;
2)NGB-H应用是指采用 HTML,JavaScript,CSS等Web技术开发应用的统称[1]。
GY/T267—2012标准[1]针对NGB-J应用和NGB-H应用分别定义了JavaAPI和JS(JavaScript)API两套接口。
图1 NGB终端中间件软件架构示意
1.1 JavaAPI
NGB终端中间件应为NGB-J应用开发提供三类Java接口,即Java基础接口、DAVIC扩展接口和NGB扩展接口[1]。
Java基础接口由SUN公司制定,是开发NGB-J应用的必要支撑。NGB终端中间件应支持CDC1.1.2(JSR218)/FP1.1.2(JSR219)/PBP1.1.2(JSR217)和MIDP2.0(JSR118)Java基础接口[1]。
NGB扩展接口由中间件标准定义,针对NGB应用需求扩展制定。NGB终端中间件应实现的扩展Java接口功能单元包括:单向广播网络接入单元、广播协议处理单元、媒体处理单元、应用引擎单元——频道搜索、应用引擎单元——业务选择等[1]。
DAVIC扩展接口由数字音频视频委员会针对数字电视应用而制定。NGB终端中间件应支持的DAVIC 1.4.1p9定义的部分接口,主要包括MPEG/DVB传输流、表格数据装载等处理的相关类和方法[3]。
1.2 JSAPI
NGB终端中间件应为NGB-H应用提供两类JS对象,即基础JS对象和NGB扩展JS对象[1]。
基础JS对象由W3C组织定义,是开发NGB-H应用的基础。NGB-H应用应支持的基础JS对象遵循W3CJS1.5规范[1]。
NGB扩展JS对象由中间件标准定义,针对NGB应用需求扩展制定[1]。NGB-H应用应支持的扩展JS对象功能单元与Java接口基本相同。
2 测试方案设计
2.1 设计原则
NGB中间件API数量庞大,涉及业务逻辑繁多复杂,如果想完全模拟这些业务逻辑,需要设计一套基于白盒测试的模拟测试环境,通过调用API对业务逻辑的触发来验证API功能的完整性和稳定性。
白盒测试又称结构测试或逻辑驱动测试,主要是对程序模块进行如下检查:
1)对逻辑模块的所有独立的执行路径至少测试一遍;
2)对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一遍;
3)在循环边界和运行界限内执行循环体;
4)测试内部数据结构的有效性[4]。
应用白盒测试的思想,通过测试用例设计和脚本的编写,即可实现对NGB中间件API接口的可用性和完整性进行更准确的测试。由于NGB-H和NGB-J应用编程接口的基础接口主要采用现有成熟技术,出现问题的可能性较小,所以测试用例主要针对中间件标准定义的扩展接口来进行设计。测试用例的设计原则为:
1)对API的调用,覆盖率达到100%;
2)对同一API接口测试涵盖正例和反例;
3)对API的调用,符合业务逻辑执行规律;
4)模拟NGB业务典型应用场景。
2.2 设计方案
本测试实施过程将采用单元测试,以及自动化和手动相结合的方式。针对这种方式,测试用例的设计方案为:
1)采用模块化设计,模块划分以标准定义的功能单元为依据,包括单向广播网络接入单元、广播协议处理单元、双向宽带网络接入单元等;
2)设计两类测试用例,分别为自动化方式和手动方式,两种方式相互补充,使测试过程更趋向高效和完整。
2.2.1 自动化方式
自动化方式测试用例主要按照以下要求进行设计:
1)测试程序运行后,将自动执行测试步骤和测试项;
2)API的输入参数为预先设定的固定值,参数一般取有效和无效两种情况;
3)测试结果的判定一般依据函数的返回值或者有无异常情况;
4)每个测试项执行完成后将自动显示测试结果“PASS”或“FAIL”。
这类测试用例的优点是测试过程效率高,操作简单,测试结果准确且直观;不足之处是对测试条件有一定要求,不够灵活(如前端发送信号的调谐参数要与测试程序里的有效参数一致等),并且对一些须人工审核测试结果的API不能准确测试(如媒体播放API等)。
2.2.2 手动方式
手动方式测试用例主要按照以下要求进行设计:
1)具有可视化的交互界面;
2)测试程序运行后,由人为触发测试项,须手动执行测试步骤;
3)API的输入参数须手动输入或选择;
4)正例测试和反例测试须由测试人员操作;
5)测试结果的判定须由测试人员依据输出结果、返回数据或显示效果等来验证;
6)每个测试项的测试结果须测试人员记录“PASS”或“FAIL”。
这类测试用例的优点是测试条件灵活(如前端发送信号的参数可随意修改等),可测试多种情况和场景,且便于测试一些须人为观察测试结果的API(如媒体播放API等);不足之处测试过程较长,操作稍显复杂,测试结果因由人工审核,所以对测试人员的专业要求较高(如须熟悉DVB/MPEG相关技术规范等)。
3 测试用例实现
本章将以NGB中间件JavaAPI接口的频道搜索模块和媒体处理单元为例,分别描述自动化方式和手动方式这两类测试用例的实现方法。
3.1 频道搜索
频道搜索测试单元主要测试中间件标准Java应用引擎中的org.ngb.toolkit.channelscan包,该包的概要见表1。
表1 org.ngb.toolkit.channelscan包概要[1]
频道搜索单元测试用例采用自动化方式,该单元设计为一个Xlet(一种J2ME应用模型)模型,其中每个子测试用例为1个函数测试1~2个API[5]。Xlet在启动运行后,自动执行每个子测试用例,测试过程如发现问题则输出错误位置和原因,并在执行结束前输出测试结果“PASS”或者“FAIL”。
频道搜索单元测试用例设计流程图见如图2所示,其中图左侧为该测试单元的整体软件设计流程,右侧为子测试用例ChannelScanTC8(测试启动频道自动搜索功能)的软件设计流程。该测试单元所测接口和测试目的见表2。
图2 频道搜索单元测试用例设计流程图
3.2 媒体处理
媒体处理单元主要测试中间件标准Java媒体处理单元中的org.ngb.media包,该包的概要见表3。
媒体处理单元测试用例采用手动方式,该单元设计为1个Xlet模型,其中每个子测试用例为一个测试项测试1~3个API[5]。Xlet在启动运行后,每个测试项将人为地按下界面中的按钮来触发执行,API调用后的返回数据、接收事件、异常情况或错误信息将输出打印在界面中,并且音视频的播放效果也将直接呈现,测试人员以此判断并记录测试结果“PASS”或者“FAIL”。该测试单元所测接口和测试目的见表4。
表2 频道搜索单元测试用例测试接口
表3 org.ngb.media包概要[1]
媒体处理单元测试用例设计流程图如图3所示,图中左侧为该测试单元的整体软件设计流程,右侧为子测试用例MediaTC3(测试启动媒体播放器功能)的软件设计流程。
表4 媒体处理单元测试用例测试接口
图3 媒体处理单元测试用例设计流程图
4 小结
目前,NGB中间件标准已应用于部分广电网络运营商,基于该标准的终端机顶盒也正在研制生产,准备部署。同时,该标准定义的API接口已确定作为广电总局正在牵头研制的NGB智能电视操作系统应用框架层的对外接口。本文给出的API测试用例的方案包括自动化和手动两种方式,两类测试相互补充,使测试结果更加高效完整。基于该方案,已开发完成了一整套NGB中间件API接口测试用例集,并已成功运用于NGB中间件标准符合性测试的验证工作。
[1]GY/T267—2012,下一代广播电视网(NGB)终端中间件技术规范[S].2012.
[2] 国家广播电影电视总局科技司.下一代广播电视网(NGB)中间件需求白皮书(第一部分),v1.00[S].2010.
[3]DAVIC1.4.1,标准第9部分:信息呈现[S].1999.
[4] 王小雨,张昀,陈雷.基于白盒测试的ParlayAPI接口测试方法设计[J].现代电信科技,2007(6):38-45.
[5]袁江海,张文军.数字电视中间件应用管理器的一种优化设计方案[J].电视技术,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
【本文献信息】张定京,赵良福,付光涛,等.NGB终端中间件API接口测试用例的设计与实现[J].电视技术,2014,38(2).
国家科技支撑计划项目(2012BAH02B01)