温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
软件
测试
论文
1025
《论软件测试方法和工具的选择》9558804000148499672
摘要:本文着重讨论了多媒体内容发布网络平台(CDN)及VOD系统的项目开发中的软件测试环节;该项目是某省电信部门委托我公司开发的为全省14个地市30万宽带用户提供一个高质量的基于流媒体的宽带VOD服务,实现各地用户就近访问流媒体边缘缓存服务器,并提供完善的商业运营管理功能。本文介绍了项目的软件、硬件设计架构,并详细讨论了采用JUinit框架进行单元测试,运用LoadRunner工具对整个项目平台它通过模拟用户(Virtual User)进行实时性能检测、负荷,来帮助开发人员更快的查找和发现问题。本文详述了在性能测试、功能测试所采用的测试策略以及方法。
在整个项目中,本人作为项目技术主要负责人之一,参与了整个项目的分析设计和测试过程。
正文:我公司是专注宽带视频应用技术开发的企业,产品主要应用与电信和广电等领域。2005年7月,受某省电信部门(甲方)委托我公司(乙方),开发一套“多媒体内容分发网络平台(CDN, Context Delivery Network)及VOD系统”,(简称CDN平台),在全省 14 个地市建立 CDN 分节点,为全省14个地市的30万宽带用户提供 11000户视频点播功能;同时为内容提供商(CP)服务提供商(SP)提供完善的商业运营后台管理功能。
我作为项目主要负责人之一,负责并参与了该项目的分析、设计以及测试的工作。
根据业务需求我们将CDN平台划分为3层次:内容服务集成层、媒体内容频道层、宽带用户层。
一、内容服务集成层为内容提供商(CP)提供商业运营和管理的支撑平台;实现手动/自动方式入库;内容审核;节目源管理;入库的内容综合集成。
二、媒体内容频道层利用我公司在全国电信的CDN平台进行内容分发管理;用户分级授权管理;综合计费管理方式;节目版权保护等;并提供宽带VOD应用门户界面。
三、宽带用户层主要是为宽带用户提供服务;用户可以通过Web方式访问宽带VOD应用门户网站,享受媒体点播、网络电视台、远程教育等服务;用户通过宽带账号绑定、在线支付等方式进行缴费;可以通过Web嵌入式播放器或者独立播放软件、手机/PDA播放器进行媒体点播。
该项目架设在J2EE框架基础上,采用B/S+C/S的混合结构;宽带VOD应用门户(媒体点播、网络电视台、远程教育等)用户并发访问量大,C/S的客户端安装与维护都不太方便故选用B/S浏览器/服务器模拟题,在架构上选用了当时主流的Struts+Spring+Hibernate架构;Struts用于制作应用门户的前台界面;Spring来封装业务逻辑,Hibernate实现对数据库访问的操作;对于内容入库审核模块,由于甲方需要规定要手动/自动进行大批量文件传送、而要求断点续传功能,故我们选择了自己用Swing技术编写客户界面并购买一个商用文件传送组件实现内容注入,采用C/S架构。
在服务器配置方面,考虑到平台的稳定性,在该省中心管理节点采用Linux操作系统选用Linux RedHat9.0,Web服务器和数据库服务器方面综合考虑到成本和并发点数,分别选用Tomcat5.0,Oracle9i数据库,流媒体服务器才用(WMS9和Helix Server9.0)。全省14个地市共采用了23台视频服务器,每台流媒体服务器上配置4G内存的、5*154GB1.5万转硬盘(RAID5磁盘阵列)的NAS(网络存储服务器)存储空间,同时在省中心节点还配置了2TB的NAS磁盘阵列作为后备存储空间。为保证流量服务器选用千兆网卡,地市之间的骨干网需要使用4G带宽。
该项目的业务功能很繁多,与电信业务接口交互多,性能和安全性要求高,项目建设时间紧。
整个团队有开发小组(分析设计、编程人员、美工)和测试小组。根据项目的具体特点和业务流程需求,考虑到系统的应用环境,我们精心的做了系统分析和设计以及测试计划工作。在制定项目需求分析文档的同时制定了项目验收测试计划,在写系统概要设计文档的同时确定了集成测试计划以及测试要素,单元测试用例的设计安排在系统详细设计文档中。整个测试环节自下而上分为单元测试、组装测试、功能测试、性能测试、验收测试和安全性测试(安全性测试甲方委托第三方测试公司进行)。本文详细介绍我们测试过程中的单元测试、功能测试和性能测试。
第一、单元测试—严把系统零部件质量关
单元测试的用例在详细设计中制定的测试标准,它根据详细设计文档具体编写。单元测试采取开发人员自测、小组内同级审查和测试组抽查的相组合的测试策略。要求开发人员先写编写好测试用例、测试数据并保存可查询的测试源码,单元测试紧跟在编码完成之后进行。开发人员采用Eclipse+MyElipse进行开发,故选用J-Unit测试框架进行测试,对于Web开发中的Struts部分,方法采用StrutsTestCase模拟Web容器进行测试,我们使用其中的Mock Object方法测试Struts中的Action Object、Aappings、ActionForm以及Forwards declaration;对于业务逻辑部分代码,由开发人员按照边界值法或者等价分类法设计好测试用例数据和预期得到的结果。每个业务类都由J-Uint自动生成测试程序,测试程序接收选择好的用例数据,运行后自动比较执行结果和预测结构。根据检测结果对代码进行检测,检查出错误后在有开发人员自己调试排错,修改完后再进行回归测试。
第二、功能测试—严格检查产品是否满足用户需求
系统的功能测试根据概要设计文档具体编写,我们主要考虑了页面链接测试、表单提交测试和数据库测试及系统计费数据正确性测试。
系统的宽带VOD应用门户提供了媒体点播、网络电视台、远程教育、网上家园等CP/SP提供的服务。为了保证用户通过应用门户网站查询、定购和使用各项业务,就必须保证站点所有链接的正确性。我们测试小组采用LoadRunner的自动链接测试工具,它能自动检查、分析站点所有页面链接,并生产详细的测试清单,报告链接页面是否存在、哪些页面未作链接。
对于表单提交测试测试,我们采用LoadRunner测试的Virtual User Generator模拟虚拟用户,以模拟用户的方式模拟真实用户的业务操作行为。测试之前,依据系统需求分析文档,对文档中每一个详细的功能点设计出来测试用例,重点关注关键页面的测试用例,如用户登陆、在线支付、服务目录等页面。测试针对提交操作的完整性和操作结果合理性来进行,以校验给服务器信息的正确性,同时检查数据存取时的数据的一致性。例如:在访问数据库的页面做表单的空值、长度,精确、格式的验证。系统统计费用功能做人机交互界面的可用性,易用性,方便性、安全行等全方面的测试。测试过程中利用LoadRunner的Virtual User Generator录制用户进行测试的脚本,对其进行参数化操作,这样采用利用不同参数控制交易的数量、交易频率、连接速度等来测试应用程序,验证程序功能。
第三、性能测试—对系统架构的考验
由于本系统要求提供11000并发数目点视频点播功能,因此对系统性能测试要求很高。且VOD节目采用点播方式进行传送,点播用户可以自由控制节目进度,终止节目的播放,但每个点播用户都要占用一定的网络带宽,因此并发用户数受到网络带宽、服务器性能的限制。VOD业务性能的测试指标我们主要测试最大并发流数目、宽带波动、所用的平均带宽、丢包率和平均相应时间。为了保证终端用户得到良好的操作体验和高质量Media Stream,我们采用的策略是在各地市用模拟用户的方式模拟记录和重放任何流行的多媒体数据流格式来诊断应用程序的性能问题。该引擎先记录下了用户VOD视频点播的业务流程,并转换为测试脚本,利用虚拟用户可以在每个地市节点Linux和Windows模拟数万台用户同时视频点播业务情景,同时通过Web监测器记录下每一个事务的处理时间、Web服务器峰值数据、流媒体服务器性能和数据库状态,根据分析结果和经验服务器的配置进行了调优、和代码优化、SQL查询优化等措施。对于C/S结构的内容注入模块对于性能要求也比较高,我们采用LoadRunner,主要是对多客户并发上传进行性能测试,采用LoadRunner集成的实时监测器,在整个负载测试过程中,都可以观察到应用程序的运行性能,性能监测器实时的显示业务交易、数据库和文件服务器的实时性能,让测试人员在测试过程中从客户和服务器的双方评估这些组件的运行性能,从而更快发现问题。
测试完毕后,测试人员采用LoadRunner 收集汇总所有的测试数据,LoadRunner本身提供高级的分析和报告工具,以便迅速查找到性能问题并追溯原由。使用LoadRunner 的Web 交易细节监测器,了解到将所有的图象、框架和文本下载到每一网页上所需的时间。例如,通过交易细节分析机制能够分析是否因为一个大尺寸的图形文件或是第三方的数据组件造成应用系统运行速度减慢。另外,还采用Web 交易细节监测器分解用于客户端、网络和服务器上端到端的反应时间,便于确认问题,定位查找真正出错的组件。
以上几个由浅入深,层层递进的测试过程。建立起了对系统运行良好的前提。目前,该项目已经在工期顺利完成,试运营这半年月来,用户点击日志达到1300万条,运行情况良好,系统的安全性和并发性均达到了预期目标,整个项目小组受到本公司领导和甲方的一致好评。但我个人认为作为一名优秀系统分析员应该不断的去追求完美,去做到精益求精:
1、宽带视频系统大部分任务是提供娱乐性节目,用户在观看娱乐节目的过程中更注重节目的整体性和连贯性,因此,稳定性对于视频系统而言是十分关键的一点,如何在有限带宽的情况下如何更好的提高系统的稳定性是我们还需要做的更好的地方。
2、流媒体最大并发流数目是宽带视频应用的瓶颈。我公司在并发业务/服务的研究方面属于国内领先,然而在这个领域如何与世界知名企业同步或者超过他们,这也是我们今后努力的方向。