公开/公告号CN104391793A
专利类型发明专利
公开/公告日2015-03-04
原文格式PDF
申请/专利权人 中国联合网络通信集团有限公司;
申请/专利号CN201410710218.6
发明设计人 张茉莉;
申请日2014-11-27
分类号G06F11/36;
代理机构北京同立钧成知识产权代理有限公司;
代理人马爽
地址 100033 北京市西城区金融大街21号
入库时间 2023-12-17 04:19:09
法律状态公告日
法律状态信息
法律状态
2017-07-14
授权
授权
2015-04-01
实质审查的生效 IPC(主分类):G06F11/36 申请日:20141127
实质审查的生效
2015-03-04
公开
公开
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种测试步骤及测试脚本生 成方法及装置。
背景技术
随着通信技术的发展,通信设备承载的业务的数量以及复杂度日益增加, 因此需要对通信设备承载的业务进行测试,保证业务正常运行。
现有技术通过测试人员对业务测试用例文件的理解,手工将业务测试用 例文件转换成测试步骤及测试脚本,依据测试步骤及测试脚本进行业务测试, 其中,业务测试用例文件是由文字描述的、普通测试人员及业务人员能直观 看懂的文档。
由于测试人员手工将业务测试用例文件转换成测试步骤及测试脚本的效 率低,导致最终业务测试效率低。
发明内容
本发明实施例提供一种测试步骤及测试脚本生成方法及装置,以提高业 务测试效率。
本发明实施例的一个方面是提供一种测试步骤及测试脚本生成方法,包 括:
对业务测试用例文件进行词法分析获得多个词法类型,各词法类型至少 包括一个词语;
对业务测试用例文件进行语法分析,获得所述词语之间的对应关系;
依据所述词语与所述对应关系生成控制数据流图,所述词语为所述控制 数据流图的节点,所述对应关系为所述控制数据流图的边;
将所述控制数据流图转换为测试步骤及测试脚本。
本发明实施例的另一个方面是提供一种测试步骤及测试脚本生成装置, 包括:
词法分析模块,用于对业务测试用例文件进行词法分析获得多个词法类 型,各词法类型至少包括一个词语;
语法分析模块,用于对业务测试用例文件进行语法分析,获得所述词语 之间的对应关系;
控制数据流图生成模块,用于依据所述词语与所述对应关系生成控制数 据流图,所述词语为所述控制数据流图的节点,所述对应关系为所述控制数 据流图的边;
转换模块,用于将所述控制数据流图转换为测试步骤及测试脚本。
本发明实施例提供的测试步骤及测试脚本生成方法及装置,通过对业务 测试用例文件进行词法分析和语法分析,并依据词法分析和语法分析的结果 生成控制数据流图,通过对控制数据流图的各节点和各个边的遍历自动得出 测试步骤及测试脚本,相对于测试人员手工生成测试步骤及测试脚本,提高 了业务测试效率。
附图说明
图1为本发明实施例提供的测试步骤及测试脚本生成方法流程图;
图2为本发明实施例提供的控制数据流图的示意图;
图3为本发明另一实施例提供的测试步骤及测试脚本生成方法流程图;
图4为本发明实施例提供的测试步骤及测试脚本生成装置的结构图;
图5为本发明另一实施例提供的测试步骤及测试脚本生成装置的结构 图。
具体实施方式
图1为本发明实施例提供的测试步骤及测试脚本生成方法流程图;图2 为本发明实施例提供的控制数据流图的示意图。本发明实施例针对测试人员 手工生成测试步骤及测试脚本效率低的问题,提供了自动生成测试步骤及测 试脚本的方法,具体步骤如下:
步骤S101、对业务测试用例文件进行词法分析获得多个词法类型,各词 法类型至少包括一个词语;
所述词法类型至少包括业务编号、业务操作、业务名称、业务前提和标 点符号。
对已有的业务测试用例文件进行预编译,即初始化处理,具体为过滤掉 不需要转换的文件头信息;对初始化处理后的业务测试用例文件依据词法正 则表达式进行扫描获得多个词法类型,以基础业务为例,基础业务包括五类 词法正则表达式,涵盖了业务测试用例文件中的所有词法类型,该五类正则 表达式具体如下:
业务编号:{[A-Z]}{[1-9]}
业务操作:[订购|更改|退订|半停|停|复开|开户|销户]
业务名称:[语音|数据|彩信|短信|国际漫游|国际长途|来电显示|呼叫 转移]
业务前提:[有]
标点符号:[,|、|。|.];
假设业务测试用例文件中有文字描述“5.有语音、来电显示,订购国际 长途”,则依据上述五类词法正则表达式对该文字描述进行扫描获得的多个词 法类型为:
业务编号Num:{5}
业务操作Verb:[订购]
业务名称Noun:[语音|国际长途|来电显示]
业务前提Pre:[有]
标点符号Punc:[,|、|.]。
步骤S102、对业务测试用例文件进行语法分析,获得所述词语之间的对 应关系;
所述词语之间的对应关系至少包括编号关系、并列关系、前提关系、一 般关系和执行关系。
语法分析则是用来分析所有被归类的词语之间的对应关系,词语之间的 对应关系至少包括编号关系、并列关系、前提关系、一般关系和执行关系。 词语之间的对应关系定义如下:
编号关系:“业务编号Num”与其后面相连的语句成编号关系;
并列关系:两个“业务名称Noun”之间若有“标点符号Punc”中的“、”, 则成并列关系;
前提条件:以“业务前提Pre”开头、并以“标点符号Punc”中的“,” 结尾的语句,是其后面语句的成前提条件;
执行关系:“业务操作Verb”与其后相连的“业务名称Noun”成执行关 系;
一般关系:若词语间不满足以上四种关系,则为一般关系。
针对“5.有语音、来电显示,订购国际长途”,“5”与“有语音、来电显 示,订购国际长途”为编号关系;“语音”和“来电显示”为并列关系;“有 语音、来电显示,”是“订购国际长途”的前提条件;“订购”与“国际长途” 成执行关系;“5”与“.”为一般关系、“有”“、”为一般关系。
步骤S103、依据所述词语与所述对应关系生成控制数据流图,所述词语 为所述控制数据流图的节点,所述对应关系为所述控制数据流图的边;
依据步骤S101和S102的结果生成控制数据流图,控制数据流图包括节 点和边,控制数据流图={V,G},其中,节点V={Num,Verb,Noun,Pre,Punc}, 表示控制数据流图中所有节点的集合;G={编号关系,并列关系,前提条件, 一般条件,执行关系},表示控制数据流图中所有的边的集合,其中G为有向 边。如图2所示为“5.有语音、来电显示,订购国际长途”对应的控制数据 流图,其中,“单语句父节点”为控制数据流图中最上层的父节点,以“编号 关系”与两个子节点相连。
步骤S104、将所述控制数据流图转换为测试步骤及测试脚本。
依据深度优先遍历算法对所述控制数据流图的各节点和各个边进行遍历 获得所述测试步骤;对所述测试步骤进行语言类型转换获得所述测试脚本。
深度优先遍历算法具体如下:
将测试步骤文件命名为StepFile、测试脚本文件命名为ScriptFile,调 用函数TRANS(V)对每个节点V进行翻译,函数TRANS(V)的算法实现具体 如下:
其中执行关系涉及文本内容的转换,其转换主要包括两个环节:业务办 理及业务验证。业务办理根据执行关系的父节点及子节点进行转换,业务验 证需要读取业务约束关系表文件,确定办理业务前后对相关联业务的影响在 预期范围内。业务约束关系表用来描述业务间约束关系的表,如语音和来电 显示两类业务存在绑定的约束,则在进行语音业务后需要验证来电显示业务; 其伪代码步骤如下:
EXCECUTE(v)
OutFile.writeStep(验证未执行前的业务状态)
OutFile.writeStep(办理业务)
OutFile.writeStep(验证执行后的业务状态)
OutFile.writeStep(验证执行后对关联业务的影响)。
经过上述算法就得出了测试步骤文件StepFile和测试脚本文件 ScriptFile。
在本发明实施例的基础上,执行步骤S104将所述控制数据流图转换为测 试步骤及测试脚本的同时还生成业务执行对照表,业务执行对照表存储有控 制数据流图中具有执行关系的节点,以及节点之间的关系,具体如节点“订 购”与“国际长途”,以及两者之间的执行关系。
本发明实施例通过对业务测试用例文件进行词法分析和语法分析,并依 据词法分析和语法分析的结果生成控制数据流图,通过对控制数据流图的各 节点和各个边的遍历自动得出测试步骤及测试脚本,相对于测试人员手工生 成测试步骤及测试脚本,提高了业务测试效率。
图3为本发明另一实施例提供的测试步骤及测试脚本生成方法流程图。 在上述实施例的基础上,所述将所述控制数据流图转换为测试步骤及测试脚 本之后,还包括:修改所述测试步骤和/或所述测试脚本,并获得修改点;修 改所述控制数据流图中与所述修改点对应的节点;将修改后的控制数据流图 转换为新的测试步骤及测试脚本。图3所示的测试步骤及测试脚本生成方法 具体步骤如下:
步骤S301、获取业务测试用例文件;
步骤S302、对业务测试用例文件进行预编译;
步骤S303、对业务测试用例文件进行词法分析;
步骤S304、对业务测试用例文件进行语法分析;
步骤S301-S304与图1对应的实施例方法相同,此处不再赘述。
步骤S305、依据词法分析和语法分析的结果生成控制数据流图,或者依 据步骤S311和S312的修改结果生成修改后的控制数据流图;
步骤S306、依据控制数据流图生成测试步骤,或者依据修改后的控制数 据流图生成修改后的测试步骤;
步骤S307、依据控制数据流图生成测试脚本,或者依据修改后的控制数 据流图生成修改后的测试脚本;
步骤S308、用户修改测试脚本;
步骤S309、用户修改测试步骤;
步骤S310、通过文件比对获得修改点;
步骤S311、依据修改点修改业务执行对照表;
步骤S312、依据修改点修改业务约束关系表。
步骤S305-S312形成反馈操作步骤,依据词法分析和语法分析的结果生 成控制数据流图后,依据控制数据流图生成测试步骤和测试脚本,用户可以 对测试步骤和测试脚本进行修改,并将修改后的测试步骤和测试脚本和修改 之前的测试步骤和测试脚本分别进行文件对比,获得修改点,依据修改点在 “业务执行对照表”和“业务约束关系表”中找到该节点对应的信息,将其 替换为用户修改的值;依据修改后的“业务执行对照表”和“业务约束关系 表”重新生成控制数据流图,重新进行测试步骤及测试脚本的自动生成。其 中,业务执行对照表表明了哪些节点间可存在“执行关系”,如“订购”可 与“语音”成执行关系。
本发明实施例不限步骤S306和步骤S307的顺序、步骤S308和步骤S309 的顺序、步骤S311和步骤S312的顺序。
本发明实施例通过对生成的测试步骤、测试脚本进行修改,并确定出控 制数据流图中相应的修改点,将修改点上的内容统一进行修改,避免了手工 编写测试步骤时对业务验证点的错误编写以及疏漏。
图4为本发明实施例提供的测试步骤及测试脚本生成装置的结构图;本 发明实施例提供的测试步骤及测试脚本生成装置可以执行测试步骤及测试脚 本生成方法实施例提供的处理流程,如图4所示,测试步骤及测试脚本生成 装置40包括词法分析模块41、语法分析模块42、控制数据流图生成模块43 和转换模块44,其中,词法分析模块41用于对业务测试用例文件进行词法 分析获得多个词法类型,各词法类型至少包括一个词语;语法分析模块42用 于对业务测试用例文件进行语法分析,获得所述词语之间的对应关系;控制 数据流图生成模块43用于依据所述词语与所述对应关系生成控制数据流图, 所述词语为所述控制数据流图的节点,所述对应关系为所述控制数据流图的 边;转换模块44用于将所述控制数据流图转换为测试步骤及测试脚本。
本发明实施例通过对业务测试用例文件进行词法分析和语法分析,并依 据词法分析和语法分析的结果生成控制数据流图,通过对控制数据流图的各 节点和各个边的遍历自动得出测试步骤及测试脚本,相对于测试人员手工生 成测试步骤及测试脚本,提高了业务测试效率。
图5为本发明另一实施例提供的测试步骤及测试脚本生成装置的结构 图。在上述实施例的基础上,所述词法类型至少包括业务编号、业务操作、 业务名称、业务前提和标点符号。
所述词语之间的对应关系至少包括编号关系、并列关系、前提关系、一 般关系和执行关系。
所述转换模块44包括遍历单元441和语言类型转换单元442,所述遍历 单元441用于依据深度优先遍历算法对所述控制数据流图的各节点和各个边 进行遍历获得所述测试步骤;所述语言类型转换单元442用于对所述测试步 骤进行语言类型转换获得所述测试脚本。
测试步骤及测试脚本生成装置40还包括修改模块45,修改模块45用于 修改所述测试步骤和/或所述测试脚本,并获得修改点;修改所述控制数据流 图中与所述修改点对应的节点;所述转换模块44还用于将修改后的控制数据 流图转换为新的测试步骤及测试脚本。
本发明实施例提供的测试步骤及测试脚本生成装置可以具体用于执行上 述图1所提供的方法实施例,具体功能此处不再赘述。
本发明实施例通过对生成的测试步骤、测试脚本进行修改,并确定出控 制数据流图中相应的修改点,将修改点上的内容统一进行修改,避免了手工 编写测试步骤时对业务验证点的错误编写以及疏漏。
综上所述,本发明实施例通过对业务测试用例文件进行词法分析和语法 分析,并依据词法分析和语法分析的结果生成控制数据流图,通过对控制数 据流图的各节点和各个边的遍历自动得出测试步骤及测试脚本,相对于测试 人员手工生成测试步骤及测试脚本,提高了业务测试效率;通过对生成的测 试步骤、测试脚本进行修改,并确定出控制数据流图中相应的修改点,将修 改点上的内容统一进行修改,避免了手工编写测试步骤时对业务验证点的错 误编写以及疏漏。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法, 可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的, 例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外 的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或 一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或 直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连 接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作 为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方, 或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或 者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中, 也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单 元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件 功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机 可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指 令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等) 或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述 的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、 随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以 存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各 功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分 配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以 完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以 参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对 其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通 技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改, 或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并 不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
机译: 用于生成测试脚本的方法和装置,用于检查测试的方法,装置和系统
机译: AI驱动的自动测试脚本生成方法及装置
机译: 基于强化学习的测试脚本生成方法和装置