CN100362817C - 软件模块的测试方法 - Google Patents

软件模块的测试方法 Download PDF

Info

Publication number
CN100362817C
CN100362817C CNB2005100632303A CN200510063230A CN100362817C CN 100362817 C CN100362817 C CN 100362817C CN B2005100632303 A CNB2005100632303 A CN B2005100632303A CN 200510063230 A CN200510063230 A CN 200510063230A CN 100362817 C CN100362817 C CN 100362817C
Authority
CN
China
Prior art keywords
software module
module
testing
result
asn
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2005100632303A
Other languages
English (en)
Other versions
CN1845514A (zh
Inventor
桂俊超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Huawei Agisson Electric Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB2005100632303A priority Critical patent/CN100362817C/zh
Publication of CN1845514A publication Critical patent/CN1845514A/zh
Application granted granted Critical
Publication of CN100362817C publication Critical patent/CN100362817C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种软件模块的测试方法,该方法主要包括:通过脚本语言建立ASN.1(抽象语法规则1)接口命令;将所述ASN.1接口命令下发到待测试软件模块;根据所述待测试软件模块返回的对所述ASN.1接口命令的处理结果,获得对待测试软件模块进行测试的测试结果。本发明的实现有效地降低了对软件模块进行测试所需要的模拟系统和测试用例的复杂程度,加快了系统开发和测试进度,为实现利用ASN.1接口自动对软件模块进行测试提供了基础。

Description

软件模块的测试方法
技术领域
本发明涉及计算机应用领域,尤其涉及一种软件模块的测试方法。
背景技术
ASN.1(抽象语法规则1)是一种用于描述结构化客体的结构和内容的语言,是一种用于定义语法的描述语言,用于描述在网络上传递的消息。ITUT(国际电信联盟标准化部门)建议对ASN.1进行了详细描述,ASN.1允许设计者定义数据结构中的各个参数而不必去关心这些参数在网络中传送时是怎样编解码的。ASN.1特别适合表示现代通信应用中那些复杂的、变化的及可扩展的数据结构。
ASN.1可分为语法规则、编码规则两个部分。其中:
语法规则:说明如何从数据类型、内容顺序或结构等方面来描述消息的内容;
编码规则:说明如何编码实际消息中的数据。
由于ASN.1具有完全标准化的特点,因而众多厂商为其在各种不同的平台和编程语言环境下提供了应用系统。ASN.1接口是使用ASN.1语法描述的系统接口。ASN.1接口为跨编程语言、跨平台、跨机器的应用提供了可靠方便的手段。采用ASN.1接口的系统的基本结构如图1所示,接口两端的模块可以分别运行在不同的计算机上,并且可以通过不同的编程语言来实现。
在一般情况下,图1所示的系统中的模块A和模块B功能上相对独立,并且在系统开发过程中很难做到同步开发,因而需要通过模拟工具分别对模块A和模块B进行模拟,然后通过ASN.1接口在模拟模块和被测试模块之间传递命令,以便在系统开发过程中实现对单独模块内部的调试或测试。通过模拟工具模拟模块A来实现对模块B的调试或测试模型如图2所示,其主要原理为:在模块B的开发过程中,使用模拟工具模拟模块A,然后通过ASN.1接口向模块B下发命令,并对模块B返回的结果进行判断,实现对模块B的调试或测试。
目前在电信网管等大型软件系统中ASN.1已经得到了广泛应用。
现有技术中利用ASN.1接口对软件模块进行调试或测试的一种方法为:直接使用电信网管等大型软件系统中提供的编译过的库文件或头文件,并使用所述大型软件系统对应的编程语言进行模块A的模拟,然后通过ASN.1接口向模块B下发命令,并对模块B返回的结果进行判断,实现对模块B的调试或测试。
该软件模块测试方法的缺点为:
1、由于电信网管等大型软件系统都是采用比较复杂的编译型语言(如C/C++、Java等),因此,该方法对软件模块的模拟和整个测试系统的建立实现起来复杂度较高;
2、电信网管等大型软件系统的编程语言的编译需要花费很长时间,而在对软件模块的测试过程中,测试用例的增加和维护是比较频繁的,并且每次修改或增加测试用例,都需要经过编译和连接程序的处理,因此,该方法对测试用例和模拟系统的维护比较困难,需要花费大量时间。
现有技术中利用ASN.1接口对软件模块进行调试或测试的另一种方法为:利用一些工具把ASN.1结构转化成具有数据编辑功能的图形树,并利用该图形树实现图2所示模型中的对模块A的模拟和对模块B的即时调试和测试。
该软件模块测试方法的缺点为:
1、缺乏动态构造ASN.1接口命令的能力;
2、只提供即时调试和测试功能,花费了大量时间构造的测试用例数据无法保存重用,无法实现自动测试。
发明内容
鉴于上述现有技术所存在的问题,本发明的目的是提供一种软件模块的测试方法,从而有效地降低对软件模块进行测试所需要的模拟系统和测试用例的复杂程度,加快了系统开发和测试进度。.
本发明的目的是通过以下技术方案实现的:
一种软件模块的测试方法,包括:
A、通过脚本语言建立抽象语法规则ASN.1接口命令;
B、将所述ASN.1接口命令下发到待测试软件模块;
C、根据所述待测试软件模块返回的对所述ASN.1接口命令的处理结果,获得对待测试软件模块进行测试的测试结果。
所述的待测试软件模块可以为电信网管中的软件模块。
所述的步骤A进一步包括:
A1、通过工具建立对待测试软件模块进行测试所需要的模拟模块;
A2、根据所述模拟模块,通过脚本语言建立对待测试软件模块进行测试所需要的ASN.1接口命令脚本;
A3、通过工具将所述ASN.1接口命令脚本编码为ASN.1接口命令。
所述的步骤A1还包括:
所述模拟模块建立和待测试软件模块之间的连接。
所述的步骤A2进一步包括:
A21、根据所述模拟模块,建立对待测试软件模块进行测试所希望获得的期望结果;
A22、根据所建立的期望结果,通过所选择的脚本语言建立对待测试软件模块进行测试所需要的ASN.1接口命令脚本。
所述的步骤B进一步包括:
所述模拟模块将所述ASN.1接口命令下发到待测试软件模块。
所述的步骤C进一步包括:
C1、所述待测试软件模块对接收到的ASN.1接口命令进行相应的处理,并将处理结果返回给所述模拟模块;
C2、所述模拟模块根据所述待测试软件模块返回的处理结果,获得对待测试软件模块进行测试的测试结果。
所述的步骤C2进一步包括:
C21、所述模拟模块将接收到的所述待测试软件模块返回的处理结果进行解码,获得解码结果;
C22、所述模拟模块将所述解码结果和所述期望结果进行比较,获得对待测试软件模块进行测试的测试结果。
所述的步骤C22进一步包括:
如果所述解码结果和所述期望结果相一致,则对待测试软件模块进行测试的测试结果为正确;
如果所述解码结果和所述期望结果不一致,则对待测试软件模块进行测试的测试结果为不正确。
所述的步骤C还包括:
所述模拟模块获得对待测试软件模块进行测试的测试结果后,关闭其和所述待测试软件模块之间的连接。
由上述本发明提供的技术方案可以看出,本发明和现有技术相比,本发明使用相对简单的脚本方式处理ASN.1接口命令,具有下面优点:脚本语言简单易用,因此,本发明有效地降低了对软件模块进行测试所需要的模拟系统和测试用例的复杂程度,加快了系统开发和测试进度;本发明能够提供动态构造ASN.1接口命令的功能;脚本化的测试用例便于实现模拟系统和测试用例的重用,本发明为实现利用ASN.1接口自动对软件模块进行测试提供了基础;本发明能够把调试和测试过程中相对一致的部分独立出来,便于提供稳定可靠的支撑模块,让开发和测试人员只完成关键性的测试用例构造过程。
附图说明
图1为现有技术中采用ASN.1接口的系统的基本结构图;
图2为现有技术中通过模拟模块A来实现对模块B的调试或测试模型图;
图3为本发明所述方法的原理图;
图4为本发明所述方法的具体处理流程图。
具体实施方式
本发明提供了一种软件模块的测试方法。本发明的核心为:使用相对简单的脚本方式处理ASN.1接口命令,有效地降低了对软件模块进行测试所需要的模拟系统和测试用例的复杂程度。
下面结合附图来详细描述本发明所述方法,本发明所述方法的原理如图3所示,其基本原理为:
通过一些工具模拟模块A形成模拟模块A,模拟模块A通过脚本语言构造ASN.1接口命令,并把该ASN.1接口命令下发到模块B。模块B在接收到该命令后,对其进行相应的处理,并把处理结果返回给模拟模块A。模拟模块A接收到模块B返回的处理结果后,把该处理结果与期望结果进行比较,如果处理结果和期望结果相一致,则对模块B的调试或测试结果为正确;如果处理结果和期望结果不一致,则对模块B的调试或测试结果为不正确,需要对模块B进行修改,然后重复上述测试过程。
本发明所述方法的具体处理流程图如图4所示,包括如下步骤:
步骤4-1、使用工具建立模拟模块A。
首先,使用工具模拟模块A建立模拟模块A,本次测试将利用该模拟模块A来实现对模块B的调试或测试。
步骤4-2、建立模拟模块A和模块B的连接。
使用一些工具建立通过步骤4-1所建立的模拟模块A和模块B之间的连接。
步骤4-3、构造下发到模块B的ASN.1接口命令脚本。
构造本次对模块B的调试或测试所希望获得的期望结果,选择一种常用的测试脚本语言如TCL语言作为本次测试要用的脚本语言,根据所构造的期望结果,按照所选择的脚本语言的语法,构造本次测试所需要的、下发到模块B的ASN.1接口命令脚本。所构造的ASN.1接口命令脚本中可以包含一些自定义的ASN.1脚本的语法。
步骤4-4、根据构造的ASN.1接口命令脚本,编码下发到模块B的ASN.1接口命令。
通过一些工具将所构造的ASN.1接口命令脚本进行编码,即将所构造的ASN.1接口命令脚本转换成二进制的ASN.1接口命令。并且将编码结果打印出来,便于对ASN.1接口命令脚本本身进行调试和维护。
步骤4-5、模拟模块A把编码的结果下发到模块B。
模拟模块A通过建立的模拟模块A和模块B之间的连接,把通过步骤4-4所获得的编码结果,即所编写的ASN.1接口命令下发到模块B。
步骤4-6、模拟模块A接收模块B返回的对下发的ASN.1接口命令的处理结果。
模块B接收到模拟模块A下发的ASN.1接口命令后,对所接收到的ASN.1接口命令进行相应的处理,并将处理结果返回给模拟模块A。
模拟模块A将所编写的ASN.1接口命令下发到模块B后,便等待模块B对下发的ASN.1接口命令的处理结果,直到接收到模块B返回的处理结果。
步骤4-7、模拟模块A对接收到的返回结果进行解码。
模拟模块A通过一些工具对接收到的模块B的返回结果进行解码,得到和所述期望结果相对应的解码结果。
步骤4-8、模拟模块A把解码后的结果与期望结果进行比较。
模拟模块A把通过步骤4-7所获得的解码结果与所述期望结果进行比较,以获得本次对模块B的调试或测试的结果。
步骤4-9、模拟模块A记录解码结果与期望结果的比较结果。
如果所述解码结果与所述期望结果相一致,则本次对模块B的调试或测试的结果为正确;如果所述解码结果与所述期望结果不一致,则本次对模块B的调试或测试的结果为不正确,需要对模块B进行修改。
步骤4-10、关闭模拟模块A与模块B之间的连接。
在本次对模块B的调试或测试完毕后,关闭模拟模块A与模块B之间的连接。
通过重复步骤4-3~4-9,可在一个模拟模块A和模块B之间的连接上实现多条ASN.1接口命令的调试和测试过程,也可以通过直接重复步骤4-1~4-10(即每次收发一条ASN.1接口命令都单独建立一条连接),实现在模拟模块A和模块B之间多条ASN.1接口命令的调试和测试。
下面以软件测试过程中常用的测试脚本语言TCL为例,给出一个本发明所述方法的简单实现范例:
#首先载入相关的TCL扩展包,这一步骤是TCL脚本语言的特征,要在#脚本中使用某功能,则必须在该脚本被执行之前加载该功能所在的#TCL扩展包。
package require ASN 1
package require MOD_B
#构造期望结果,本范例中的期望结果是一个字符串
set strExpect“:asn 1 getcfgstaticdatarsp-gseq{result-gseq{{isSuccess-gb 1}{retCode-oi O}{reason-os\″xxx\″}}}”
#步骤1:连接本机模块B,如果模块B运行其它机器上,
#把本机IP地址(127.0.0.1)换成对应IP地址即可
mod_b_Connect 127.0.0.1
#步骤2:构造下发到模块B的ASN.1接口命令脚本
#假设下发的命令名称为:asn1getcfgstaticdatareq,
#与其对应的返回命令名为,asn1getcfgstaticdatarsp,
#下发的命令有一个唯一的整型字段“userlD”,值被指定为10,其中
#的“:”、“-gseq”、“{”和“}”都是自定义的ASN.1脚本的语法
#并非ITUT建议中定义的标准ASN.1的语法,可以有不同的实现形式。
set ASN1Cmd″:asn1getcfgstaticdatareq-gseq{userlD-gi 10}″
#步骤3:编码
set strEnc[asn1_Encode$ASN1Cmd]
puts$strEnc    #打印编码结果,便于脚本本身的调试和维护
#步骤4:向模块B下发编码结果
#步骤5:接收模块B返回的结果并保存在变量strRsp中
set strRsp[mod_b_Exec$strEnc]
#步骤6:对返回结果解码
set strDec[asn 1_Decode-t$strRsp]
puts$strDec  #打印解码结果,便于脚本本身的调试和维护
#步骤7:把解码结果与期望结果进行比较
#步骤8:记录实际结果与期望结果比较结果
verify_str strDec StrExpect
#步骤9:关闭与模块B的连接
mod_b_Close
本发明所述方法的所有实现范例中,除了构造的期望结果和下发的ASN.1接口命令的脚本不同外,其它过程都是一致的,因而可以把这一部分脚本和支撑过程独立出来,构成独立稳定的模块。所以对模块A和模块B之间ASN.1接口命令集的测试就变成了为命令集中每条命令构造期望结果和下发命令脚本两个过程,避免了开发和测试人员接触复杂的编程语言和大量复杂并且耦合在一起的模拟和测试用例程序。
综上所述,利用本发明会减少系统复杂度,可以大幅加速软件模块的测试过程,也有利于缩短软件开发周期。同时本发明通过将ASN.1接口命令进行脚本化,可以提高模拟模块和测试用例的重用性,为实现软件模块的自动化测试提供了基础。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (10)

1.一种软件模块的测试方法,其特征在于,包括步骤:
A、通过脚本语言建立抽象语法规则ASN.1接口命令;
B、将所述ASN.1接口命令下发到待测试软件模块;
C、根据所述待测试软件模块返回的对所述ASN.1接口命令的处理结果,获得对待测试软件模块进行测试的测试结果。
2.根据权利要求1所述一种软件模块的测试方法,其特征在于,所述的待测试软件模块可以为电信网管中的软件模块。
3.根据权利要求1所述一种软件模块的测试方法,其特征在于,所述的步骤A进一步包括:
A1、通过工具建立对待测试软件模块进行测试所需要的模拟模块;
A2、根据所述模拟模块,通过脚本语言建立对待测试软件模块进行测试所需要的ASN.1接口命令脚本;
A3、通过工具将所述ASN.1接口命令脚本编码为ASN.1接口命令。
4.根据权利要求3所述一种软件模块的测试方法,其特征在于,所述的步骤A1中的所述模拟模块还建立和待测试软件模块之间的连接。
5.根据权利要求3或4所述一种软件模块的测试方法,其特征在于,所述的步骤A2进一步包括:
A21、根据所述模拟模块,建立对待测试软件模块进行测试所希望获得的期望结果;
A22、根据所述建立的期望结果,通过所选择的脚本语言建立对待测试软件模块进行测试所需要的ASN.1接口命令脚本。
6.根据权利要求3所述一种软件模块的测试方法,其特征在于,所述的步骤B具体为:所述模拟模块将所述ASN.1接口命令下发到待测试软件模块。
7.根据权利要求3、4或6所述一种软件模块的测试方法,其特征在于,所述的步骤C进一步包括:
C1、所述待测试软件模块对接收到的ASN.1接口命令进行相应的处理,并将处理结果返回给所述模拟模块;
C2、所述模拟模块根据所述待测试软件模块返回的处理结果,获得对待测试软件模块进行测试的测试结果。
8.根据权利要求7所述一种软件模块的测试方法,其特征在于,所述的步骤C2进一步包括:
C21、所述模拟模块将接收到的所述待测试软件模块返回的处理结果进行解码,获得解码结果;
C22、所述模拟模块将所述解码结果和所述期望结果进行比较,获得对待测试软件模块进行测试的测试结果。
9.根据权利要求8所述一种软件模块的测试方法,其特征在于,所述的步骤C22进一步包括:
如果所述解码结果和所述期望结果相一致,则对待测试软件模块进行测试的测试结果为正确;
如果所述解码结果和所述期望结果不一致,则对待测试软件模块进行测试的测试结果为不正确。
10.根据权利要求7所述一种软件模块的测试方法,其特征在于,所述的步骤C还包括:
所述模拟模块获得对待测试软件模块进行测试的测试结果后,关闭其和所述待测试软件模块之间的连接。
CNB2005100632303A 2005-04-07 2005-04-07 软件模块的测试方法 Expired - Fee Related CN100362817C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005100632303A CN100362817C (zh) 2005-04-07 2005-04-07 软件模块的测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005100632303A CN100362817C (zh) 2005-04-07 2005-04-07 软件模块的测试方法

Publications (2)

Publication Number Publication Date
CN1845514A CN1845514A (zh) 2006-10-11
CN100362817C true CN100362817C (zh) 2008-01-16

Family

ID=37064428

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100632303A Expired - Fee Related CN100362817C (zh) 2005-04-07 2005-04-07 软件模块的测试方法

Country Status (1)

Country Link
CN (1) CN100362817C (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102571541A (zh) * 2010-12-24 2012-07-11 中兴通讯股份有限公司 报文编、解码方法及装置
CN103019931B (zh) * 2012-11-26 2015-12-02 华为技术有限公司 Asn.1接口的检测处理方法和装置
CN105323115A (zh) * 2014-07-31 2016-02-10 中兴通讯股份有限公司 一种网管测试事件的数据包模拟方法和装置
CN104698368B (zh) * 2015-04-01 2017-11-10 山东华芯半导体有限公司 一种实现芯片顶层测试用例重用的方法
CN107404418B (zh) * 2017-07-26 2020-12-11 百度在线网络技术(北京)有限公司 互联网产品测试方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1357981A (zh) * 2000-12-04 2002-07-10 深圳黎明电脑网络有限公司 可进行多种应用协议测试的方法
CN1503136A (zh) * 2002-11-21 2004-06-09 深圳市中兴通讯股份有限公司 一种嵌入式软件测试方法
CN1527509A (zh) * 2003-03-06 2004-09-08 华为技术有限公司 一种测试方法
US6826505B1 (en) * 2000-07-28 2004-11-30 Digi International, Inc. System and method for testing a communications server

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6826505B1 (en) * 2000-07-28 2004-11-30 Digi International, Inc. System and method for testing a communications server
CN1357981A (zh) * 2000-12-04 2002-07-10 深圳黎明电脑网络有限公司 可进行多种应用协议测试的方法
CN1503136A (zh) * 2002-11-21 2004-06-09 深圳市中兴通讯股份有限公司 一种嵌入式软件测试方法
CN1527509A (zh) * 2003-03-06 2004-09-08 华为技术有限公司 一种测试方法

Also Published As

Publication number Publication date
CN1845514A (zh) 2006-10-11

Similar Documents

Publication Publication Date Title
CN102063324B (zh) 一种实现自动化编程的方法及系统
CN106909510A (zh) 一种获取测试用例的方法以及服务器
CN103312551B (zh) 通用网关接口的测试方法及测试装置
CN101227345B (zh) 基于应用程序接口的自动测试方法
CN100362817C (zh) 软件模块的测试方法
EP1677197A1 (en) Test case automatic generation method for testing proactive GSM applications on SIM card
CN104268079A (zh) 一种pos应用程序测试的方法及系统
CN104731566A (zh) 集成开发环境测试装置、方法及系统
CN101458633B (zh) 通过脚本程序访问宿主程序的方法及其系统和装置
Koch et al. Autolink-a tool for automatic test generation from SDL specifications
CN100502309C (zh) 嵌入式Web网管系统及其交互方法
CN104899070B (zh) 设备命令行的实现方法、系统与装置
US20030226135A1 (en) Optimized program analysis
Perrotin et al. TASTE: An open-source tool-chain for embedded system and software development
CN114510357A (zh) 一种卫星发射场试验鉴定业务消息交互方法及系统
CN101158919A (zh) 一种数据驱动的单元测试方法
CN104298603A (zh) 一种应用系统版本构建的正确性的检查方法
CN106550026A (zh) 一种网络通信装置及方法
Bagheri et al. Monarch: Model-based development of software architectures
CN103488519A (zh) 一种交互式脚本语言解释器的实现方法
CN109032607A (zh) 基于lua脚本的机房监控实时数据解析引擎及脚本调试工具
CN101876936A (zh) 一种业务测试方法
Lee et al. A New Integrated Software Development Environment Based on SDL, MSC, and CHILL for Large‐scale Switching Systems
CN114115832A (zh) 一种物联网嵌入式设备与云平台通信协议实现方法
Baker et al. Testing UML2. 0 models using TTCN-3 and the UML2. 0 testing profile

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: HUAWEI ANSETT ELECTRONICS CO., LTD., SHENZHEN CIT

Free format text: FORMER OWNER: HUAWEI TECHNOLOGY CO., LTD.

Effective date: 20081010

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20081010

Address after: Building 2, B District, Bantian HUAWEI base, Longgang District, Shenzhen, Guangdong

Patentee after: Shenzhen Huawei Anjiexin Electrical Co., Ltd.

Address before: Bantian HUAWEI headquarters office building, Longgang District, Shenzhen, Guangdong

Patentee before: Huawei Technologies Co., Ltd.

C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080116

Termination date: 20110407