一、引言
视频监控联网系统管理平台是城市视频监控联网系统的核心系统软件,其主要功能是通过连接采用相关标准的前端设备或代理设备,实现系统的互联、互通、互控,实现视音频及报警信息的采集、传输、显示、存储、控制;提供与“三台合一”、交通卡口等其他警用业务系统的数据接口。
为了规范全国监控报警系统建设,公安部组织制定了标准GA/T 669.7-2008《城市监控报警联网系统 技术标准 第7部分:管理平台技术要求》,本文所述的视频监控联网系统管理平台是符合GA/T 669.7-2008的标准要求的。由于管理平台的功能和性能直接反映视频监控联网系统的应用效果,因此如何测试评估管理平台符合标准的程度以及测试管理平台的动态运行性能,成为需要研究的重要方向。
本文参照通用的软件测试理论,结合视频监控联网系统管理平台的系统应用特点,给出了基于迭代开发模式的管理平台软件的测试模型,重点分析了模型中的各个节点的实施策略及方法。
二、视频监控联网系统管理平台的特点及测试模型
2.1视频监控联网系统管理平台的特点
视频监控联网系统管理平台是一个有很强的行业特点的大型软件,功能多,模块多,程序的结构、逻辑复杂。涉及的技术领域广,包括SIP网络、Web、媒体、数据库、安全、GIS等技术。开发过程中使用到包括操作系统、开发框架、开发平台、开发语言、开源协议栈、以及需要二次开发的外部系统等多种周边配套的开发和运行支撑环境。系统对可靠性有严格的要求;对响应时间、图像质量有严格的限制;对接入容量、并发有较高的要求;管理平台需要支持跨操作系统;管理平台有分级联网能力,其部署方式、部署环境也千差万别。
2.2视频监控联网系统管理平台的测试模型
视频监控联网系统管理平台的特点决定了该软件需要测试的内容非常多,涵盖软件测试的大部分内容。除了包括通用网站的所有Web测试技术和测试内容外,还包括通讯的性能、协议的标准性、媒体质量、处理性能等内容的测试。作为行业应用软件,符合该行业用户操作习惯的GUI测试也非常重要。结合平台特点及开发模式,测试模型如图1。
图1测试模型
三.测试过程分析
3.1测试计划
测试计划是测试工作的重要环节,对整个项目的测试工作做出规划,确认测试工作的目标、范围、策略、方法,并对测试任务、时间、资源、成本、风险进行估算。重点说明这个阶段的以下几点:
3.1.1确定测试范围
完全测试是不可能的,测试的资源也不是无限的。在测试计划中根据人力、时间、能力、进度等实际情况制定管理平台的测试范围。关键的技术点、可能造成系统瓶颈的模块、最可能影响性能的模块、应用最频繁、并发几率最大的功能是测试的重点。在管理平台中,SIP服务器与设备及客户端的通讯效率、媒体的转发能力、存储能力、客户端的媒体播放等都是关键技术点;设备加电上线、用户登录、设备报警、设备心跳等是可能发生高并发的设备应用;视频的点播、回放等是应用最频繁的用户操作,等等。这些模块的功能、性能是测试的重点。
针对迭代式开发模型,测试亦按照迭代过程进行相应的测试设计、测试执行。
3.1.2测试需求
平台的测试需求包括功能性需求和非功能性需求。功能性测试需求是从软件需求规格说明书中提取各模块功能点,统一编号,便于在测试中掌握需求的测试覆盖情况。非功能性的测试需求为性能、安全性、可靠性、易用性、可移植性、可维护性的测试。其中,性能测试涵盖时间特性、容量特性、负载特性、压力特性等测试内容;安全性测试涵盖用户、设备、信令、信息的安全功能测试;可靠性测试包括稳定性、容错性、易恢复性等内容测试;易用性测试是界面设计、人机交互的友好性测试;可维护性测试重点关注技术支持文档、运行错误提示等内容;可移植性测试包括操作系统、浏览器、部署规模及环境的支持能力测试。安装发行测试是程序部署的测试。这些非功能性测试的内容来源于GA/T669系列技术标准的要求及平台的软件需求规格说明书中的要求以及软件的通用测试要求。
3.1.3测试策略
测试策略包括确定测试的方法、选择测试工具。
1.测试方法
在单元测试阶段,采用静态代码走查和动态测试结合的方式。静态代码审查采用抽查方式,重点代码重点评审,同时使用代码格式检查工具,规范代码格式;集成测试阶段采用动态黑盒测试;系统测试阶段,除采用动态黑盒测试外,重点为性能、压力、负载等非功能性测试。
2.测试工具的选择
这样一个复杂的、性能、容量要求较高的系统软件,需要使用测试工具来提高测试质量、测试效率。项目的迭代开发模式决定界面调整较多,不适合自动化功能测试。测试工具的学习需要占用较多的时间精力,测试工具不宜多选。
根据项目技术和开发模型特点,选择了以下几个方面的测试工具:代码检查工具、性能测试工具、协议测试工具。重点是性能测试工具。系统性能中响应时间测试、负载测试、压力测试、并发测试是测试的重点。并发测试主要测试系统的两端即用户端、设备端的并发对管理平台各主要模块的影响。用户端的并发采用网站通用的测试工具仿真大量用户登录、操作的过程。设备端使用工具软件模拟大量设备同时上线、操作、发送消息的过程。
选择测试工具最主要的原则是:功能满足要求;具有高性价比。选择的具体标准:
----支持的操作系统
----支持的应用协议
----支持的数据库
----支持的网络环境
----测试结果的分析管理能力
----易用性
----脚本的开发能力
----技术支持能力
商用测试工具如Rational、Mercury 、Compuware Segue等厂家产品,功能强大,技术支持好,但是价格过高。本项目在测试工具的选择时以开源产品为主。以下为选用的几个开源测试工具:
 
l代码检查工具:
Checkstyle是一个代码规范检查软件,当项目的开发人员较多时,用它来统一代码风格是非常必要的。可以按照项目规定的编码规范规则,定制配置文件,进行自动化代码检查。
l性能测试工具:
选择性能测试工具时,在符合基本使用要求情况下,应选择使用的人数较多、资料较多的工具,将开源软件的不利因素(即技术支持不足)降低。本项目选择Apache JMeter作为平台的Web性能测试工具。性能测试数据是判断软件质量、调整优化程序的重要依据之一,为了保证测试数据的准确性,同时选择几款开源工具作为辅助测试工具,在对测试数据有疑问时,可以作为衡量比较用。
JMeter用来测试负载下的功能情况以及评估性能。可以模拟大量的服务器负载、网络负载、软件对象负载,通过不同的加载类型全面测试软件的性能,并提供图形化的性能分析。
l协议、媒体测试工具
Ethereal是一款免费的网络协议分析器,可运行于Unix、Windows操作系统上进行实时网络监听。这个工具是管理平台测试使用的主要的通讯调试、测试工具。
SIPp是一个测试SIP协议性能的工具软件。它包含了一些基本的用户代理工作流程(UAC和UAS),可建立和释放多个呼叫;可读取XML的场景文件,即描述性能测试的配置文件;能动态显示测试运行的统计数据(呼叫速率、信号来回的延迟,以及消息统计)。SIPp可以用来测试许多真实的SIP设备。在视频监控联网系统中,使用SIP编写场景文件,模拟多个设备的并发场景,测试管理平台的并发处理能力。
l测试管理工具
TestLink是基于Web的测试管理系统,用于测试过程的管理。利用它将测试过程从测试需求、测试设计、测试计划的制定到测试执行完整的管理起来。它还提供了测试结果的统计和分析。同时,TestLink提供与Bugzilla的整合。
l错误跟踪管理工具
Bugzilla是一个使用较为简单、也较为流行的产品缺陷的记录及跟踪工具。基于Web方式,能够建立一个完善的Bug跟踪体系。
3.2测试设计
测试设计部分重点内容是编写测试用例。针对每个功能点或测试目标,设计输入、执行条件、描述操作步骤、给出预期结果。标准的测试用例中要详细定义操作过程、清晰定义操作结果。但是平台的功能点很多,测试用例的数量巨大。采用了简化的测试用例,即对每个测试点,尽量全面地给出测试的思路,比如视频点播操作用例,给出正常点播、重复点播、快速点播、多用户同时点播、单画面点播、多画面点播、报警联动点播、打开其他业务后点播、从不同操作入口点播、对不同的前端采集设备的点播等测试点,测试数据、测试步骤可以适当简化。管理平台中的配置、查询功能,设计用例时采用等价类划分、边界值分析等方法设计正常输入、超长字符输入、超边界值输入等测试点,在测试执行时,如出现bug,需在记录bug的同时详细记录引起bug发生的输入数据。
有些特别需要开发桩模块或驱动模块的测试,开发人员参与开发。用例全部记入TestLink,便于管理执行。
性能测试设计的复杂度更高。平台采用的架构、中间件、数据库、应用服务器、业务逻辑的实现方式、代码的优化程度、网络环境等都可能影响平台的运行性能。性能测例的设计重点在测试场景的设计,包括场景中模拟操作的内容、操作的数量、测试的性能目标、测试中需要监控的性能数据等。
3.3测试的执行
测试执行的步骤为:分配测试任务、建立测试环境、执行测试用例、记录测试结果、报告测试结果。重点说明建立测试环境、部署被测软件的过程。
测试环境包括软件环境、硬件环境、数据环境。软件环境是指操作系统、浏览器、数据库系统、中间件、应用服务器等的名称及版本。硬件测试环境指客户端PC、服务器、网络设备、前端设备等构成的环境。数据环境指测试中使用到的数据库环境。
在需求中已经提出了平台对环境的基本要求。但实际开发出的软件是否存在与硬件设备的具体依赖关系?比如媒体信息、图形信息对服务器的显卡、显存配置有何要求?客户端在点播视频图像时,能够正常显示的视频路数与显卡的配置关系如何?在实验室局域网环境中,通过使用软件工具,限定网络的传输速率来模拟不同网络环境,软件的运行能力如何?这些都需要测试验证。前端设备同期开发,也给平台的测试带来了复杂性。另外,还需要测试第三方提供的二次开发包对环境的适应性、客户端插件对浏览器的适应性。
测试环境对平台的运行效果影响很大,在开发人员的机器上正常执行的功能,移植到测试环境中后常常出现错误的情况。测试数据库的数据环境的一些微小偏差,也会引发运行异常,从而发现程序的bug。因此测试环境要与开发环境从硬件、软件环境、数据环境上完全独立。
3.4 SIPp的应用
视频监控联网系统以SIP协议做为互联互通的通讯控制协议。SIP协议在管理平台的信息传输、交换、控制过程中具有非常重要的作用。因此,有关SIP通讯的测试在平台的测试内容中占有重要的地位。SIPp可以用来模拟前端采集设备,对平台的并发处理能力进行测试。选择一个典型的测试应用-设备注册加以说明。设备上电后,需要先注册到SIP服务器上才能进行操作。这个应用模拟大量设备同时向服务器发注册请求时的场景。注册采用RFC3261的认证注册流程,如图2。
图2注册流程
编写场景文件register.xml,如图3:
图3场景文件
编写测试批量数据文件register.csv如图4
图4数据文件
 
服务器运行,执行命令行模拟100个设备以每秒10个并发请求的注册:
./sipp -sf register.xml -inf register.csv -i 192.168.3.212 -m 100 192.168.9.20
在该命令中可以动态调整每秒发送的请求数。操作的即时过程、结果见图5、图6。
图5运行界面1
图6运行界面2
通过设定不同的并发参数,根据显示的成功的请求、重发的请求、信令延时的数据,可定量分析服务器的并发处理能力。
四、结束语
对这样一个复杂系统做好测试工作,具有一定的难度。首先测试人员要对视频监控联网系统的应用具有丰富经验,了解用户的使用习惯及特点,才能更好地从用户的角度发现问题。其次要对平台的设计与实现有较深的理解,包括对系统架构、逻辑、模块间的关系的掌握;了解开发环境、部署环境;要有编程的经验,才能抓住系统薄弱的环节,性能的瓶颈所在,有的放矢的进行测试。另外要掌握系统的测试技术,熟练使用测试工具,才能提高测试效率。测试中还要掌握好测试的工作量,对测试的内容和深度依项目整体开发计划进行适当规划。最后还需要与开发人员有较好的沟通、协调能力,开发-测试充分结合,共同提高平台软件质量。
【参考文献】
[1] GA/T 669.7-2008,城市监控报警联网系统 技术标准 第7部分:管理平台技术要求,2008
[2]徐芳.软件测试技术,北京:机械工业出版社,2007
[3]段念.软件性能测试过程详解与案例剖析,北京:清华大学出版社,2006
[4] Richard GAYRAUD, Olivier JACQUES,et al. SIPp reference documentation,2004
[5] ROSENBERG J, SCHULZR INNE H, CAMAR ILLO G, et al. RFC 3261, SIP: Session Initiation Protocol,IETF, 2002.
(公安部第一研究所 崔云红)
【想第一时间了解安防行业的重磅新闻吗?请立即关注中安网官方微信(微信号:cpscomcn)——安防行业第一人气微信,万千精彩,千万不要错过!!!
网友评论
共有0条评论 点击查看全部>>24小时阅读排行
本周阅读排行