首页 >> >> 通信世界 >> 总第435期 >> 技术方案 >> 正文
 
软件测试 提高通信设备可用性的关键
http://www.cww.net.cn   2009年9月29日 11:14    通信世界周刊    
作 者:泰尔实验室 李波 潘娟 阿尔卡特朗讯 张学军

    随着移动通信的迅猛发展,任何轻微的设备故障都可能影响大量用户的正常通信服务,这就对设备的可用性和可靠性提出了高标准的要求。为了保证通信设备的可用性,必须进行一系列测试来发现软件或系统中存在的缺陷,并在正式发布之前解决尽可能多的缺陷。一个成熟的通信产品开发流程中通常包含单元测试、集成测试、功能测试、系统测试、安全测试、性能测试、稳定测试、压力测试、网络测试和接收测试(如图1)。

    一、单元测试

    单元测试也称白盒测试,即在已知单元或模块内部工作过程的情况下,通过测试来检验内部动作是否能够按照需求定义的规定正常使用。单元测试常用在单个功能或模块编码结束后,对新增代码进行的测试。单元测试主要评价模块的接口、局部数据类型、出错处理通路、重要的执行通路以及影响以上特性的边界条件等五个特性。

    实际进行单元测试时,需要基于代码审查结果,设计驱动模块来代替上级模块,设计桩模块来代替下级模块。驱动模块用于从测试者接收测试数据,并把数据传送给被测试的软件单元,然后将测试结果返回给测试者。桩模块则用于替代那些隶属于被测软件单元或与被测软件单元有接口关系的软件模块。这样,测试用例被驱动模块读入到被测软件单元中,被测软件单元针对给定的测试用例运行,当需要通过接口与其他模块进行通信时,就调用桩模块,执行完测试用例后,被测软件单元将执行结果返回给驱动模块,驱动模块再将执行结果报告给单元测试者。

    二、集成测试

    集成测试是在各个模块完成各自的单元测试后,把各个模块的代码提交上来,合成一个可以执行的整体,然后再进行测试。集成测试可以检查这些单元接口是否存在问题。集成测试则不仅要考虑模块间的相互作用,还要考虑系统应用环境。集成测试衡量的标准是实现产品规格说明书上所要求的内容。

    例如对于HLR设备,位置更新操作几乎涉及到系统的所有组成模块,包括MAP协议处理、业务逻辑处理、用户数据模型、数据库管理、磁盘管理、磁盘操作等,因此,在集成测试中运行这样的用例就能有效地检验系统的整体可用性。

    在实际测试中,会选取一个用例集来执行集成测试,该集合中的测试用例通常代表了该通信设备的基本功能。完成了集成测试就表示该系统能够执行一些基本功能,并可进入下一阶段的详细功能测试。

    三、功能测试

    功能测试是指根据产品功能说明文档,通过测试来检验每个功能是否都能够正常使用。功能测试通常仅考虑输入和输出的对应关系以及程序的接口,完全不考虑系统内部结构和处理过程。

    通信设备功能测试的重点常常在协议测试,包括一致性测试和互操作性测试。一致性测试是通过观察具体实现在不同环境和条件下的反应来验证协议实现与相应的协议标准是否一致。一致性测试只关心协议实现呈现于外部的性能,要保证不同的协议实现在实际网络中能互通,还需要检测某一协议实现与其它系统间的交互过程是否正常,这就是互操作性测试。

    四、系统测试

    系统测试是在集成测试和功能测试之后,将硬件、涉及的第三方软件、与现场相似的数据和配置等系统元素结合起来,在实际运行环境下对整个系统进行严酷地测试来发现软件所存在的潜在问题,从而保证系统的运行。为了体现真实情况,系统测试应在与部署现场一样的软硬件、通信设备内配置大量(数百万至数千万)真实用户数据、接受大量来自其他网络设备的消息(数千条消息/秒)等环境下进行。

    系统测试的内容包含压力测试、性能测试、稳定性测试、安全测试、容错测试等。通常来说,不同厂商的设备在功能方面没有太大差异。但是在系统级的各项指标上,如稳定性、安全性、容错性等方面,存在巨大的差异。

    五、网络测

    通信设备最基本的功能就是和其他通信设备按照标准协议进行通信,因此,在设备通过系统测试后,有必要把设备和网络上其他的通信设备连接在一起,进行互联互通测试,这样的测试称为网络测试。

    在一个典型通信网络模型里,HLR通过SS7网络分别与MSC、GMSC、SGSN、GGSN进行通信。因此针对HLR的网络测试必须设计相应的用例来检验HLR与这些网络设备间接口的功能。

    实际操作中,首先,将处于关机状态的移动台A开机,观察移动台A能否在电路域和分组域完成鉴权和注册。然后,用另一个电话(移动台或固定电话)呼叫移动台A,观察移动台A能否正确振铃。最后,用另一个移动台B向移动台A发短消息,并指定由分组域进行传递,观察移动台A能否正确接收短消息。

    六、接收测试

    运营商通常希望购置的新设备在正式部署之前,在自己的试验网或现网上进行试运行,主要目的是验证新设备和运营商所配置的现有其他设备的互联互通能力,这样的测试称为接收测试。接收测试的测试方法和操作步骤和前面的网络测试类似,只是环境由通用的网络环境替换成运营商特定的试验网或现网。

    接收测试的完成,标志着运营商对新购买的通信设备的认可。通过了接收测试,新设备就可以正式上网运行,服务终端用户了。

    七、缺陷分布模型和质量预测

    严格来说,软件产品的质量衡量是软件产品发布后,通过统计发现缺陷的数目及严重程度来实现的。但是这样产品的缺陷对用户的损害已经造成,这时候再采取相应改进措施常常效果有限。

    开发流程成熟的公司在项目管理、评审、开发、测试等子过程的性能比较稳定,在开发有一定规模的软件产品时,不同阶段引入或者发现的缺陷分布通常可以根据历史统计数据进行预测。

    例如,根据以往的统计数据,开发一个中等程度产品时,每千行新代码引入的缺陷数目即缺陷密度为15个,缺陷在各个阶段被发现的比例(如表1)。

    如果该公司开发一个新产品,假设估算的新代码是20000行,那么,根据历史统计的缺陷密度,可以推算,该新产品预计的缺陷总数为20000×15/1000,即300个。然后按照缺陷分布模型的百分比,可以把缺陷发现指标分解到各个阶段中(如表2)。这样我们就得到了每个阶段发现缺陷的目标数,并作为质量目标来评估每个阶段的工作成果。

    核心网设备要服务于众多用户,设备的可用性和可靠性至关重要,因此,在通信设备正式上网运行之前,必须进行一系列严格的测试来发现系统中存在的缺陷,并在设备正式发布之前解决所有存在重大影响的缺陷。

编 辑:高娟
关键字搜索:软件测试  
相关新闻
每日新闻排行
企业黄页
会议活动