一、软件测试综述

  完整的软件测试是评定软件性能和质量的重要手段,该测试可以用来检查软件是否满足设计和项目合同书所规定的技术要求,检验软件对误操作的处理能力,并为软件可靠性与安全性的评估提供依据。

  软件测试有许多不同的分类方法,如按测试用例设计方法可分为白盒测试和黑盒测试;按测试策略和过程可分为单元测试、集成测试、确认测试和系统测试;从是否需要执行被测软件的角度,可分为静态测试和动态测试。上述各种方法都已被证明是行之有效的,在测试中应根据测试目的适当选择。

  通信软件测试和一般的软件测试适用于同样的测试方法、流程和工具,但又具有一定的差异性,特别是针对诸如手机终端软件的测试。对于手机软件这样一个人机交互频繁、人性化要求高的应用系统的测试,电信运营商需要从两个角度考虑:一方面从开发人员的角度思考,要求测试系统提供足够证据来证明软件系统的功能是可行的;另一方面则应该从使用手机终端的用户角度出发,要求测试系统提供手机软件系统的缺陷和不足信息。

二、手机终端软件测试难点及可行的解决方案

  恰当地评测手机软件产品并非易事,一方面,手机终端的软件和其硬件直接相关,而硬件开放的接口可能是受限的;另外,各个终端的软件千差万别,难以直接套用通用的测评工具。

  对于手机终端软件的评测很困难并不意味着手机终端软件是不可测的,手机软件包括了Protocol、MMI(人机接口)两个主要部分以及应用软件/应用系统。Protocol部分是通过了FTA(全面型号认证)才能使用的(针对GSM手机而言),其无线资源管理、移动性位置管理和通讯管理软件部分必须满足制式对应的标准,可以使用自动测试系统来对协议进行跟踪和测试。应用软件/系统则基本适用于一般的软件测试流程和工具。

  如何测试MMI部分是测试的难点,鉴于Protocol、MMI这两部分相互影响不能截然分开,MMI软件的问题也会影响Protocol部分。目前大多数公司没有自动化的测试软件,只能通过模拟用户的办法来操作手机,在出现问题的时候进行跟踪。而部分生产商其软件底层有测试代码支持,可以实现自动化测试,实现方法是开发测试代码并加入到手机原代码中去,但这对于电信运营商来说并不现实。

  对于上述问题,目前可行的解决方案之一是软件模拟,即通过软件模拟器来实施软件测试,在模拟器平台上可以对手机软件完成覆盖率测试、内存测试、性能测试和一致性测试。对MMI而言,将手机应用程序移植到模拟器平台上运行,可以模拟显示MMI菜单树,也可通过模拟网络消息来模拟短信和打电话等功能,并可对部分代码进行单元测试和集成测试。需要说明的是,利用模拟器对手机软件进行测试不能作为测试途径,但往往可以通过与目标系统相同版本进行交叉测试或测试对比。

  解决方案二是开发测试系统,提供ProtocolStack和MMI的跟踪分析以及模拟用户硬件功能。系统可通过线程调用来进行控制,包括用户界面线程、脚本解析线程、串口控制线程和设备线程。用户界面线程提供测试的人机界面;脚本解析线程响应用户界面线程发送的控件消息,负责解析脚本文件并执行解析后脚本;串口控制线程控制测试系统和被测系统之间的数据传输;设备线程实现根据测试要求自动设定设备参数的功能。

  尽管测试系统的开发可以采用模块化的方式,但仍存在开发难度较大、测试对象属性差异较大的问题,更加简单的方法是基于现有的测试平台/系统进行开发,如基于Ageresystem的Optitrace套件的开发等。

三、3G环境中手机终端软件的测试

  鉴于3G技术更加复杂,且终端定制将成为主流,3G手机软件的测试工作值得深入研究。3G业务在国外已经开展了一段时间,在手机测试方面也已经有一定的积累,目前已经有相应的测试工具被开发出来,业界正在对业务测试平台进行论证。

  从目前的情况看,在3G环境中开展手机软件的测试过程中,一致性测试成为新的难点。一致性测试是用来确认设备是否符合对其功能要求方面的规范或协议的测试过程,一致性测试标准包括3部分:抽象测试集(ATS)、协议实现一致性说明(PICS)和协议实施附加信息(PIXIT)。可执行测试集(ETS)在以上3部分的基础上生成。

  协议一致性测试和射频一致性测试是其中复杂也重要的部分,协议一致性测试属于软件测试的范畴,在一定的网络环境下,对被测协议实现(IUT)进行黑盒测试,通过比较IUT的实际输出与预期输出的异同,判定IUT在多大程度上与协议描述相一致,从而确立通过一致性测试的IUT在互联时成功率的高低。实际上,2G系统同样需要进行一致性测试,3G系统因相对于2G系统更加复杂,而使得一致性测试显得更加重要。

  协议一致性测试可测试手机和网络之间的信令协议是否符合TS34.123规范,3GPPTS34.123定义了约700个TTCN测试用例,对RLC层、MAC层和RRC层分别进行测试。全球认证论坛GCF也制定了测试用例/策划平台认证的流程以及终端产品认证注册的流程,按照优先级将测试用例划分为7个Batch,从高到低进行认证。

  从目前的情况来看,能提供协议一致性测试设备的厂商并不多,但这是软件测试的一个不可或缺的环节。在多个厂家进行设备互联时,通过一致性测试会提高人们对设备符合相应协议标准的置信程度,提高相同标准不同实现之间互联的概率,这对于我国自主知识产权的TD-SCDMA设备来说具有现实意义。

  对于3G手机而言,除上面提到的协议一致性测试之外,MMI以及应用软件/应用系统的测试仍将是测试中的主要工作,而且随着手机智能化程度的不断上升,这部分的测试工作会给电信运营商带来更大的挑战。