CN102135938A - 一种软件产品测试方法及系统 - Google Patents
一种软件产品测试方法及系统 Download PDFInfo
- Publication number
- CN102135938A CN102135938A CN2011100677032A CN201110067703A CN102135938A CN 102135938 A CN102135938 A CN 102135938A CN 2011100677032 A CN2011100677032 A CN 2011100677032A CN 201110067703 A CN201110067703 A CN 201110067703A CN 102135938 A CN102135938 A CN 102135938A
- Authority
- CN
- China
- Prior art keywords
- key word
- case
- test
- atomic
- execution
- 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.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种软件产品测试方法及系统,该系统包括:案例构建装置和测试执行装置;案例构建装置包括:源脚本读取单元,测试对象获取单元,动作及数据获取单元,原子步骤构建单元,关键字步骤构建单元,关键字案例构建单元,用于对关键字步骤进行选取,按照选取顺序将被选取的关键字步骤构建成关键字案例,并将关键字案例进行存储;测试执行装置包括:执行指令接收单元,执行序列获取单元,执行序列输出单元,将原子步骤执行序列传给外部自动化测试工具进行测试执行;执行结果展示单元,用于展示测试执行结果。以解决自动化测试工具在使用中的复用性低、通用性差、脚本维护成本高以及脚本开发难度大等问题。
Description
技术领域
本发明关于计算机软件测试技术,特别是关于使用软件自动化测试工具的软件测试技术,具体地讲是一种软件产品测试方法及系统。
背景技术
传统的软件测试基本上都是使用自动化测试工具来实施的。当自动化测试工具录制脚本时,会用Java或者其他脚本语言(TSL:Test Script Language)生成一个测试脚本。该测试脚本中记录了所有在录制期间在被测试应用对象上执行的所有操作。例如,点击一个按钮、选择一个列表中的某一项、向一个文本框内输入数据等等。
自动化测试工具在录制生成测试脚本的同时也会自动生成与测试脚本一一对应的,记录其测试对象识别属性相关信息的配置文件(如自动化测试工具IBM Rational Functional Tester的测试对象图文件:*.rftxmap等),这些配置文件记录测试脚本中所有测试对象的识别属性(为在脚本回放时,自动化测试工具识别测试对象提供的配置参数信息)。然后由自动化测试工具读取测试脚本、测试对象识别属性配置文件等脚本资源,通过回放该脚本来实现自动重复之前操作的过程。
然而传统的基于录制回放的自动化测试方法存在以下弊端:(一)自动化测试脚本的耦合度高、复用性和通用性差。通过工具录制生成的自动化测试脚本,脚本不能拆分、不能被其他脚本引用。一旦软件系统的步骤、流程发生变化,将会导致脚本无法运行使用,通常需要重新制作脚本。同时,由于通过工具录制生成的自动化测试脚本由于不能进行分割后单独使用,所以无法提供给新录制的脚本进行使用。对于一些重复性很高的软件测试操作,每次都需要重头开始制作脚本,造成资源极大的浪费。(二)自动化测试脚本冗长而复杂、维护成本高。传统的自动化测试脚本通常将整个流程的操作都记录在一个脚本中,开发和维护自动化测试脚本的复杂程度高、工作量大,不利于自动化测试工具使用和推广。
发明内容
本发明实施例提供了一种软件产品测试方法及系统,以解决自动化测试工具在使用中的复用性低、通用性差、脚本维护成本高以及脚本开发难度大等问题。
本发明的目的之一是,提供一种软件产品测试方法,该方法包括:案例构建步骤和测试执行步骤;案例构建步骤包括:读取外部自动化测试工具传来的测试脚本文件和测试对象配置文件;从测试对象配置文件中抽取出所有测试对象的对象名称、识别属性和对象类型;从测试脚本文件中分别抽取出对象动作和对应的测试数据,并将测试数据转换为参数变量;将每个测试对象的一次独立操作以“对象名称.对象动作(参数变量)”的格式构建成一个原子步骤,并将原子步骤和参数变量对应的实际数据值进行存储;对原子步骤进行选取,按照选取顺序将被选取的原子步骤构建成关键字步骤,并将关键字步骤进行存储;对关键字步骤进行选取,按照选取顺序将被选取的关键字步骤构建成关键字案例,并将关键字案例进行存储;测试执行步骤包括:接收用户输入的包含关键字案例名称或字符串的案例执行指令;根据案例执行指令,按照关键字案例、关键字步骤和原子步骤的查询顺序获取对应的原子步骤,组成原子步骤执行序列;将原子步骤执行序列传给外部自动化测试工具进行测试执行;展示测试执行结果。
本发明的目的之一是,提供一种软件产品测试系统,该系统包括:案例构建装置和测试执行装置;案例构建装置包括:源脚本读取单元,用于读取外部自动化测试工具传来的测试脚本文件和测试对象配置文件;测试对象获取单元,用于从测试对象配置文件中抽取出所有测试对象的对象名称、识别属性和对象类型;动作及数据获取单元,用于从测试脚本文件中分别抽取出对象动作和对应的测试数据,并将测试数据转换为参数变量;原子步骤构建单元,用于将每个测试对象的一次独立操作以“对象名称.对象动作(参数变量)”的格式构建成一个原子步骤,并将原子步骤和参数变量对应的实际数据值进行存储;关键字步骤构建单元,用于对原子步骤进行选取,按照选取顺序将被选取的原子步骤构建成关键字步骤,并将关键字步骤进行存储;关键字案例构建单元,用于对关键字步骤进行选取,按照选取顺序将被选取的关键字步骤构建成关键字案例,并将关键字案例进行存储;测试执行装置包括:执行指令接收单元,用于接收用户输入的包含关键字案例名称或字符串的案例执行指令;执行序列获取单元,用于根据案例执行指令,按照关键字案例、关键字步骤和原子步骤的查询顺序获取对应的原子步骤,组成原子步骤执行序列;执行序列输出单元,将原子步骤执行序列传给外部自动化测试工具进行测试执行;执行结果展示单元,用于展示测试执行结果。
本发明的有益效果在于:克服了传统自动化测试在进行回归测试过程中复用性低、通用性差、脚本制作复杂的问题。对已经执行过一次的测试案例,不需要重新构建,只需要通过选取原子步骤、关键字步骤或者关键字案例,快速组合构建出新的原子步骤执行序列,传递给自动化测试工具执行即可;即使没有执行过的测试案例,只需构建一次关键字案例便可以被重复利用。
本发明实施例通过定义出原子步骤的规则,将测试脚本划分为粒度最细的原子步骤,原子步骤可以构建成关键字步骤,关键字步骤可以进一步构建成粒度更大的关键字案例。测试人员可以结合实际测试需求,像搭积木一样任意构建成自动化测试案例。本发明实施例通过将原子步骤构建为关键字步骤,大大提高了自动化测试案例的复用性和通用性,降低了开发、维护脚本的难度,减少了自动化测试的成本。
本发明实施例通过共享和调用关键字案例、关键字步骤和原子步骤,加快了自动化测试案例开发的速度,有效激发团队协作、共同开发的能力。极大地提高了测试效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例软件产品测试系统的结构框图;
图2为本发明实施例的案例构建装置的结构框图;
图3为本发明实施例的测试执行装置的结构框图;
图4为本发明实施例的数据存储装置的结构框图;
图5为本发明实施例软件产品测试系统的工作流程图;
图6为本发明实施例软件产品测试方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例的软件产品测试系统包括:测试服务器100、测试终端200和自动化测试工具300。测试服务器100包括:案例构建装置101、测试执行装置102和数据存储装置103。
如图2所示,案例构建装置101包括:源脚本读取单元1011,用于读取外部自动化测试工具传来的测试脚本文件和测试对象配置文件;测试对象获取单元1012,用于从测试对象配置文件中抽取出所有测试对象的对象名称、识别属性和对象类型;动作及数据获取单元1013,用于从测试脚本文件中分别抽取出对象动作和对应的测试数据,并将测试数据转换为参数变量;原子步骤构建单元1014,用于将每个测试对象的一次独立操作以“对象名称.对象动作(参数变量)”的格式构建成一个原子步骤,并将原子步骤和参数变量对应的实际数据值进行存储;关键字步骤构建单元1015,用于对原子步骤进行选取,按照选取顺序将被选取的原子步骤构建成关键字步骤,并将关键字步骤进行存储;关键字案例构建单元1016,用于对关键字步骤进行选取,按照选取顺序将被选取的关键字步骤构建成关键字案例,并将关键字案例进行存储。
如图3所示,测试执行装置102包括:执行指令接收单元1021,用于接收用户输入的包含关键字案例名称或字符串的案例执行指令;执行序列获取单元1022,用于根据案例执行指令,按照关键字案例、关键字步骤和原子步骤的查询顺序获取对应的原子步骤,组成原子步骤执行序列;执行序列输出单元1023,将原子步骤执行序列传给外部自动化测试工具进行测试执行;执行结果展示单元1024,用于展示测试执行结果。
如图4所示,数据存储装置103包括:原子步骤存储单元1031,用于存储原子步骤信息;关键字步骤存储单元1032,用于存储关键字步骤信息;关键字案例存储单元1033,用于存储关键字案例信息。参数数据存储单元1034,用于存储参数变量和对应的实际数据;指令案例关系存储单元1035,用于存储案例执行指令与关键字案例的对应关系。
在图1中,自动化测试工具300除了录制回放功能外,通常都提供了一些API接口,比如:“对象查找API接口”:通过接受传入的“测试对象识别属性”实现在被测试系统界面上查找相应测试对象的功能;“对象操作API接口”:通过接受传入的“测试对象”、“行为”、“数据”实现对相应测试对象进行相关操作(如:点击、选择等)。
如图5所示,本发明实施例的软件产品测试系统的工作流程包括:
步骤a1、自动化测试工具生成测试脚本文件和测试对象配置文件。
步骤a2、测试服务器读取测试脚本文件和测试对象配置文件。
步骤a3、测试服务器从测试对象配置文件中抽取出所有测试对象的对象名称、识别属性和对象类型。
步骤a4和a5、测试服务器从测试脚本文件中分别抽取出对象动作和对应的测试数据,并将测试数据转换为参数变量。
步骤a6和a7、测试服务器将每个测试对象的一次独立操作以“对象名称.对象动作(参数变量)”的格式构建成一个原子步骤,并将原子步骤存储到原子步骤数据库,将参数变量和对应的实际数据值存储到参数变量数据库。
步骤a8-a11、测试服务器对原子步骤进行选取,按照选取顺序将被选取的原子步骤构建成关键字步骤,并将关键字步骤存储到关键字步骤数据库。
步骤a12-a17、测试服务器对所述的关键字步骤进行选取,按照选取顺序将被选取的关键字步骤构建成关键字案例,并将关键字案例存储到关键字案例数据库。
步骤b1、用户向测试终端输入包含关键字案例名称或字符串的案例执行指令。
步骤b2、测试服务器根据案例执行指令,按照关键字案例、关键字步骤和原子步骤的查询顺序获取对应的原子步骤,组成原子步骤执行序列。
步骤b3和b4、将原子步骤执行序列传给外部自动化测试工具进行测试执行。其中;将测试对象识别属性传送给对象查找API接口,将测试对象和原子步骤执行序列中的“动作”、“数据值”传送给对象操作API接口。
步骤b5和b6、测试服务器生成测试执行结果,由测试终端展示该测试执行结果。
本发明实施例的软件产品测试系统的工作流程还包括:建立案例执行指令与关键字案例的对应关系,并将案例执行指令与关键字案例的对应关系存入指令案例关系库。
在图5中,本发明实施例的软件产品测试系统定义出统一标准的原子步骤,原子步骤可以构建为关键字步骤,关键字步骤又进一步可以构建成关键字案例,并存储到数据存储装置103中。如果被测对象发生变化,本发明实施例的软件产品测试系统通过测试终端200输入的指令,选取原子步骤、关键字步骤或者关键字案例,快速组合构建出新的原子步骤执行序列,传递给自动化测试工具300相应的API接口。将此原子步骤执行序列中各测试对象的“测试对象识别属性”传递给“对象查找API接口”,实现相应对象的查找功能,再将“对象查找API接口”查找到的“测试对象”以及“行为”、“数据”传递给“对象操作API接口”,实现对相应对象进行操作的功能。从而最终实现回放功能。对于已经执行过一次的测试案例,只需传入测试数据就可以反复去执行。对数据存储装置103中没有的案例,也只需构建一次。这样在测试过程中可以节省大量时间、提高了工作效率。
本发明实施例系统主要实现一种基于对操作步骤进行构建的自动化测试方法。原子步骤作为粒度最细的组件,是构建自动化测试案例最小单元。原子步骤只包含一个测试行为,并且相互之间独立,不从属于任何脚本。由一个或多个原子步骤构建成关键字步骤,一个或多个关键字步骤进一步构建成粒度更大的关键字案例。
所有的原子步骤存入原子步骤存储单元;关键字步骤存入关键字步骤存储单元、关键字案例存入关键字案例存储单元。在自动化测试执行时,通过用户向本发明实施例系统输入指令,本发明实施例系统根据指令自动获取相应的关键字案例进行执行,也可以由用户通过本发明实施例系统提供的选择界面手动构建关键字案例后进行执行。
本发明实施例系统的数据存储装置的原子步骤存储单元,用于存储各被测试的软件系统的对象信息,该信息至少包含原子步骤编号、对象名称、对象动作、对象类型、识别属性、参数变量名、参数编号,其数据存储的格式如表1所示:
表1
在表1中:对象名称指被测试系统界面中的各可操作控件元素的名称,如输入日期的域,输入金额的域、选择业务种类的下拉框等等。这些操作控件元将是需要进行自动化测试的对象。识别属性指测试对象的可识别属性,通过该识别属性可用在被测试对象界面中找到该测试对象,如测试对象的name属性。
本发明实施例系统的数据存储装置的关键字步骤存储单元,用于存储各关键字步骤的信息,该信息至少包含关键字步骤编号、关键字步骤名称、原子步骤编号、参数编号,其数据存储的格式如表2所示:
表2
本发明实施例系统的数据存储装置的关键字案例存储单元,用于存储各关键字案例的信息,该信息至少包含关键字案例编号、关键字案例名称、搜索案例匹配字符、关键字步骤编号、参数编号。其数据存储的格式如表3所示:
表3
在表3中,搜索案例匹配字符指搜索关键字案例存储单元时的搜索关键字。比如关键字案例“查询客户信息”包含3个搜索案例匹配字符:“客户信息”,“查询”,“查询客户信息”,在用户输入指令后,本装置用指令分别与这3个“搜索案例匹配字符”逐一进行匹配。只要匹配上其中任意一个,就认为是指令匹配上了这条记录。本发明实施例系统的数据存储装置的参数数据存储单元,用于存储各参数数据的信息,该信息至少包含参数编号、参数变量名、数据值、数据类型,其数据存储的格式如表4所示:
表4
参数编号 | 参数变量名 | 数据值 | 数据类型 |
D1000001 | Tellno | 100123 | String |
D1000002 | Pwd | 111111 | String |
D1000003 | Cardno | 120200032111232321 | String |
D1000004 | Cradtype | 身份证 | String |
本发明实施例系统的数据存储装置的指令案例关系存储单元,用于存储各指令案例关系的信息,该信息至少包含关系序号、指令编号、关键字案例编号、输入指令信息,其数据存储的格式如表5所示:
表5
关系序号 | 指令编号 | 关键字案例编号 | 输入指令信息 |
100001 | Z100001 | C100001 | 客户信息,查询 |
100002 | Z100001 | C100001 | 查询客户信息 |
100003 | Z100002 | C100002 | 客户信息,新增 |
在表5中,输入指令信息指用户输入的执行自动化测试脚本的指令。
本发明实施例的测试服务器,负责从外部读取由自动化测试工具录制生成的脚本文件资源。传统的自动化工具(如:IBM Rational Functional Tester、HP Quick Test Professional等)在录制操作结束后,都会自动生成测试脚本。同时也会自动生成与测试脚本一一对应的,记录其测试对象识别属性相关信息的配置文件(如自动化测试工具RFT的测试对象图文件:*.rftxmap等)。脚本文件资源包含两部分:即测试脚本文件和测试对象配置文件。
本发明实施例的测试服务器,还负责从源自动化测试脚本文件逐行解析出“对象”、“行为”、“数据”三个自动化执行最基本的要素。“对象”的解析过程为:读取测试对象配置文件,解析出所有测试对象的对象名称(以该对象在被测系统界面上展示的业务名称作为对象名称)、关键识别属性(如name属性)和对象类型(如:下拉框、文本框等)。“行为”的解析过程为:将脚本每行代码中对象的操作进行解析。(如:将“inputChars”动作转化为行为:“输入”,将“click”转化为行为:“点击”等)。数据的解析规则为:将每行脚本中每个对象动作所对应的实际数据抽象为参数变量(如将源脚本代码userName().inputChars(“张三”);中的“张三”),将参数变量和数据值保存到参数数据存储单元中,取对象的关键识别属性(如name属性)作为参数变量名。
本发明实施例的测试服务器,还将所有“对象”、“动作”和“数据”按源脚本规则的解析顺序以对象名.动作(参数)的形式,自动构建成若干个相互独立、且粒度最细(只包含一个操作行为)的原子步骤。如:通过自动化测试工具录制“用户登录”这个操作有以下步骤:在用户名输入域中输入用户名“张三”、在密码框中输入密码“123456”、点击登录按钮。通过解析和构建后,生成三个原子步骤:原子步骤一:用户名.输入(参数为tellerno);原子步骤二:密码.输入(参数为pwd);原子步骤三:登录.点击(无参数)。
本发明实施例的测试服务器,还负责将构建出的所有原子步骤保存到原子步骤存储单元中,同时将参数即其实际数据值都保存到参数数据存储单元中(如上例中的参数tellerno对应的数值“张三”和pwd对应的数据值“123456”)。
本发明实施例的测试服务器,还负责查询原子步骤存储单元,展示出原子步骤。用户可以从界面选取原子步骤。将用户选取的原子步骤,按照选取顺序构建成关键字步骤。关键字步骤的参数为所选取原子步骤参数的集合。比如用户先选择原子步骤一:“用户名.输入(参数为tellerno)”,再选择原子步骤二:“密码.输入(参数为pwd)”,最后选择原子步骤三:“登录.点击”(无参数)。关键字步骤构建单元31将这三个步骤构建成关键字步骤“登录”。在后继的执行过程中,调用该关键字步骤“登录”时,则先执行原子步骤一--“用户名.输入”,再执行原子步骤二--“密码.输入”,最后执行原子步骤三:“登录.点击”。同时,该关键字步骤“登录”会自动包含两个参数变量--tellerno,pwd。
本发明实施例的测试服务器,还负责将组合后的关键字步骤存储到关键字步骤存储单元中。
本发明实施例的测试服务器,还负责查询关键字步骤存储单元,并在界面中展示,使用户可以在界面中进行选取。按照用户选取关键字步骤的先后顺序来自动构建关键字案例。同时,关键字案例的参数则是构成它的所有关键字步骤参数的集合。如:用户先选取了关键字步骤“登录”,又选取了关键字步骤“查询客户”,组成一个可执行的关键字案例:“查询客户信息”。在后继的执行过程中,在逐行执行原子步骤执行序列时通过该序列中的参数名与参数文件中的参数名称匹配,来获取其在参数文件中对应的数据值。(比如:执行时的原子步骤“用户名.输入(参数为tellerno)”,对应的参数数据存储单元包含一条参数记录:tellerno,100123,String。则在执行时就将原子步骤执行序列中对应的tellerno替换成数据100123,即以“用户名.输入(100123)”的形式执行该原子步骤。)
本发明实施例的测试服务器,还负责将关键字案例的信息存储到关键字案例存储单元中。
本发明实施例的测试服务器,还负责接受从测试终端界面输入的指令,指令的格式可以是完整的关键字案例的名称,如输入指令“查询客户信息”,也可以是以关键字步骤名称中所包含的多个匹配字符所组成的字符串,匹配字符之间用特定的分隔符,输入指令“客户信息,查询”。
本发明实施例的测试服务器接受传入的执行指令,根据执行指令查询指令案例关系存储单元,如果存在执行过的记录,则获取对应的原子步骤执行序列(原子步骤执行序列:是按照用户选择的关键字案例、关键字步骤的顺序自动组合出的原子步骤配置信息的序列集合。序列中的每个原子步骤执行信息包含“测试对象识别属性”、“行为”和“参数变量名”),并输出给自动化测试工具。如果该指令在指令案例关系存储单元中不存在(即该指令从未执行过),则查询关键字案例存储单元,若指令内容与关键字案例名称或者搜索案例匹配字符中的任意一项匹配上,则获取对应的原子步骤执行序列,并输出给自动化测试工具;否则需要构建新的测试案例后再次对指令进行处理。并将指令信息和对应的关键字案例信息保存到指令案例关系存储单元中。
本发明实施例的测试服务器输出的原子步骤执行序列。首先将该序列中各测试对象的“测试对象识别属性”传递给自动化测试工具(如IBM Rational Functional Tester、HP Quick Test Professional等等)的对象查找API接口,在被测试界面中查找到对应的“测试对象”。然后,根据“参数变量名”查询参数数据存储单元14,获取对应的“数据值”。再将“测试对象”、原子步骤执行序列中对应的“行为”、“数据值”传递给自动化测试工具的对象操作API接口,实现对该测试对象进行操作步骤的自动执行。如果所有的原子步骤执行序列执行成功,则执行结果为“执行通过”,将执行结果输出给结果展现单元44。如果在执行过程中发生异常导致执行失败,则执行结果为“执行失败”,并将执行结果和异常信息输出。
本发明实施例的测试服务器输入执行结果信息和异常信息,将执行结果信息和异常信息在测试终端的界面中输出。
本发明实施例的软件产品测试方法包括:案例构建步骤和测试执行步骤;案例构建步骤包括:读取外部自动化测试工具传来的测试脚本文件和测试对象配置文件;从测试对象配置文件中抽取出所有测试对象的对象名称、识别属性和对象类型;从测试脚本文件中分别抽取出对象动作和对应的测试数据,并将测试数据转换为参数变量;将每个测试对象的一次独立操作以“对象名称.对象动作(参数变量)”的格式构建成一个原子步骤,并将原子步骤和参数变量对应的实际数据值进行存储;对原子步骤进行选取,按照选取顺序将被选取的原子步骤构建成关键字步骤,并将关键字步骤进行存储;对关键字步骤进行选取,按照选取顺序将被选取的关键字步骤构建成关键字案例,并将关键字案例进行存储;测试执行步骤包括:接收用户输入的包含关键字案例名称或字符串的案例执行指令;根据案例执行指令,按照关键字案例、关键字步骤和原子步骤的查询顺序获取对应的原子步骤,组成原子步骤执行序列;将原子步骤执行序列传给外部自动化测试工具进行测试执行;展示测试执行结果。建立案例执行指令与关键字案例的对应关系,并将案例执行指令与关键字案例的对应关系存入指令案例关系库。
如图6所示,软件产品测试方法的具体步骤如下:
步骤S101:读取外部自动化测试工具录制生成的脚本文件内容(至少包括测试脚本和测试对象识别属性配置文件)。
步骤S102:接收脚本文件内容,根据测试对象识别属性配置文件中的内容抽取出所有对象:包括对象的识别属性和对象名称。识别属性为测试界面上对象的关键识别属性,对象名称为该对象在界面中展示的中文业务名称。
步骤S103:从脚本中分别抽取出测试对象、动作和测试数据三要素。并将测试数据抽象为参数变量。
步骤S104:以Object.Operation(Data Param)的形式对三要素进行封装,将每个对象的一次独立操作都构建成一个原子步骤,并存入原子步骤存储单元中。同时,将参数和对应的实际数据值都保存到参数数据存储单元中。
步骤S105:从原子步骤存储单元中选取原子步骤,构建成关键字步骤,并存入到关键字步骤存储单元中。
步骤S106:从关键字步骤存储单元中选取关键字步骤,进一步构建成关键字案例,并存入到关键字案例存储单元中。
步骤S107:接收用户输入的案例执行指令。
步骤S108:根据传入的指令信息查询指令案例关系存储单元,若存在相应的记录,则获取对应的关键字案例编号,进入步骤S109。若不存在,则进入步骤S110。
步骤S109:根据获取出的关键字案例编号查询关键字案例存储单元,判断是否存在对应的关键字步骤记录,若存在,获取关键字步骤编号,进入步骤S111.,若不存在,则进入步骤S117。
步骤S110:通过将指令与关键字案例存储单元中的“搜索案例匹配字符”字段和“关键字案例名称”字段进行匹配,两个字段中只要匹配上一个,即认为存在对应的关键字案例记录。若存在则更新指令关键字关系存储单元中对应的记录,并取出关键字步骤编号,进入步骤S111。若不存在,则进入步骤S117;
步骤S111:根据步骤S109或步骤S110中得到的关键字步骤编号,查询关键字步骤存储单元,若不存在对应的关键字步骤,则转入步骤S117;若存在对应的关键字步骤,则取出相应的原子步骤编号进入步骤S112。
步骤S112:根据步骤S111中得到的原子步骤编号,查询原子步骤操作存储单元,若不存在相应的记录,则进入步骤S117;若存在,则进入步骤S113。
步骤S113:获取查询得到的原子步骤,依据顺序组成原子步骤执行序列。
步骤S114:将原子步骤执行序列传给自动化测试工具,自动化测试工具进行回放执行。
步骤S115:根据解析出的关键字在指令案例关系存储中新增一条指令和关键字案例的对照关系。
步骤S116:输出并展示运行时脚本的执行结果。
步骤S117:输出异常失败信息。
本发明实施例克服了传统自动化测试在进行回归测试过程中复用性低、通用性差、脚本制作复杂的问题。对已经执行过一次的测试案例,不需要重新构建,只需要通过选取原子步骤、关键字步骤或者关键字案例,快速组合构建出新的原子步骤执行序列,传递给自动化测试工具执行即可;即使没有执行过的测试案例,只需构建一次关键字案例便可以被重复利用。
本发明实施例通过定义出原子步骤的规则,将测试脚本划分为粒度最细的原子步骤,原子步骤可以构建成关键字步骤,关键字步骤可以进一步构建成粒度更大的关键字案例。测试人员可以结合实际测试需求,像搭积木一样任意构建成自动化测试案例。本发明实施例通过将原子步骤构建为关键字步骤,大大提高了自动化测试案例的复用性和通用性,降低了开发、维护脚本的难度,减少了自动化测试的成本。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (7)
1.一种软件产品测试方法,其特征是,所述的方法包括:案例构建步骤和测试执行步骤;
所述的案例构建步骤包括:
读取外部自动化测试工具传来的测试脚本文件和测试对象配置文件;
从所述的测试对象配置文件中抽取出所有测试对象的对象名称、识别属性和对象类型;
从所述的测试脚本文件中分别抽取出对象动作和对应的测试数据,并将所述的测试数据转换为参数变量;
将每个测试对象的一次独立操作以“对象名称.对象动作(参数变量)”的格式构建成一个原子步骤,并将所述的原子步骤和所述参数变量对应的实际数据值进行存储;
对所述的原子步骤进行选取,按照选取顺序将被选取的原子步骤构建成关键字步骤,并将所述的关键字步骤进行存储;
对所述的关键字步骤进行选取,按照选取顺序将被选取的关键字步骤构建成关键字案例,并将所述的关键字案例进行存储;
所述的测试执行步骤包括:
接收用户输入的包含关键字案例名称或字符串的案例执行指令;
根据所述的案例执行指令,按照关键字案例、关键字步骤和原子步骤的查询顺序获取对应的原子步骤,组成原子步骤执行序列;
将所述的原子步骤执行序列传给外部自动化测试工具进行测试执行;
展示测试执行结果。
2.根据权利要求1所述的软件产品测试方法,其特征是,所述的方法还包括:建立案例执行指令与关键字案例的对应关系,并将所述的案例执行指令与关键字案例的对应关系存入指令案例关系库。
3.根据权利要求2所述的软件产品测试方法,其特征是,根据所述的案例执行指令查询所述的指令案例关系库,获取对应的关键字案例编号,根据获取的关键字案例编号获取关键字步骤编号,根据关键字步骤编号获取相应的原子步骤编号,根据得到的原子步骤编号获取原子步骤并依据顺序组成原子步骤执行序列。
4.根据权利要求2所述的软件产品测试方法,其特征是,如果所述案例执行指令的内容与所述的指令案例关系库中的内容不匹配,则构建新的关键字案例后再次对案例执行指令进行处理,并将案例执行指令和对应的新的关键字案例信息保存到所述的指令案例关系库中。
5.一种软件产品测试系统,其特征是,所述的系统包括:案例构建装置和测试执行装置;
所述的案例构建装置包括:
源脚本读取单元,用于读取外部自动化测试工具传来的测试脚本文件和测试对象配置文件;
测试对象获取单元,用于从所述的测试对象配置文件中抽取出所有测试对象的对象名称、识别属性和对象类型;
动作及数据获取单元,用于从所述的测试脚本文件中分别抽取出对象动作和对应的测试数据,并将所述的测试数据转换为参数变量;
原子步骤构建单元,用于将每个测试对象的一次独立操作以“对象名称.对象动作(参数变量)”的格式构建成一个原子步骤,并将所述的原子步骤和所述参数变量对应的实际数据值进行存储;
关键字步骤构建单元,用于对所述的原子步骤进行选取,按照选取顺序将被选取的原子步骤构建成关键字步骤,并将所述的关键字步骤进行存储;
关键字案例构建单元,用于对所述的关键字步骤进行选取,按照选取顺序将被选取的关键字步骤构建成关键字案例,并将所述的关键字案例进行存储;
所述的测试执行装置包括:
执行指令接收单元,用于接收用户输入的包含关键字案例名称或字符串的案例执行指令;
执行序列获取单元,用于根据所述的案例执行指令,按照关键字案例、关键字步骤和原子步骤的查询顺序获取对应的原子步骤,组成原子步骤执行序列;
执行序列输出单元,将所述的原子步骤执行序列传给外部自动化测试工具进行测试执行;
执行结果展示单元,用于展示测试执行结果。
6.根据权利要求5所述的软件产品测试系统,其特征是,所述的系统还包括:数据存储装置,所述的数据存储装置进一步包括:
原子步骤存储单元,用于存储原子步骤信息;
关键字步骤存储单元,用于存储关键字步骤信息;
关键字案例存储单元,用于存储关键字案例信息;
参数数据存储单元,用于存储参数变量和对应的实际数据;
指令案例关系存储单元,用于存储案例执行指令与关键字案例的对应关系。
7.根据权利要求6所述的软件产品测试系统,其特征是,
根据所述的案例执行指令查询所述的指令案例关系存储单元,获取对应的关键字案例编号;
根据获取的关键字案例编号查询所述的关键字案例存储单元,获取关键字步骤编号;
根据关键字步骤编号查询所述的关键字步骤存储单元,获取相应的原子步骤编号;
根据得到的原子步骤编号查询所述的原子步骤存储单元,获取原子步骤并依据顺序组成原子步骤执行序列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110067703.2A CN102135938B (zh) | 2011-03-21 | 2011-03-21 | 一种软件产品测试方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110067703.2A CN102135938B (zh) | 2011-03-21 | 2011-03-21 | 一种软件产品测试方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102135938A true CN102135938A (zh) | 2011-07-27 |
CN102135938B CN102135938B (zh) | 2015-04-15 |
Family
ID=44295726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110067703.2A Active CN102135938B (zh) | 2011-03-21 | 2011-03-21 | 一种软件产品测试方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102135938B (zh) |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103106137A (zh) * | 2011-11-15 | 2013-05-15 | 上海宝康电子控制工程有限公司 | 计算机模块化软件系统中实现自动化单元测试的方法 |
CN103150255A (zh) * | 2013-03-29 | 2013-06-12 | 北京经纬恒润科技有限公司 | 一种脚本测试方法及装置 |
CN103186467A (zh) * | 2011-12-31 | 2013-07-03 | 北京新媒传信科技有限公司 | 数据正确性验证方法及装置 |
CN103856365A (zh) * | 2012-12-05 | 2014-06-11 | 深圳市共进电子股份有限公司 | 客户终端接入设备自动测试方法和系统 |
CN104932980A (zh) * | 2015-06-30 | 2015-09-23 | 北京奇虎科技有限公司 | 软件自动测试方法及装置 |
CN104965781A (zh) * | 2015-06-04 | 2015-10-07 | 浪潮电子信息产业股份有限公司 | 一种生成测试用例的方法及装置 |
CN105117343A (zh) * | 2015-09-18 | 2015-12-02 | 厦门美图移动科技有限公司 | 一种基于文本执行自动化测试的方法及装置 |
CN105739481A (zh) * | 2016-01-29 | 2016-07-06 | 软控股份有限公司 | 工控软件的测试方法、装置及系统 |
CN105912460A (zh) * | 2016-04-05 | 2016-08-31 | 浪潮电子信息产业股份有限公司 | 一种基于qtp的软件测试方法及系统 |
CN106326095A (zh) * | 2015-06-30 | 2017-01-11 | 展讯通信(上海)有限公司 | 一种测试脚本设定方法及系统 |
CN107273285A (zh) * | 2017-05-16 | 2017-10-20 | 北京金山安全软件有限公司 | 测试项目的生成方法和装置 |
CN107315681A (zh) * | 2017-06-09 | 2017-11-03 | 上海爱优威软件开发有限公司 | 应用程序自启动测试系统、媒质和方法 |
CN105550103B (zh) * | 2015-12-03 | 2017-12-05 | 泰华智慧产业集团股份有限公司 | 一种基于自定义测试脚本的自动化测试方法 |
CN107656872A (zh) * | 2017-10-09 | 2018-02-02 | 平安普惠企业管理有限公司 | 软件测试方法、装置、设备和计算机存储介质 |
CN107908559A (zh) * | 2017-11-15 | 2018-04-13 | 中国农业银行股份有限公司 | 一种测试案例设计方法及装置 |
CN108664381A (zh) * | 2017-03-27 | 2018-10-16 | 腾讯科技(深圳)有限公司 | 测试方法及装置 |
CN108984394A (zh) * | 2018-06-19 | 2018-12-11 | 中国平安人寿保险股份有限公司 | 一种测试方法、计算机可读存储介质及终端设备 |
CN109783346A (zh) * | 2018-12-05 | 2019-05-21 | 深圳怡化电脑股份有限公司 | 基于关键字驱动的自动化测试方法、装置及终端设备 |
CN109857645A (zh) * | 2019-01-02 | 2019-06-07 | 广州云测信息技术有限公司 | 一种针对应用程序的自动化测试方法及装置 |
CN111221725A (zh) * | 2019-11-27 | 2020-06-02 | 杭州涂鸦信息技术有限公司 | 一种自动化测试方法及系统、可读存储介质和计算机设备 |
CN111340038A (zh) * | 2020-05-20 | 2020-06-26 | 四川新网银行股份有限公司 | 用于mock测试的一次性影像数据获取方法 |
CN111858355A (zh) * | 2020-07-23 | 2020-10-30 | 中国建设银行股份有限公司 | 测试案例处理方法及装置、计算机设备及可读存储介质 |
CN112783758A (zh) * | 2019-11-11 | 2021-05-11 | 阿里巴巴集团控股有限公司 | 测试案例库与特征库生成方法、设备及存储介质 |
CN113448642A (zh) * | 2020-03-11 | 2021-09-28 | 成都鼎桥通信技术有限公司 | 系统文件访问方法、装置和电子设备 |
CN114840412A (zh) * | 2022-03-25 | 2022-08-02 | 网宿科技股份有限公司 | 测试工具的运行方法、电子设备及存储介质 |
CN117234948A (zh) * | 2023-11-10 | 2023-12-15 | 成都市楠菲微电子有限公司 | 一种基于手工用例生成自动化用例的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6249882B1 (en) * | 1998-06-15 | 2001-06-19 | Hewlett-Packard Company | Methods and systems for automated software testing |
CN1744054A (zh) * | 2004-08-31 | 2006-03-08 | 中国银联股份有限公司 | 一种自动化测试辅助系统及相应的软件自动测试方法 |
CN101221503A (zh) * | 2008-02-01 | 2008-07-16 | 中国建设银行股份有限公司 | 软件测试方法及装置 |
-
2011
- 2011-03-21 CN CN201110067703.2A patent/CN102135938B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6249882B1 (en) * | 1998-06-15 | 2001-06-19 | Hewlett-Packard Company | Methods and systems for automated software testing |
CN1744054A (zh) * | 2004-08-31 | 2006-03-08 | 中国银联股份有限公司 | 一种自动化测试辅助系统及相应的软件自动测试方法 |
CN101221503A (zh) * | 2008-02-01 | 2008-07-16 | 中国建设银行股份有限公司 | 软件测试方法及装置 |
Cited By (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103106137A (zh) * | 2011-11-15 | 2013-05-15 | 上海宝康电子控制工程有限公司 | 计算机模块化软件系统中实现自动化单元测试的方法 |
CN103186467A (zh) * | 2011-12-31 | 2013-07-03 | 北京新媒传信科技有限公司 | 数据正确性验证方法及装置 |
CN103186467B (zh) * | 2011-12-31 | 2016-04-20 | 北京新媒传信科技有限公司 | 数据正确性验证方法及装置 |
CN103856365B (zh) * | 2012-12-05 | 2018-09-14 | 深圳市共进电子股份有限公司 | 客户终端接入设备自动测试方法和系统 |
CN103856365A (zh) * | 2012-12-05 | 2014-06-11 | 深圳市共进电子股份有限公司 | 客户终端接入设备自动测试方法和系统 |
CN103150255A (zh) * | 2013-03-29 | 2013-06-12 | 北京经纬恒润科技有限公司 | 一种脚本测试方法及装置 |
CN103150255B (zh) * | 2013-03-29 | 2016-12-28 | 北京经纬恒润科技有限公司 | 一种脚本测试方法及装置 |
CN104965781A (zh) * | 2015-06-04 | 2015-10-07 | 浪潮电子信息产业股份有限公司 | 一种生成测试用例的方法及装置 |
CN104932980B (zh) * | 2015-06-30 | 2018-10-23 | 北京奇虎科技有限公司 | 软件自动测试方法及装置 |
CN104932980A (zh) * | 2015-06-30 | 2015-09-23 | 北京奇虎科技有限公司 | 软件自动测试方法及装置 |
CN106326095A (zh) * | 2015-06-30 | 2017-01-11 | 展讯通信(上海)有限公司 | 一种测试脚本设定方法及系统 |
CN105117343A (zh) * | 2015-09-18 | 2015-12-02 | 厦门美图移动科技有限公司 | 一种基于文本执行自动化测试的方法及装置 |
CN105550103B (zh) * | 2015-12-03 | 2017-12-05 | 泰华智慧产业集团股份有限公司 | 一种基于自定义测试脚本的自动化测试方法 |
CN105739481A (zh) * | 2016-01-29 | 2016-07-06 | 软控股份有限公司 | 工控软件的测试方法、装置及系统 |
CN105739481B (zh) * | 2016-01-29 | 2019-03-19 | 软控股份有限公司 | 工控软件的测试方法、装置及系统 |
CN105912460A (zh) * | 2016-04-05 | 2016-08-31 | 浪潮电子信息产业股份有限公司 | 一种基于qtp的软件测试方法及系统 |
CN108664381A (zh) * | 2017-03-27 | 2018-10-16 | 腾讯科技(深圳)有限公司 | 测试方法及装置 |
CN108664381B (zh) * | 2017-03-27 | 2021-04-06 | 腾讯科技(深圳)有限公司 | 测试方法及装置 |
CN107273285A (zh) * | 2017-05-16 | 2017-10-20 | 北京金山安全软件有限公司 | 测试项目的生成方法和装置 |
CN107315681A (zh) * | 2017-06-09 | 2017-11-03 | 上海爱优威软件开发有限公司 | 应用程序自启动测试系统、媒质和方法 |
CN107656872B (zh) * | 2017-10-09 | 2020-09-29 | 平安普惠企业管理有限公司 | 软件测试方法、装置、设备和计算机存储介质 |
CN107656872A (zh) * | 2017-10-09 | 2018-02-02 | 平安普惠企业管理有限公司 | 软件测试方法、装置、设备和计算机存储介质 |
CN107908559A (zh) * | 2017-11-15 | 2018-04-13 | 中国农业银行股份有限公司 | 一种测试案例设计方法及装置 |
CN107908559B (zh) * | 2017-11-15 | 2021-05-07 | 中国农业银行股份有限公司 | 一种测试案例设计方法及装置 |
CN108984394A (zh) * | 2018-06-19 | 2018-12-11 | 中国平安人寿保险股份有限公司 | 一种测试方法、计算机可读存储介质及终端设备 |
CN109783346B (zh) * | 2018-12-05 | 2022-05-13 | 深圳怡化电脑股份有限公司 | 基于关键字驱动的自动化测试方法、装置及终端设备 |
CN109783346A (zh) * | 2018-12-05 | 2019-05-21 | 深圳怡化电脑股份有限公司 | 基于关键字驱动的自动化测试方法、装置及终端设备 |
CN109857645A (zh) * | 2019-01-02 | 2019-06-07 | 广州云测信息技术有限公司 | 一种针对应用程序的自动化测试方法及装置 |
CN112783758B (zh) * | 2019-11-11 | 2024-02-27 | 阿里云计算有限公司 | 测试案例库与特征库生成方法、设备及存储介质 |
CN112783758A (zh) * | 2019-11-11 | 2021-05-11 | 阿里巴巴集团控股有限公司 | 测试案例库与特征库生成方法、设备及存储介质 |
CN111221725A (zh) * | 2019-11-27 | 2020-06-02 | 杭州涂鸦信息技术有限公司 | 一种自动化测试方法及系统、可读存储介质和计算机设备 |
CN111221725B (zh) * | 2019-11-27 | 2023-04-07 | 杭州涂鸦信息技术有限公司 | 一种自动化测试方法及系统、可读存储介质和计算机设备 |
CN113448642A (zh) * | 2020-03-11 | 2021-09-28 | 成都鼎桥通信技术有限公司 | 系统文件访问方法、装置和电子设备 |
CN113448642B (zh) * | 2020-03-11 | 2022-11-15 | 成都鼎桥通信技术有限公司 | 系统文件访问方法、装置和电子设备 |
CN111340038A (zh) * | 2020-05-20 | 2020-06-26 | 四川新网银行股份有限公司 | 用于mock测试的一次性影像数据获取方法 |
CN111858355B (zh) * | 2020-07-23 | 2023-05-26 | 建信金融科技有限责任公司 | 测试案例处理方法及装置、计算机设备及可读存储介质 |
CN111858355A (zh) * | 2020-07-23 | 2020-10-30 | 中国建设银行股份有限公司 | 测试案例处理方法及装置、计算机设备及可读存储介质 |
CN114840412A (zh) * | 2022-03-25 | 2022-08-02 | 网宿科技股份有限公司 | 测试工具的运行方法、电子设备及存储介质 |
CN117234948A (zh) * | 2023-11-10 | 2023-12-15 | 成都市楠菲微电子有限公司 | 一种基于手工用例生成自动化用例的方法 |
CN117234948B (zh) * | 2023-11-10 | 2024-01-23 | 成都市楠菲微电子有限公司 | 一种基于手工用例生成自动化用例的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102135938B (zh) | 2015-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102135938B (zh) | 一种软件产品测试方法及系统 | |
CN202339542U (zh) | 一种软件产品测试系统 | |
CN104866599B (zh) | 可视化报表的生产方法和系统 | |
CN110321113B (zh) | 以项目批次为标准的一体化流水线系统及其工作方法 | |
CN100587693C (zh) | 从多个数据源获取数据的方法及系统 | |
CN104133772A (zh) | 一种自动生成测试数据的方法 | |
CN103020158A (zh) | 一种报表创建方法、装置和系统 | |
CN108345532A (zh) | 一种自动化测试用例生成方法和装置 | |
CN110888818A (zh) | 测试用例配置系统与方法,自动化测试系统与方法 | |
CN111061733B (zh) | 数据处理方法、装置、电子设备和计算机可读存储介质 | |
CN110019116B (zh) | 数据追溯方法、装置、数据处理设备及计算机存储介质 | |
CN113688288B (zh) | 数据关联分析方法、装置、计算机设备和存储介质 | |
CN104657274A (zh) | 软件界面测试方法及装置 | |
CN108491326A (zh) | 测试行为重组方法、装置及存储介质 | |
CN108345658B (zh) | 算法计算轨迹的分解处理方法、服务器及存储介质 | |
CN104182347A (zh) | 一种基于自动化测试平台的测试需求自动分析方法 | |
CN111190814B (zh) | 软件测试用例的生成方法、装置、存储介质及终端 | |
CN107766519B (zh) | 一种可视化配置数据结构的方法 | |
CN116974929A (zh) | 自动化测试工具构建方法、自动化测试方法及其相关设备 | |
US20230035835A1 (en) | System and method of a modular framework for configuration and reuse of web components | |
CN108132802B (zh) | 一种配置模型在系统开发中的应用方法 | |
CN115757174A (zh) | 一种数据库的差异检测方法及装置 | |
Merchant et al. | Tool for performance tuning and regression analyses of HPC systems and applications | |
CN103885762A (zh) | 一种基于文件字典拼装的文件开发工具装置以及方法 | |
CN103577560A (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 |