CN100527650C - 基于构件化的智能业务测试方法 - Google Patents
基于构件化的智能业务测试方法 Download PDFInfo
- Publication number
- CN100527650C CN100527650C CNB031212980A CN03121298A CN100527650C CN 100527650 C CN100527650 C CN 100527650C CN B031212980 A CNB031212980 A CN B031212980A CN 03121298 A CN03121298 A CN 03121298A CN 100527650 C CN100527650 C CN 100527650C
- Authority
- CN
- China
- Prior art keywords
- parameter
- ase
- testing
- application service
- service element
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于构件化的智能业务测试方法,该方法为:采用自动测试工具编制测试用例,并在测试用例中预置应用业务单元(ASE)的输入参数;在测试用例中加入主干业务;运行测试用例,使主干业务触发应用业务单元,并将输入参数传递给应用业务单元;测试用例对应用业务单元传递给主干业务的输出参数进行验证,以判断该应用业务单元的相应功能是否实现。本发明使用模拟主干业务驱动业务构件,可以有效的排除主干中其它部分的影响,使测试能够专注于业务构件;基于构件的参数构造用例,有利于保障用例的完备性;有利于测试用例自动化。
Description
技术领域
本发明涉及智能业务的测试,具体地说,涉及基于构件化的智能业务测试方法。
背景技术
在TELLIN业务的开发过程中,存在以下问题:
***业务版本多,目前有线***业务版本有50余个;
业务SIB数在2000-3000个,数量多,维护困难;
配置表多,效率差,可维护性差;例如UCS业务表55个;
业务串行开发,开发周期长;
相似功能模块不能够共用;
由于业务流程变动频繁,测试用例不能重用;
数据表结构差异大,对一卡多用、统一充值中心类需求没有较好的解决方案;
为了解决或缓解上述问题,提出了iCard solutions***业务解决方案的概念,基本思想是将公共的业务特性提炼出来,作为基本业务构件,称为应用业务单元(Application Service Entity,简称ASE)。iCard解决方案主要是基于IIN-B02版本能够提供的平台能力,对***业务(或者智能业务)开发、测试、发布等方面新的模式的探索。
iCard解决方案如图1所示。
iCard主要在下述几个方面对***开发维护模式进行了探索:
1、***业务的并行分布式开发;
2、建立统一的***类业务数据库规则;
3、分层设计,业务数据层面与业务逻辑层面分离;
4、业务特性的共享等。
现有技术的缺点是:1)针对业务功能进行测试,注重业务流程正确,对接口关注较少,不适合测试ASE。2)测试用例涉及内容较多,因功能和接口的修改将引起用例的变化,不适宜做自动化。
发明内容
本发明的目的在于提供一种基于构件化的智能业务测试方法,以保证测试时接口正确。
本发明的测试方法包括步骤:
A、采用自动测试工具编制测试用例,在测试用例中预置应用业务单元(ASE)的输入参数;
B、根据被测的应用业务单元编制相应的主干业务,并将该主干业务加入到测试用例中;
C、运行测试用例,使主干业务触发应用业务单元(ASE),并将输入参数传递给应用业务单元(ASE);
D、测试用例对应用业务单元(ASE)传递给主干业务的输出参数进行验证,以判断该应用业务单元(ASE)的相应功能是否实现。
根据上述方法:
所述的测试工具为AutoService或SoftPhone。
所述的测试用例包括预处理脚本(PRESH)部分、呼叫集部分和判断部分,输入参数在PRESH部分实现。
预置输入参数通过为每个应用业务单元(ASE)建立一个临时的参数表实现。
所述参数表包括多个输入参数项和多个输出参数项。
所述的参数表通过手工创建。
预置参数表时在输入参数项中预置相应的值,将输出参数项置空。
用例的PRESH部分使每个用例将ASE参数表中的记录先删除,再***一条新记录,以保证主干业务能正确读取表中参数。
本发明的有益效果:使用模拟主干业务驱动业务构件,可以有效的排除主干中其它部分的影响,使测试能够专注于业务构件;基于构件的参数构造用例,有利于保障用例的完备性;有利于测试用例自动化。
附图说明
图1为iCard解决方案示意图;
图2为ASE的模式结构图;
图3为本发明的流程图;
图4为语言种类选择ASE结构示意图。
具体实施方式
ASE相对于以前的业务,从规模上来讲,会小很多,给测试采取分而治之的策略提供了可能性。抽象的看ASE,其模式如图2所示。
有四种输入来源会影响ASE内部流程的执行,而ASE的执行过程和结果也可以通过相应的四种输出来监控。
本发明实现方法参阅图3:首先,采用自动测试工具编制测试用例,并在测试用例中预置应用业务单元(ASE)的输入参数;其次,根据被测的应用业务单元编制相应的主干业务,并将该主干业务加入到测试用例中;之后,运行测试用例,使主干业务触发应用业务单元(ASE),并将输入参数传递给应用业务单元(ASE);最后,测试用例对应用业务单元(ASE)传递给主干业务的输出参数进行验证,以判断该应用业务单元(ASE)的相应功能是否实现。
用例的设计
1、输入参数取值情况的组合
从ASE的特点可以看出,随着ASE的功能不同,涉及的输入输出对象的不同,在比较坏的情况下,影响ASE执行过程的输入会比较复杂,手工测试可能难以达到令人满意的覆盖率。如:某个ASE有3个输入参数,需要读取私有表中的一个个字段,需要用户输入两条数据,需要向外部模块发送一次消息,消息中有5个字段,综合起来,意味着该ASE有3+1+2+5=11个输入参数。假设每个参数考虑“最大、最小、中值、异常”四种取值情况,完全组合的话,也有4^11=4194304种组合。按照目前的情况,即便是采用工具测试,要完全覆盖所有的输入情况,也是不太可能的,需要人工分析,合并一些情况。但是,值得庆幸的是,这个数目比起以往单独一个业务的输入复杂度来说,已经降低很多,至少是个不需要采用科学计数法来表示的数。
实际情况下,还可以考虑,如果两个参数没有任何关联,这两个参数也不必进行组合。
无论如何这个数值恐怕还是要脱离手工可以执行的范围,解决的办法,一方面是加强研究,找出有效的组合方法,减少用例数,另一方面是推行自动化测试。
2、判定覆盖
以流程中的比较和分支业务无关构成块(简称SIB)为基础,设计一批用例,使得每个比较SIB的三种比较结果(大于、等于、小于)至少出现一次,每个分支SIB的每条分支都被执行一次。
达到判定覆盖,还不能保证达到SIB覆盖和分支覆盖,但是至少能够验证每个判断和分支SIB能够选择正确的分支流程。
3、SIB覆盖
在达到判定覆盖的基础上,合适的组合比较和分支SIB的条件,增加一批用例,将可以保证达到SIB覆盖。
在平台提供了SIB覆盖率统计工具之后,可以根据统计结果观察特定用例对于SIB覆盖率的贡献。在执行一批用例之后,还可以根据统计结果观察出被执行频率比较高的SIB,有助于找到性能上的瓶颈点。
4、分支覆盖
由于业务呈一种网状结构,要达到分支覆盖难度较大。
目前只能根据经验和具体ASE的特性,拟定覆盖ASE主要分支的用例。
自动化测试
ASE的自动化测试一方面要提高自动测试用例的开发效率,以跟上ASE的版本变化速度,另一方面在用例设计时,也要多考虑稳定性,尽量降低ASE版本更新时自动测试用例的重复开发。
工具可以选用AutoService或SoftPhone。
首先,各个ASE是相对独立的,各个ASE是通过主干业务来进行调用的,因此通过编写一个简单的主干业务,确保做到运行主干业务后,能触发要测的ASE,即通过主干传给ASE所需的输入参数,来测试ASE的内部运行,然后通过ASE传给主干的输出参数来验证该ASE的各个功能有没有实现。
预置不同的输入参数可以考虑针对每个ASE各自建立一个临时的ASE参数表,表的形式如下:
输入参数1 | 输入参数2 | ... | 输入参数n | 输出参数1 | 输出参数2 | ... | 输出参数n |
这张表的创建有两种方法:一种是业务生成,一种是手工创建。考虑到业务生成创建的方式可维护性差,改动表结构后可能需要将业务重新编译生成,因此主张手工写SQL语句建表,既直观又便于维护。
所有输入参数、输出参数在各ASE软件需求规格说明书中都可以找到。
然后可以采用自动测试工具AutoService来编写测试用例。上面提到,会有4种输入来源影响到ASE的运行,其中主干的输入参数,可以在PRESH部分实现,即向临时创建的ASE参数表***特定的一条记录,注意只需要给各个输入参数字段预置值就可以了,输出参数为空;需要通过DB中ASE的私有表、共有表读入的参数,也可以在PRESH部分实现,只要往这些表预置值就可以了;对于在ASE内部用户手动输入的参数,可以在呼叫集的PCR操作中编写实现;对于漫游的情况,可以利用FEPTEST工具的自动恢复消息功能自动返回消息给业务,因此只要保证环境正确,同样可以编写AutoService自动用例来测试。
PRESH部分应该注意,每个用例都应将ASE参数表中的记录先删除,再***一条新记录,保证业务能正确读取。在判断部分,除了常规的判断,如话单、日志表、余额、base表部分字段等,还应判断ASE参数表中的各个输出参数是否与预期相符。
下面举一个例子来说明。
比如语言种类选择ASE,如图3所示的结构:
其中,主干调用时的输入参数为:
参数名称 | 类型 | 取值范围 | 意义 |
ServiceKey | IntegerType | 业务键 |
返回主干的输出参数为:
参数名称 | 类型 | 取值范围 | 意义 |
RetumCode | Char(2) | 00:成功01:失败出口 | 返回码,如果为01则主干流程直接释放呼叫; |
LanguageType | Char(1) | 1~3 | 提示音种类:1、普通话;2、英语;3、本地话 |
则我们可以创建如下表(表名可以用此ASE规格的编号区分,例如ASE_T0102):
字段 | 类型 | 取值范围 | 意义 |
ServiceKey | IntegerType | 业务键 | |
ReturnCode | Char(2) | 00:成功01:失败出口 | 返回码,如果为01则主干流程直接释放呼叫; |
LanguageType | Char(1) | 1~3 | 提示音种类:1、普通话;2、英语;3、本地话 |
然后编写一个主干业务(假设业务键208),读入ASE_T0102表中的输入参数(这里就是ServiceKey的值),来调用语言种类选择ASE;ASE内部运行完成后,携带输出参数返回主干,主干进行后续处理,并将输出参数放入ASE_T0102表中的ReturnCode和LanguageType中。这里的输入参数在Autoservice用例的PRESH部分赋值。具体可以参考下面:
PRESH部分:
dbaccess $TELLIN_DBNAME<<!
Delete from ASE_T0102;
Insert into ASE_T0102 values(′208′,null,nu11);
......(预置ASE各配置表的值)
!
呼叫集部分:
SSP tc_begin tc_invorkIDP 主干部分
SCP tc_continueltc_invorkRRBE
……
SCP tc_continue2tc_invorkP AASE部分
SSP tc_continue2tc_invorkSRR
SCP tc_continueltc_invorkPC
SSP tc_continue2tc_invorkPCR
……
ERB 主干部分
RC
判断部分:
DB:
Row 1
Dbname $TELLIN_DBNAME
TableASE_T0102
WhereReturnCode=′00′and LanguageType=′1′
......(其它判断)
输入条件要根据主干调用时的各输入参数、ASE要用到的私有表和公有表的配置、ASE内部的用户输入等进行组合,如果完全组合,可能会非常庞大,因此需要根据实际情况去掉不可能出现的条件组合,或者没有任何关联的条件组合,设计出合理、有效的自动测试用例。
本发明的方法,解决了ASE单独运行测试时接口参数的输入和输出结果的检查问题,并且给测试用例自动化提供了便利。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (8)
1、一种基于构件化的智能业务测试方法,其特征在于包括步骤:
A、采用自动测试工具编制测试用例,在测试用例中预置应用业务单元的输入参数;
B、根据被测的应用业务单元编制相应的主干业务,并将该主干业务加入到测试用例中;
C、运行测试用例,使主干业务触发应用业务单元,并将输入参数传递给应用业务单元;
D、测试用例对应用业务单元传递给主干业务的输出参数进行验证,以判断该应用业务单元的相应功能是否实现。
2、如权利要求1所述的测试方法,其特征在于:所述的测试工具为AutoService或SoftPhone。
3、如权利要求1所述的测试方法,其特征在于:所述的测试用例包括预处理脚本(PRESH)部分、呼叫集部分和判断部分,输入参数在PRESH部分实现。
4、如权利要求1、2或3所述的方法,其特征在于:预置输入参数通过为每个应用业务单元建立一个临时的参数表实现。
5、如权利要求4所述的测试方法,其特征在于:所述参数表包括多个输入参数项和多个输出参数项。
6、如权利要求4所述的测试方法,其特征在于:所述的参数表通过手工创建。
7、如权利要求5所述的测试方法,其特征在于:预置参数表时在输入参数项中预置相应的值,将输出参数项置空。
8、如权利要求3所述的方法,其特征在于:用例的预处理脚本部分使每个用例将应用业务单元参数表中的记录先删除,再***一条新记录,以保证主干业务能正确读取表中参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031212980A CN100527650C (zh) | 2003-03-31 | 2003-03-31 | 基于构件化的智能业务测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031212980A CN100527650C (zh) | 2003-03-31 | 2003-03-31 | 基于构件化的智能业务测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1534905A CN1534905A (zh) | 2004-10-06 |
CN100527650C true CN100527650C (zh) | 2009-08-12 |
Family
ID=34285655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB031212980A Expired - Fee Related CN100527650C (zh) | 2003-03-31 | 2003-03-31 | 基于构件化的智能业务测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100527650C (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100407663C (zh) * | 2004-11-17 | 2008-07-30 | 中兴通讯股份有限公司 | 一种电信智能业务的通用测试***及方法 |
CN100377108C (zh) * | 2005-04-30 | 2008-03-26 | 华为技术有限公司 | 一种测试用例的执行方法 |
CN100363906C (zh) * | 2006-02-28 | 2008-01-23 | 华为技术有限公司 | 一种软件单元的测试方法 |
CN101221530B (zh) * | 2008-01-22 | 2010-06-16 | 中兴通讯股份有限公司 | 一种测试用例自动导入方法 |
CN107329895B (zh) * | 2017-06-21 | 2020-08-21 | 福建中金在线信息科技有限公司 | 一种模块化测试用例的测试方法及装置 |
CN116186079B (zh) * | 2023-04-27 | 2023-07-04 | 江苏博云科技股份有限公司 | 一种sql批量查询自动改写和优化方法 |
-
2003
- 2003-03-31 CN CNB031212980A patent/CN100527650C/zh not_active Expired - Fee Related
Non-Patent Citations (1)
Title |
---|
数据传输线路差错检测方法和分析. 马光星.中国数据通信,第12期. 2002 * |
Also Published As
Publication number | Publication date |
---|---|
CN1534905A (zh) | 2004-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105138501B (zh) | 一种可配置的动态报表生成方法及*** | |
CN101377759B (zh) | 自动化界面测试*** | |
CA2392675C (en) | Database system and method | |
US6014670A (en) | Apparatus and method for performing data transformations in data warehousing | |
CN104123227A (zh) | 一种自动生成测试用例的方法 | |
CN105913233A (zh) | 适用于应用客户端支付的sdk处理方法 | |
CN105868204A (zh) | 一种转换Oracle脚本语言SQL的方法及装置 | |
CN103092631B (zh) | 一种数据库应用***开发平台及开发方法 | |
de la Vega et al. | Mortadelo: Automatic generation of NoSQL stores from platform-independent data models | |
CN106558105B (zh) | 产品可配置bom在虚拟现实***的使用方法 | |
CN112347071B (zh) | 一种配电网云平台数据融合方法及配电网云平台 | |
CN106372044A (zh) | 一种基于报表生成类型化维度xbrl报告的方法 | |
CN110069248A (zh) | 接口数据的调用方法、装置、设备及计算机可读存储介质 | |
CN100527650C (zh) | 基于构件化的智能业务测试方法 | |
CN106599167A (zh) | 一种支持增量升级数据库的***和方法 | |
CN111027284A (zh) | 一种基于数据灵活接入标准化输出方法 | |
CN102123099B (zh) | 报文处理***及方法 | |
CN110334001A (zh) | 一种批量自动生成回声测试的方法和装置 | |
CN202143092U (zh) | 报文处理*** | |
CN109582286A (zh) | 基于Freemarker技术的数据规范性校验方法及其装置 | |
Dalal et al. | AETG/sup SM/Web: a Web based service for automatic efficient test generation from functional requirements | |
CN115422898A (zh) | 一种基于容器云的可视化自定义报表分析*** | |
CN105404608A (zh) | 一种基于公式解析的复杂指标集计算方法和*** | |
CN102811445B (zh) | 配置数据的检查方法及装置 | |
CN108647018A (zh) | 可实时预览的代码生成*** |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090812 Termination date: 20130331 |