一种基于数据驱动的测试脚本繁殖方法

文档序号:6481548阅读:160来源:国知局
专利名称:一种基于数据驱动的测试脚本繁殖方法
技术领域
本发明涉及全流程自动化测试研究技术领域,用于数据驱动测试,又称黑盒测试或 功能测试,测试软件产品的功能,不需测试软件产品的内部结构和处理过程;该测试过 程分为自动生成测试用例、批量运行测试脚本、版本控制和Bug跟踪,本发明具体为 一种基于数据驱动的测试脚本繁殖方法。
背景技术
软件测试是软件开发中的非常重要的环节,当今软件行业中软件测试的比重也是越 来越大。软件测试工作做的是否到位直接影响到了软件的最终交付质量,-一个好的软件 测试过程会对项目的成功与否起到决定性的作用。自动化的软件测试能够有效地降低测 试的工作量、提高测试的工作效率;虽然目甜fi动化的软件测试工具无法完全取代手工 测试,开发新的高效的近似全自动化的测试工具仍然具有广阔的应用前景和积极意义。
现今,这样的自动化测试工具有单元测试工具、功能测试工具、性能测试工具、回 归测试工具等多种,有包括商业的和开源的。这些测试工具都有相当强大的功能,原理 也不尽相同,从脚本录制到添加机制后回放脚本、最终报告分析都做的相当到位,但是, 对于其数据驱动的实现,还有相当多可以改进的地方。
在测试实践过程中有儿款商用测试工具用的是比较多的,当然也有相当多的企业或 者项目开发团队自己构建自己的测试工具。首先简要介绍一下功能相似、特点有所区别 的四种商用测试工具。业界最常使用的测试工具有QTP、 RationalRobot、 SilkTest、 TestComplete,这里仅以此四种可作为功能测试使用的测试工具进行分析。上述提到的 这四种工具均已实现数据驱动,即通过测试用例数据将一些测试元素进行参数化。然而, 参数化的过程中,对用例数据的组合往往考虑的不够全面,也就是未使用更好的方法, 使得各个测试元素之间的组合与约束关系也能考虑其中。
对于M个测试对象,给其赋予N个基本测试用例,在全组合的情况下,在测试用 例集中应当包括M*N条测试用例;而当实现两个因素或者三个因素之间的组合的时候, 将生成更少但是性能上并不比前者差的测试用例集,这样对测试的效率上会有显著的提
咼o
使用更少的测试用例个数,具有相同的测试效果,当然是非常愿意看到的事情。因此,可以采用对给定的测试用例集加入各个测试对象之间的组合与约束,达到比现有商 业测试工具更好的测试效果,从而减少测试工作量,降低测试成本。假设多一条测试用 例,那就意味着要多运行一次应用程序,对于大型一点的应用程序来说,其开销是相当 大的,更何况考虑到脚本运行之后的结果分析所需的开销,可见,采取一定程度上更为 优化的数据驱动方法会使测试效率有定量的提升。

发明内容
本发明所要解决的技术问题是针对现有自动化测试工具数据驱动不完善的问题, 提供一种基于数据驱动的测试脚本繁殖方法,对测试工具录制后的脚本进行剖析编码并 生成优化的测试用例集,以提高自动化测试的性能。
本发明的技术方案为 一种基于数据驱动的测试脚本繁殖方法,获取自动化测试工 具录制的原脚本,对其进行剖析,得到录制的原脚本中的对象元素,然后采用以下方法 产生新的测试数据A、对需要进行数据驱动的对象元素人工输入新的测试数据;B、 根据指定数据组合和约束要求自动产生新的测试数据;C、通过边界和等价划分手段自 动产生新的测试数据;根据新的测试数据按照初始的原脚本基本流程产生一批新的测试 脚本,最后,通过对新的测试脚本文件的配置信息进行变更,生成自动化测试工具能够 识别的批量脚本,然后将批量脚本直接导入自动化测试工具即可完成测试过程。
具体包括以下歩骤
1) 、原脚本导入阶段
1.1) 、对导入的自动化测试工具录制的脚本提取对象元素;
1.2) 、选取特定对象添加用例数据,用户根据自己希望参数化的对象进行选择,输 入用例数据,特定对象即为用户希望参数化的对象,所述用例是无需用户进行组合 的;
1.3) 、结束;
2) 新的测试脚本生成阶段
2.1) 添加组合与约束生成测试数据集;
2.2) 脚本生成器生成新的测试脚本;
2.3) 结束;
3) 新的测试脚本导出阶段
3.1)导出新的测试脚本至自动化测试工具;3.2) 通过自动化测试工具批量执行;
3.3) 结束。
其中,步骤l.l)中,对原脚本进行过滤后提取对象元素,所述过滤为对原脚本中涉及 的用户脏操作进行识别过滤,原脚本可以是多种测试工具生成的脚本,具体为导入脚 本一识别脚本类型一过滤脚本一提取对象元素一呈现对象。所谓脏操作,就是一些录制 过程中的多余操作,如先后两次点击同一个文本框而事实上仅需要一次即可。虽然可能 用户录制完脚本后会对其进行一些合理的修改,但仍不免会有遗漏需要本发明进行过滤 改进的地方。而且,对于脚本,本发明可以做到针对多种测试工具生成的脚本进行识别, 如quick test professional(QTP)、 rational function tester(RFT)、 RationalRobot。通过录制 大量的脚本,构建脚本库,对其进行剖析,得出共性。首先通过观察脚本的特征现判断 其是何种脚本;根据分层的树状结构获取和表示对象信息。
歩骤2.1)所述的添加组合与约束生成测试用例集是依据数学方法,根据用户的 需求生成带有组合和约束的测试用例集,组合是指同一组中的对象在生成测试用例的时 候,通过数学算法使测试用例个数尽可能少且尽可能高效,所述数学算法包括2-因素组 合和3因素组合方式;约束是指对象之间是一一对应的关系。
歩骤2.2)所述的脚本生成器生成脚本歩骤如下
2.2.1) 通过内建函数将生成的包含新的测试数据的测试用例集文件导入自动化测试 工具的数据池;
2.2.2) 加入逻辑关系对原测试脚本进行硬编码,将原脚本中原先赋值的地方用读取 数据池操作进行代替;
2.2.3) 加入与自动化测试工具对应的配置信息代码;
2.2.4) 完成整个可执行脚本。
歩骤3.1)所述的导出新的测试脚本至自动化测试工具为将歩骤2)生成的新的测试 脚本手工导回到生成该原脚本的自动化测试工具进行脚本的批量执行, 一份处理加上多
份数据即为批量执行。由于通过对脚本进行繁殖后生成的脚本文件未必是自动化测试工 具直接可以识别导入的,因此,在生成批量的脚本时,本发明对脚本文件进行了配置, 使得测试工具可以识别,最终实现将脚本导入完成测试过程。
本发明的脚本繁殖生成环节可以和自动化测试工具的录制环节分离,也可以将本发 明作为一个插件,嵌入到自动化测试工具的引擎中,使得测试脚本的生成和录制融为一 体。本发明的有益效果本发明基于数据驱动的测试脚本繁殖方法在业务逻辑处理并不 是非常复杂的前提下,对于数据处理占更大比重的软件来说,对测试工具录制的脚本进 行剖析、编码,通过数学算法提高了测试用例集的性能,简化了手工测试操作流程,使 得大量的手工测试可以化繁为简,从而提高了测试工作的效率, 一定程度上向自动化测 试又更迈进了一歩。


图l为本发明的流程示意图。
具体实施例方式
本发明的基于数据驱动的测试脚本繁殖方法,可以应用到软件自动化测试的过程之 中。对于-一个需要测试的软件,在测试业务流程与测试用例定义好之后,通过本发明可 以使得测试用例的性能得到提升,也可以提高测试的效率,甚至可以对测试结果的搜集 与分析都有益处。
如图l,为本发明的流程示意图,包括以下歩骤
1) 、原脚本导入阶段
1.1) 、对导入的自动化测试工具录制的原脚本提取对象元素;
1.2) 、选取特定对象添加用例数据,用户根据自己希望参数化的对象进行选择,输 入用例数据,特定对象即为用户希望参数化的对象,所述用例是无需用户进行组合 的;
1.3) 、结束;
2) 新的测试脚本生成阶段
2.1) 添加组合与约束生成测试数据集;
2.2) 脚本生成器生成新的测试脚本;
2.3) 结束;
3) 新的测试脚本导出阶段
3.1) 导出新的测试脚本至自动化测试工具;
3.2) 通过自动化测试工具批量执行;
3.3) 结束。
其中,歩骤l.l)中,对原脚本进行过滤后提取对象元素,所述过滤为对原脚本中涉及的用户脏操作进行识别过滤,原脚本可以是多种测试工具生成的脚本,具体为导 入脚本一识别脚本类型一过滤脚本一提取对象元素一呈现对象
歩骤2.1)所述的添加组合与约束生成测试用例集是依据数学方法,根据用户的 需求生成带有组合和约束的测试用例集,组合是指同一组中的对象在生成测试用例的时 候,通过数学算法使测试用例个数尽可能少且尽可能高效,所述数学算法包括2-因素组 合和3因素组合方式;约束是指对象之间是一一对应的关系。
歩骤2.2)所述的脚本生成器生成脚本歩骤如下
2.2.1) 通过内建函数将生成的包含新的测试数据的测试用例集文件导入自动化测试 工具的数据池;
2.2.2) 加入逻辑关系对原测试脚本进行硬编码,将原脚本中原先赋值的地方用读取 数据池操作进行代替;
2.2.3) 加入与自动化测试工具对应的配置信息代码;
2.2.4) 完成整个可执行脚本。
歩骤3.1)所述的导出新的测试脚本至自动化测试工具为将歩骤2)生成的新的测试 脚本手工导回到生成该原脚本的自动化测试工具进行脚本的批量执行, 一份处理加上多
份数据即为批量执行。由于通过对脚本进行繁殖后生成的脚本文件未必是自动化测试工 具直接可以识别导入的,因此,在生成批量的脚本时,本发明对脚本文件进行了配置, 使得测试工具可以识别,最终实现将脚本导入完成测试过程。
对于业务逻辑相当复杂的软件来说,流程的控制比对数据的要求更高,因此本发明 不是针对这一类软件的。但是,在业务逻辑处理并不是非常复杂的前提下,对于数据处 理占更大比重的软件来说,本发明的效果就较为显著。
在使用过程中,本发明通过获取自动化测试工具录制的原脚本,对其进行剖析,得 到原脚本中的对象元素,可以让用户对需要进行数据驱动的对象元素输入测试用例,也 可以让用户加入对测试用例在组合与约束上的要求。随之,工具会对修改的脚本进行编 码,使特定的数据进行泛化,使对象元素可以从满足用户要求且性能更好的测试用例集 中读取用例数据。最后,通过对新的测试脚本文件的配置信息进行变更可以生成测试工 具能够识别的批量脚本,然后将批量脚本直接导入测试工具即可完成测试过程。这一过 程中,不仅提高了测试用例集的性能,而且简化了手工测试操作流程,从而提高了测试 工作的效率, 一定程度上向自动化测试又更迈进了一歩。
权利要求
1、一种基于数据驱动的测试脚本繁殖方法,其特征是获取自动化测试工具录制的原脚本,对其进行剖析,得到录制的原脚本中的对象元素,然后采用以下方法产生新的测试数据A、对需要进行数据驱动的对象元素人工输入新的测试数据;B、根据指定数据组合和约束要求自动产生新的测试数据;C、通过边界和等价划分手段自动产生新的测试数据;根据新的测试数据按照初始的原脚本基本流程产生一批新的测试脚本,最后,通过对新的测试脚本文件的配置信息进行变更,生成自动化测试工具能够识别的批量脚本,然后将批量脚本直接导入自动化测试工具即可完成测试过程。
2、 根据权利要求1所述的一种基于数据驱动的测试脚本繁殖方法,其特征是具体 包括以下歩骤1) 、原脚本导入阶段1.1) 、对导入的自动化测试工具录制的原脚本提取对象元素;1.2) 、选取特定对象添加用例数据,用户根据自己希望参数化的对象进行选择,输 入用例数据,特定对象即为用户希望参数化的对象,所述用例是无需用户进行组合 的;1.3) 、结束;2) 新的测试脚本生成阶段2.1 )添加组合与约束生成测试数据集;2.2) 脚本生成器生成新的测试脚本;2.3) 结束;3) 新的测试脚本导出阶段3.1 )导出新的测试脚本至自动化测试工具;3.2) 通过自动化测试工具批量执行;3.3) 结束。
3、 根据权利要求2所述的一种基于数据驱动的测试脚本繁殖方法,其特征是歩骤1.1) 中,对原脚本进行过滤后提取对象元素,所述过滤为对原脚本中涉及的用户脏操作进行 识别过滤,原脚本可以是多种测试工具生成的脚本,具体为导入脚本一识别脚本类型一过滤脚本一提取对象元素一呈现对象。
4、 根据权利要求2或3所述的一种基于数据驱动的测试脚本繁殖方法,其特征是 歩骤2.1)所述的添加组合与约束生成测试用例集是依据数学方法,根据用户的需求生成带有组合和约束的测试用例集,组合是指同一组中的对象在生成测试用例的时候,通过数学算法使测试用例个数尽可能少且尽可能高效,所述数学算法包括2-因素组合和 3因素组合方式;约束是指对象之间是一一对应的关系。
5、 根据权利要求2或3所述的一种基于数据驱动的测试脚本繁殖方法,其特征是 歩骤2.2)所述的脚本生成器生成脚本歩骤如下2.2.1) 通过内建函数将生成的包含新的测试数据的测试用例集文件导入自动化测试 工具的数据池;2.2.2) 加入逻辑关系对原测试脚本进行硬编码,将原脚本中原先赋值的地方用读取 数据池操作进行代替;2.2.3) 加入与自动化测试工具对应的配置信息代码;2.2.4) 完成整个可执行脚本。
6、 根据权利要求3所述的一种基于数据驱动的测试脚本繁殆方法,其特征是歩骤 2.2)所述的脚本生成器生成脚本歩骤如下2.2.1) 通过内建函数将生成的包含新的测试数据的测试用例集文件导入自动化测试 工具的数据池;2.2.2) 加入逻辑关系对原测试脚本进行硬编码,将原脚本中原先赋值的地方用读取 数据池操作进行代替;2.2.3) 加入与自动化测试工具对应的配置信息代码;2.2.4) 完成整个可执行脚本。
7、 根据权利要求2或3所述的一种基于数据驱动的测试脚本繁殖方法,其特征是歩 骤3.1)所述的导出新的测试脚本至自动化测试工具为将歩骤2)生成的新的测试脚本 手工导回到生成该原脚本的自动化测试工具进行脚本的批量执行。
8、 根据权利要求4所述的一种基于数据驱动的测试脚本繁殖方法,其特征是歩骤3.1) 所述的导出新的测试脚本至自动化测试工具为将歩骤2)生成的新的测试脚本手工导 回到生成该原脚本的自动化测试工具进行脚本的批量执行。
9、 根据权利要求5所述的一种基于数据驱动的测试脚本繁殖方法,其特征是歩骤3.1) 所述的导出新的测试脚本至自动化测试工具为将歩骤2)生成的新的测试脚本手工导 回到生成该原脚本的自动化测试工具进行脚本的批量执行。
10、 根据权利要求6所述的一种基于数据驱动的测试脚本繁殖方法,其特征是歩骤 3.1)所述的导出新的测试脚本至自动化测试工具为将歩骤2)生成的新的测试脚本手 工导回到生成该原脚本的自动化测试工具进行脚本的批量执行。
全文摘要
一种基于数据驱动的测试脚本繁殖方法,获取自动化测试工具录制的原脚本,对其进行剖析,得到录制的原脚本中的对象元素,然后产生新的测试数据,根据新的测试数据按原脚本基本流程产生一批新的测试脚本,最后生成自动化测试工具能够识别的批量脚本,然后将批量脚本直接导入自动化测试工具即可完成测试过程。本发明基于数据驱动的测试脚本繁殖方法在业务逻辑处理并不是非常复杂的前提下,对于数据处理占更大比重的软件来说,对测试工具录制的脚本进行剖析、编码,通过数学算法提高了测试用例集的性能,简化了手工测试操作流程,使得大量的手工测试可以化繁为简,从而提高了测试工作的效率,一定程度上向自动化测试又更迈进了一步。
文档编号G06F11/36GK101526917SQ20091002639
公开日2009年9月9日 申请日期2009年4月22日 优先权日2009年4月22日
发明者张瑾玉, 健 杨, 陈振宇 申请人:南京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1