一种软件产品测试方法及系统的制作方法

文档序号:6356472阅读:124来源:国知局
专利名称:一种软件产品测试方法及系统的制作方法
技术领域
本发明关于计算机软件测试技术,特别是关于使用软件自动化测试工具的软件测 试技术,具体地讲是一种软件产品测试方法及系统。
背景技术
传统的软件测试基本上都是使用自动化测试工具来实施的。当自动化测试工具录 制脚本时,会用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所示,本发明实施例的软件产品测试系统的工作流程包括步骤al、自动化测试工具生成测试脚本文件和测试对象配置文件。步骤a2、测试服务器读取测试脚本文件和测试对象配置文件。步骤a3、测试服务器从测试对象配置文件中抽取出所有测试对象的对象名称、识别属性和对象类型。步骤a4和a5、测试服务器从测试脚本文件中分别抽取出对象动作和对应的测试 数据,并将测试数据转换为参数变量。步骤a6和a7、测试服务器将每个测试对象的一次独立操作以“对象名称.对象动 作(参数变量)”的格式构建成一个原子步骤,并将原子步骤存储到原子步骤数据库,将参 数变量和对应的实际数据值存储到参数变量数据库。步骤a8-all、测试服务器对原子步骤进行选取,按照选取顺序将被选取的原子步 骤构建成关键字步骤,并将关键字步骤存储到关键字步骤数据库。步骤al2_al7、测试服务器对所述的关键字步骤进行选取,按照选取顺序将被选取 的关键字步骤构建成关键字案例,并将关键字案例存储到关键字案例数据库。步骤bl、用户向测试终端输入包含关键字案例名称或字符串的案例执行指令。步骤1^2、测试服务器根据案例执行指令,按照关键字案例、关键字步骤和原子步骤 的查询顺序获取对应的原子步骤,组成原子步骤执行序列。步骤b3和b4、将原子步骤执行序列传给外部自动化测试工具进行测试执行。其 中;将测试对象识别属性传送给对象查找API接口,将测试对象和原子步骤执行序列中的 “动作”、“数据值”传送给对象操作API接口。步骤沾和M、测试服务器生成测试执行结果,由测试终端展示该测试执行结果。本发明实施例的软件产品测试系统的工作流程还包括建立案例执行指令与关键 字案例的对应关系,并将案例执行指令与关键字案例的对应关系存入指令案例关系库。在图5中,本发明实施例的软件产品测试系统定义出统一标准的原子步骤,原子 步骤可以构建为关键字步骤,关键字步骤又进一步可以构建成关键字案例,并存储到数据 存储装置103中。如果被测对象发生变化,本发明实施例的软件产品测试系统通过测试终 端200输入的指令,选取原子步骤、关键字步骤或者关键字案例,快速组合构建出新的原子 步骤执行序列,传递给自动化测试工具300相应的API接口。将此原子步骤执行序列中各 测试对象的“测试对象识别属性”传递给“对象查找API接口 ”,实现相应对象的查找功能, 再将“对象查找API接口 ”查找到的“测试对象”以及“行为”、“数据”传递给“对象操作API 接口”,实现对相应对象进行操作的功能。从而最终实现回放功能。对于已经执行过一次的 测试案例,只需传入测试数据就可以反复去执行。对数据存储装置103中没有的案例,也只 需构建一次。这样在测试过程中可以节省大量时间、提高了工作效率。本发明实施例系统主要实现一种基于对操作步骤进行构建的自动化测试方法。原 子步骤作为粒度最细的组件,是构建自动化测试案例最小单元。原子步骤只包含一个测试 行为,并且相互之间独立,不从属于任何脚本。由一个或多个原子步骤构建成关键字步骤, 一个或多个关键字步骤进一步构建成粒度更大的关键字案例。所有的原子步骤存入原子步骤存储单元;关键字步骤存入关键字步骤存储单元、 关键字案例存入关键字案例存储单元。在自动化测试执行时,通过用户向本发明实施例系 统输入指令,本发明实施例系统根据指令自动获取相应的关键字案例进行执行,也可以由 用户通过本发明实施例系统提供的选择界面手动构建关键字案例后进行执行。本发明实施例系统的数据存储装置的原子步骤存储单元,用于存储各被测试的软 件系统的对象信息,该信息至少包含原子步骤编号、对象名称、对象动作、对象类型、识别属CN 102135938 A
说明书
5/10 页
性、参数变量名、参数编号,其数据存储的格式如表1所示表 权利要求
1. 一种软件产品测试方法,其特征是,所述的方法包括案例构建步骤和测试执行步骤;所述的案例构建步骤包括读取外部自动化测试工具传来的测试脚本文件和测试对象配置文件;从所述的测试对象配置文件中抽取出所有测试对象的对象名称、识别属性和对象类型;从所述的测试脚本文件中分别抽取出对象动作和对应的测试数据,并将所述的测试数 据转换为参数变量;将每个测试对象的一次独立操作以“对象名称.对象动作(参数变量)”的格式构建成 一个原子步骤,并将所述的原子步骤和所述参数变量对应的实际数据值进行存储;对所述的原子步骤进行选取,按照选取顺序将被选取的原子步骤构建成关键字步骤, 并将所述的关键字步骤进行存储;对所述的关键字步骤进行选取,按照选取顺序将被选取的关键字步骤构建成关键字案 例,并将所述的关键字案例进行存储; 所述的测试执行步骤包括接收用户输入的包含关键字案例名称或字符串的案例执行指令; 根据所述的案例执行指令,按照关键字案例、关键字步骤和原子步骤的查询顺序获取 对应的原子步骤,组成原子步骤执行序列;将所述的原子步骤执行序列传给外部自动化测试工具进行测试执行; 展示测试执行结果。
2.根据权利要求1所述的软件产品测试方法,其特征是,所述的方法还包括建立案例 执行指令与关键字案例的对应关系,并将所述的案例执行指令与关键字案例的对应关系存 入指令案例关系库。
3.根据权利要求2所述的软件产品测试方法,其特征是,根据所述的案例执行指令查 询所述的指令案例关系库,获取对应的关键字案例编号,根据获取的关键字案例编号获取 关键字步骤编号,根据关键字步骤编号获取相应的原子步骤编号,根据得到的原子步骤编 号获取原子步骤并依据顺序组成原子步骤执行序列。
4.根据权利要求2所述的软件产品测试方法,其特征是,如果所述案例执行指令的内 容与所述的指令案例关系库中的内容不匹配,则构建新的关键字案例后再次对案例执行指 令进行处理,并将案例执行指令和对应的新的关键字案例信息保存到所述的指令案例关系 库中。
5. 一种软件产品测试系统,其特征是,所述的系统包括案例构建装置和测试执行装置;所述的案例构建装置包括源脚本读取单元,用于读取外部自动化测试工具传来的测试脚本文件和测试对象配置 文件;测试对象获取单元,用于从所述的测试对象配置文件中抽取出所有测试对象的对象名 称、识别属性和对象类型;动作及数据获取单元,用于从所述的测试脚本文件中分别抽取出对象动作和对应的测试数据,并将所述的测试数据转换为参数变量;原子步骤构建单元,用于将每个测试对象的一次独立操作以“对象名称.对象动作(参 数变量)”的格式构建成一个原子步骤,并将所述的原子步骤和所述参数变量对应的实际数 据值进行存储;关键字步骤构建单元,用于对所述的原子步骤进行选取,按照选取顺序将被选取的原 子步骤构建成关键字步骤,并将所述的关键字步骤进行存储;关键字案例构建单元,用于对所述的关键字步骤进行选取,按照选取顺序将被选取的 关键字步骤构建成关键字案例,并将所述的关键字案例进行存储; 所述的测试执行装置包括执行指令接收单元,用于接收用户输入的包含关键字案例名称或字符串的案例执行指令;执行序列获取单元,用于根据所述的案例执行指令,按照关键字案例、关键字步骤和原 子步骤的查询顺序获取对应的原子步骤,组成原子步骤执行序列;执行序列输出单元,将所述的原子步骤执行序列传给外部自动化测试工具进行测试执行;执行结果展示单元,用于展示测试执行结果。
6.根据权利要求5所述的软件产品测试系统,其特征是,所述的系统还包括数据存储 装置,所述的数据存储装置进一步包括原子步骤存储单元,用于存储原子步骤信息;关键字步骤存储单元,用于存储关键字步骤信息;关键字案例存储单元,用于存储关键字案例信息;参数数据存储单元,用于存储参数变量和对应的实际数据;指令案例关系存储单元,用于存储案例执行指令与关键字案例的对应关系。
7.根据权利要求6所述的软件产品测试系统,其特征是,根据所述的案例执行指令查询所述的指令案例关系存储单元,获取对应的关键字案例编号;根据获取的关键字案例编号查询所述的关键字案例存储单元,获取关键字步骤编号; 根据关键字步骤编号查询所述的关键字步骤存储单元,获取相应的原子步骤编号; 根据得到的原子步骤编号查询所述的原子步骤存储单元,获取原子步骤并依据顺序组 成原子步骤执行序列。
全文摘要
本发明提供了一种软件产品测试方法及系统,该系统包括案例构建装置和测试执行装置;案例构建装置包括源脚本读取单元,测试对象获取单元,动作及数据获取单元,原子步骤构建单元,关键字步骤构建单元,关键字案例构建单元,用于对关键字步骤进行选取,按照选取顺序将被选取的关键字步骤构建成关键字案例,并将关键字案例进行存储;测试执行装置包括执行指令接收单元,执行序列获取单元,执行序列输出单元,将原子步骤执行序列传给外部自动化测试工具进行测试执行;执行结果展示单元,用于展示测试执行结果。以解决自动化测试工具在使用中的复用性低、通用性差、脚本维护成本高以及脚本开发难度大等问题。
文档编号G06F11/36GK102135938SQ20111006770
公开日2011年7月27日 申请日期2011年3月21日 优先权日2011年3月21日
发明者白翠琴, 金晖 申请人:中国工商银行股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1