
本发明涉及软件测试的技术领域,更具体地说是指用于分离测试用例、测试脚本和测试数据的方法及其系统。
背景技术:
在软件测试时,要完成自动化测试流程过程中,则通常会采用数据驱动测试技术或者关键字驱动测试技术对测试用例、测试脚本以及测试数据进行分离,以加强测试脚本的可维护性。
其中,使用数据驱动测试技术的软件测试工程师会采用黑盒测试设计测试用例的方法,把所有可能的输入数据从无限集合简化成有限集合,运行在同一套测试用例上,从而找出软件错误。在实现自动化测试的过程中,把数据从测试脚本中分离出来,实现测试脚本的参数化,另外把测试的期待结果值跟测试输入数据一起存储在数据文件中,大幅度减少测试脚本的同时,加强了测试脚本的可维护性。而关键字驱动测试技术首先对测试内部对象名和界面元素名进行了分离,在录制脚本和被测试应用程序之间增加了一个抽象层,界面元素会被它映射成对应的逻辑对象,后者就是测试过程中操作的对象,界面元素的变化只需更新映射表,无需更新脚本;其次对具体实现细节和测试描述进行了分离,一般情况下,具体实现跟执行工具或者平台是密切相关的,测试描述只需描述软件的操作动作和期望结果,而无需关注具体实现,这种做法,对测试在不同的工具或者平台移植是很有帮助的;最后分离了脚本和数据,测试数据独立保存在外部,需要的时候再读取进来进行操作,无论是脚本还是数据的维护性都大大提高,归根到底,它的目的是把测试脚本的编程工作分离出去,让没有编程技巧的人也能开发自动化测试脚本。使用了关键字驱动测试技术的自动化系统,把检查点和执行操作的控制都维护在外部数据文件,可以让脚本的维护工作量减少,即使被测试应用程序发生了很大改变,测试脚本也只需要简单的更新和维护即可。
目前最常见的分离方法为QTP分离,采用关键字驱动的理念以简化测试用例的创建和维护,它让用户可以直接录制屏幕上的操作流程,自动生成功能测试或者回归测试用例,的测试者也可以通过提供的内置脚本和调试环境来取得对测试和对象属性的完全控制;但是其只能在Windows系统平台上使用,只适合以界面为主要交互方式的项目,对系统环境要求很高,未实现测试脚本和测试用例的分离,测试脚本维护工作量大,高昂的价格并不是所有企业都能承受的。还有另外一种方法是测试用例直接在脚本当中实现,先将测试用例分解为小执行单元,然后按功能进行组合和调用,但是这种方法得具备较高的编程能力,而大部分软件工程不具备软件开发的能力,或者对软件开发不感兴趣,未实现测试脚本和测试用例的分离,测试脚本维护工作量大,企业一般都会有手工测试用例和自动化测试用例两套测试用例,被测试应用程序稍有变化,手工软件测试工程师就得维护手工测试用例,而自动化软件测试工程师除了维护自动化测试用例外,还得花时间维护测试脚本。
忽略屏蔽、隐藏以及透明窗口相比于com组件编程,可编程性扩展虽然比不上com组件操作简单,但是由于可编程性扩展提供了底层的c语言编程接口,使得扩展编程拥有更高的运行效率和更稳定的执行能力,而且还使java等其他编程语言调用spss进行分析成为可能。这种不需要在对象库中存储对象的信息,就可以执行对象操作的方法,就是qtp中比较高级的用法:描述性编程(descrīptiveprogamming).描述性编程和传统的qtp脚本的区别是:他把需要识别的对象的属性从对象库中转移到了脚本里面,通过在脚本里面的特殊语法格式.来告诉qtp识别对象的方法.描述性编程更加灵活,因为他不需要经过录制这个步骤,可以直接通过编程的方式操作任何一个你想操作的对象,只要你在测试脚本代码里提供给qtp识别该对象的足够信息。除了掌握qtp的基本使用外,还应该掌握qtp的各项高级功能以及脚本设计能力,包括vbscript脚本语言、数据驱动测试、描述性编程等,这样才能摆脱工具的束缚,自由地编写自动化测试脚本实现复杂的测试功能。
技术实现要素:
本发明的目的在于克服现有技术的缺陷,提供用于分离测试用例、测试脚本和测试数据的方法及其系统。
为实现上述目的,本发明采用以下技术方案:用于分离测试用例、测试脚本和测试数据的方法,所述方法包括:
按照指定规则设计和编写测试用例;
对需要实现自动化测试的用例添加属性;
对需要调用的外部数据的位置加上指定的标识,作为测试数据;
根据所述测试用例和测试数据,运行测试脚本。
其进一步技术方案为:按照指定规则设计和编写测试用例的步骤,所述测试用例中包括操作内容以及期望结果。
其进一步技术方案为:对需要实现自动化测试的用例添加属性的步骤,所述属性包括操作关键字、定位技术、位置描述以及目标值。
其进一步技术方案为:对需要调用的外部数据的位置加上指定的标识,作为测试数据的步骤,具体是目标值的前缀增加调用外部数据的标识。
其进一步技术方案为:根据所述测试用例和测试数据,运行测试脚本的步骤,包括以下具体步骤:
运行测试脚本;

读取存储在外部文件的测试用例;
判断目标值字段是否存在调用外部数据的标识;
若目标值字段不存在调用外部数据的标识,则执行经过处理的测试用例,并进行最后一步骤;
若目标值字段存在调用外部数据的标识,则读取存储在外部文件的测试数据,并进行最后一步骤;
生成测试报告。
这种方式的测试系统通过tcl脚本的嵌入实现测试用例的脚本化,实现测试系统与测试用例的分离,在测试用例的扩展和重用方面有很大提升。根据不同的测试需要,脚本编写人员可以对at测试脚本库中的测试脚本进行增加、删除、修改的操作。loadrunner脚本编写教程 发布者:yqtyqd 时间:12-12 阅读数:1731 loadrunner生成脚本的方式有两种,一种是自己编写手动添加或嵌入源代码。
所述测试用例编写单元,用于按照指定规则设计和编写测试用例;
所述属性添加单元,用于对需要实现自动化测试的用例添加属性;
所述标识添加单元,用于对需要调用的外部数据的位置加上指定的标识,作为测试数据;
所述运行单元,用于根据所述测试用例和测试数据,运行测试脚本。
其进一步技术方案为:所述运行单元包括运行启动模块、用例读取模块、判断模块、执行模块、数据读取模块以及报告生成模块;
所述运行启动模块,用于运行测试脚本;
所述用例读取模块,用于读取存储在外部文件的测试用例;
所述判断模块,用于判断目标值字段是否存在调用外部数据的标识;
所述执行模块,用于若目标值字段不存在调用外部数据的标识,则执行经过处理的测试用例;
所述数据读取模块,用于若目标值字段存在调用外部数据的标识,则读取存储在外部文件的测试数据;
所述报告生成模块,用于生成测试报告。
quicktest 9,并使用执行典型业务流程的应用程序即可创建测试脚本,测试人员可以根据需要增加一些扩展功能,、oracle,qtp除了以vbscript脚本语言的方式生成脚本语句以外,以便在不需要编程的情况下处理数据集和创建多个测试迭代。分析家数据读取及转换组件是一个dll,它可以通过方便地在各种语言中直接调用而读取分析家数据,用户不需要了解分析家数据存储结构,不需要自己编写数据读取程序,只需要少量编程知识就可以获得所需数据并进行加工处理。分析家数据读取及转换组件是一个dll,它可以通过方便地在各种语言中直接调用而读取分析家数据,用户不需要了解分析家数据存储结构,不需要自己编写数据读取程序,只需要少量编程知识就可以获得所需数据并进行加工处理 。

下面结合附图和具体实施例对本发明作进一步描述。
附图说明
图1为本发明具体实施例提供的用于分离测试用例、测试脚本和测试数据的方法的流程图;
图2为本发明具体实施例提供的根据测试用例和测试数据运行测试脚本的具体流程图;
图3为本发明具体实施例提供的手工测试用例样例;
图4为本发明具体实施例提供的自动化测试用例样例;
图5为本发明具体实施例提供的测试数据样例;
图6为本发明具体实施例提供的用于分离测试用例、测试脚本和测试数据的系统的结构;
图7为本发明具体实施例提供的运行单元的结构。
具体实施方式
为了更充分理解本发明的技术内容,下面结合具体实施例对本发明的技术方案进一步介绍和说明,但不局限于此。
如图1~7所示的具体实施例,本实施例提供的用于分离测试用例、测试脚本和测试数据的方法,可以运用在软件测试的过程中,实现学习难度不高,实用性强,不考虑扩展性时无需编程技巧的软件测试工程师也能正常使用,符合当今软件企业的低成本以及高效率的要求。
如图1所示,为本实施例提供的用于分离测试用例、测试脚本和测试数据的方法,该方法包括:
S1、按照指定规则设计和编写测试用例;
S2、对需要实现自动化测试的用例添加属性;
S3、对需要调用的外部数据的位置加上指定的标识,作为测试数据;
S4、根据所述测试用例和测试数据,运行测试脚本。
上述的S1步骤,按照指定规则设计和编写测试用例的步骤,上述的测试用例中包括操作内容以及期望结果,使得每一步的操作顺序、操作内容和期望结果一目了然。

在本实施例中,采用Excl进行设计和编写测试用例,另外,于其他实施例,上述的测试用例和测试数据可根据实际需要采用其它编写工具,如金山表格、和记事本等。
对于上述的S2步骤,对需要实现自动化测试的用例添加属性的步骤,上述的属性包括操作关键字、定位技术、位置描述以及目标值;此过程软件测试工程师无需具备编程能力,也不用考虑自动化的具体实现,只需懂得Xpath元素定位技术即可,其是基于XML的树状结构,通过元素的属性或者相对位置等在数据结构树中来查找对应节点的,Xpath拥有很多内建函数,超过100个,可用于数值、字符串值、日期和时间的对比、序列的处理、Qname和节点的处理、逻辑值等等,用户可以根据自己的实际需要调用,由图3的“位置描述”列可以看出来,它的路径表达式与常规电脑文件系统中所采用路径表达式差不多,便于理解和学习。
当然,于其他实施例,可以通过元素的id、name、class等属性进行定位,或者采用CSS的Selector来对元素进行定位。
对于上述的S3步骤,对需要调用的外部数据的位置加上指定的标识,作为测试数据的步骤,具体是目标值的前缀增加调用外部数据的标识,如图3中目标值列的$account、$password和$extension这三个以“$”为前缀的字符串就是调用外部数据的标识,当测试脚本读取到这个标识时就会自行找到外部对应的数据文件读取测试数据。
利用qtp先进的对象识别、鼠标和键盘监控机制来录制测试脚本,测试人员只需要模拟用户的操作,像执行手工测试的测试步骤一样操作被测试应用程序的界面即可。设置完后,结果如图,qtp在运行测试脚本时,就会读取测试步骤绑定的环境变量值,来执行相应的数据输入动作。从hdtune pro的随机测试中可以看到512bytes和4kb的数据在第二次测试开始就是从闪存中读取了输入关键字 测试用例,较大的64kb和1mb数据则是第三次测试时开始从闪存中读取,随机大小数据包则是第五次才完全从闪存中读取,可以看得出小型的数据是会优先进入nand闪存的,较大的数据优先顺序较低。
另外,对于S4步骤,根据所述测试用例和测试数据,运行测试脚本,测试脚本把从测试用例和测试数据读取过来的信息整合起来,然后生成一条条执行指令,最后按照步骤有序地执行并生成测试报告。
更进一步的,上述的S4步骤,根据所述测试用例和测试数据输入关键字 测试用例,运行测试脚本的步骤,包括以下具体步骤:
S41、运行测试脚本;
S42、读取存储在外部文件的测试用例;
S43、判断目标值字段是否存在调用外部数据的标识;
S44、若目标值字段不存在调用外部数据的标识,则执行经过处理的测试用例,并进行最后一步骤;
S45、若目标值字段存在调用外部数据的标识,则读取存储在外部文件的测试数据,并进行最后一步骤;
S46、生成测试报告。
上述的S41至S46步骤,实现测试脚本处理测试用例和测试数据。
上述的用于分离测试用例、测试脚本和测试数据的方法,通过分别建立测试用例以及测试数据,在测试用例上通过标识来引用测试数据,测试脚本分别读取和处理测试用例和测试脚本后,完成自动化测试流程,实现测试用例,测试脚本和测试数据三者相互分离的目标,实现学习难度不高,实用性强,不考虑扩展性时无需编程技巧的软件测试工程师也能正常使用,符合当今软件企业的低成本以及高效率的要求。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-105891-1.html
驻日美军和周边美军不会在旁看热闹
爱卿
越南就是这种人