庄子健
摘 要:本文从数字电视应用项目的软件测试实践出发,根据软件测试基本原理和系统设计用例,选用合适的测试工具制定自动化测试脚本,有效地提高系统回归测试质量,提升回归测试效率,确保产品质量稳定。
关键词:自动化测试脚本;软件测试;系统设计用例
1 引言
随着软件产品在各个应用领域的普及,软件的质量问题逐渐成为人们关注的焦点。质量不过关的软件产品在使用中可能出现各种意想不到的问题。软件使用者经常发现一些已经推向市场的产品,由于存在严重质量缺陷而导致大量退货,或者一再返工,进行长期的修改和维护。这样不仅影响了软件提供商的工作,额外提高了产品成本,也耽误了客户业务的开展,影响正常工作,甚至会产生严重的或灾难性的后果[1]。
本文中的项目产品为“TVNow”。TVNow系统是国内SeaChange公司针对国内市场推出的一套视频服务产品,能够为客户提供实现媒体流点播,录播,实时收看等多种媒体服务功能的硬件和软件的架构。笔者参与了这个项目的测试工作,主要负责系统中的随心点播应用的测试用例设计,测试的管理,测试文档的维护,测试环境的搭建,自动化测试软件的设计与开发以及ADI测试。
本课题研究主要从以下几方面着手:⑴根据TVNow系统的需求设计测试用例。⑵针对测试的特点,开发出一套简单易用的自动化测试脚本。⑶对整个自动化测试框架流程进行总体设计。⑷TVNow测试文档的编写与管理,在整个项目实施过程中,指定项目进度。本项目自动化测试的目标是:提升工作效率50%,加快测试进度50%,控制产品的bug数量在上一个版本中bug数量的50%以下。
2 数字电视平台应用性需求分析
数字电视交互业务平台(Back Office)为各个业务的接入提供一个开放式的平台,对内屏蔽各业务系统的差异[2],对外屏蔽内部各种复杂的业务逻辑,为新业务的快速接入提供有力的支撑。业务平台层提供认证、鉴权、计费等业务控制能力和产品管理、内容管理等能力,从而实现业务的可管理性与可运营性[3]。
2.1 TVBS系统简介
本产品的工程实践项目“TVBS”是SeaChange公司针对国内市场推出的数字电视解决方案,为客户提供多种方便、简捷媒体服务功能的硬件和软件的架构。TVBS能将媒体提供的广播节目录制到存储服务器,提供给数字机顶盒和PC客户端进行点播。
TVNow系统可以主要实现以下三种功能:
2.1.1 随心点播(Video-on-Demand,VOD)
2.1.2 随心录像(Network Personal Video Recorder,NPVR)
2.1.3 實时节目点播(Pause TV)
一种能让用户在电视广播节目播送过程中,使用暂停,回放键来定格电视画面和回放电视节目的点播功能。用户可以实时观看当前播放的电视广播节目,并在观看节目时进行暂停、回放等流控操作。
2.2 数字电视平台功能性需求分析
数字电视平台功能决定了系统软件所要执行的任务。TVBS产品主要有以下功能模块:OTE接口模块,OSS接口模块和Nav接口模块组成。
2.2.1 OTE接口模块
需求定义及分析: 从机顶盒客户端购买RVOD和促销中的产品,OTE将会执行促销和优惠规则,然后对用户发布tickets,价格和租赁期限的相关信息。
用户通过PO或优惠券购买节目和节目包,机顶盒客户端提交数据到OTE,OTE将会根据优惠规则计算价格,发布tickets或优惠券给用户。
如果用户是通过PO购买产品的,需要product offering id;如果用户是通过优惠券购买产品的,需要coupon id。该操作保证售出的产品可以播放并使用相应的促销或优惠券。
返回数据是一个优惠列表。OTE将会为每一个节目发布一个ticket。如果用户购买一个节目包,第一个ticket将会是节目包的价格,其它ticket的价格为0;如果用户购买的产品正在促销买2送1,前两个ticket将会是两个节目的价格,第三个ticket 价格为0。测试方法是模拟STB发送http的请求,根据设置不同的参数,来判断返回的XML中判断测试标准,测试环境要求:Windows 2003 Server, client网络连接正常且有自己的IP。
测试点涉及:Device ID,Home ID,Product Offering ID, Coupon ID,Local Entry ID,Entry Type。
测试方法:通过测试页面验证参数,在各类参数中输入相应的数据要求。
通过标准:检查返回数据中的参数,Transaction ID, Product Type,Transaction Time,Ticket ID,Ticket Type,Buy From,Price,Purchase Time,Effective Time, Expiration Time, View Status
2.2.2 OSS接口模块
含有User Login,机顶盒下的用户登录;User Update password,更新已登录用户账号密码;Create User,创建新用户;Add Favorite Item,该操作添加收藏夹节目到SMS。
它们都有各自的测试点,测试方法和通过标准。
2.2.3 Nav接口模块
需求定义及分析:List Entry是将指定的导航过程中产生的Entry以文件数据方式列出。Entry是一种抽象的数据,它可以是PO,Space,View,Folder,节目包,节目或关联节目中的任意一种数据。
2.3 数字电视平台性能需求分析
2.3.1 分析角度
按照成熟的性能测试策略,从前端、服务端、网络几个层次来分析。(为以后的测试打下指标基础)前端:并发用户数;服务端:系统处理能力和硬件选型等;网络端:网络流量和带宽。从软件结构分析,找出可能瓶颈。系统将来是否能够满足性能压力?從软件系统耗时功能分析。标准主体数据库维护平台:元数据树的浏览,因为需要从多个表中构建多一个元数据,A市的数据量很大,所以应该重点测试。数据库结构的创建,需要在数据库中创建实例和结构,所以耗用时间长,需要测试。
2.3.2 用户访问量
目的:知道最大的并发用户数。
用户数:调查了解和本项目相关的模块,OSS、OTE、Nav或TianShan 4个模块。以每个模块访问的数量按500至1000人计算,乘上4个模块,合计为4000人次。检查系统需要支持1000×4=4000人次的最大并发。
到目前为止,如果不在标准主题数据库上面增加别的应用,整个WFES端需要支持4000最大并发数。
3 数字电视平台自动化测试框架的设计与实现
3.1 自动化测试框架的设计
一个自动化测试项目会有一个到多个测试场景(Scenario),而每个测试场景又会有一个到多个测试用例(Test Case)。
自动化测试配置到每个测试用例上,每个Scenario便包含了这些测试用例的载体,其本身不包含任何数据。
3.2 自动化测试框架的实现
3.2.1 数据准备模块实现方法
数据准备模块是整个自动化测试框架的执行入口,它需要为整个执行过程完成一个良好的铺垫,所以执行模块不仅包括了执行所有用例本身,还需要负责完成包括执行之前的一系列动作。
3.2.2 主线程组模块
测试脚本主线程组模块的主要方法包括:浏览节目,订录并购买节目,点播节目。
3.2.3 性能测试的实现
根据软件系统耗时功能分析, 用户访问量和系统业务量的混合业务分析,按照用户的实际使用人数比例来模拟各个模块的组合并发情况。混合业务测试特点是根据用户使用系统的情况分成不同的用户组进行并发,每组的用户比例要根据实际情况来匹配,通常会取各个相关模块最大的并发用户数目进行组合。
按照性能测试设计定义的每个模块1000人次访问并发量,配500个线程,单位1秒内递增,共计循环2次。⑴通过新建一个Test Plan,设置Thread Group。⑵设2个页面接受模拟访问,如OSS和OTE页面。⑶添加几个关键**,如Aggregate Graph、Graph Results、Summary Report、View Results in Table、View Results Tree等。
[参考文献]
[1]William E.Perry.软件测试的有效方法[M].清华大学出版社, 2008:20~200页.
[2]许永明.IPTV:技术与应用实践[M].电子工业出版社,2006:19~28.
[3]卢官明,宗昉.IPTV技术及应用[M].人民邮电出版社,2007:10~245页.
[4]崔启亮,胡一鸣.国际化软件测试[M].电子工业出版社,2006:13~27页.