CN107908559B - 一种测试案例设计方法及装置 - Google Patents

一种测试案例设计方法及装置 Download PDF

Info

Publication number
CN107908559B
CN107908559B CN201711129215.3A CN201711129215A CN107908559B CN 107908559 B CN107908559 B CN 107908559B CN 201711129215 A CN201711129215 A CN 201711129215A CN 107908559 B CN107908559 B CN 107908559B
Authority
CN
China
Prior art keywords
test
data
atomic
logic
input data
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.)
Active
Application number
CN201711129215.3A
Other languages
English (en)
Other versions
CN107908559A (zh
Inventor
谢彬
焦伟
杨志刚
周期律
蔡仕志
杨启龙
高琦
王子南
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Agricultural Bank Of China Financial Technology Co ltd
Agricultural Bank of China
Original Assignee
Agricultural Bank of China
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Agricultural Bank of China filed Critical Agricultural Bank of China
Priority to CN201711129215.3A priority Critical patent/CN107908559B/zh
Publication of CN107908559A publication Critical patent/CN107908559A/zh
Application granted granted Critical
Publication of CN107908559B publication Critical patent/CN107908559B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

本发明公开了一种测试案例设计方法及装置,该方法包括:依据界面对象信息创建界面对象模型,并根据所述界面对象模型设置测试对象模版;确定测试数据的测试类别,设置与所述测试类别对应的数据标识,根据所述数据标识创建测试数据模版;通过设置原子测试步骤组成要素的格式得到所述原子测试步骤的模版,并依据所述原子测试步骤模版创建测试逻辑模型;根据所述测试对象模版、所述测试数据模块和所述测试逻辑模型生成测试案例。本发明通过对测试对象、测试数据和测试逻辑的标准化处理,解决了测试数据易失效以及测试资产难以有效继承的问题。

Description

一种测试案例设计方法及装置
技术领域
本发明涉及数据测试技术领域,特别是涉及一种测试案例设计方法及装置。
背景技术
测试案例是商业银行测试工作中产生的重要资产,是测试操作的最基本单元。传统的测试案例的编写都是由测试人员根据测试数据进行设计的。但是这种测试案例在商业银行的测试工作中主要有以下几方面的不足。
一方面,测试数据的准备工作耗时较长,同时测试数据受到测试环境切换、测试执行等因素的影响,失效概率较大,给测试准备工作造成较大困难。另一方面,随着软件测试行业的高速发展,市场对专业测试人才的需求量逐年增加。面对软件行业的高薪竞争,商业银行的测试团队面临人员流动大、团队不稳定的困境。由于测试案例等测试工作的核心资产没有统一、有效的标准,而主要取决于测试人员的个人技能,一旦人员流失,其掌握的测试资产难以有效继承,往往对商业银行的测试工作造成不利影响。因此,测试案例的设计方法对测试工作有着重大意义。
发明内容
针对于上述问题,本发明提供一种测试案例设计方法及装置,解决了测试数据易失效以及测试资产难以有效继承的问题。
为了实现上述目的,根据本发明的第一方面,提供了一种测试案例设计方法,该方法包括:
依据界面对象信息创建界面对象模型,并根据所述界面对象模型设置测试对象模版,其中,所述界面对象信息包括界面元素的基本信息、版本信息和定位信息;
确定测试数据的测试类别,设置与所述测试类别对应的数据标识,根据所述数据标识创建测试数据模版;
通过设置原子测试步骤组成要素的格式得到所述原子测试步骤的模版,并依据所述原子测试步骤模版创建测试逻辑模型,其中,所述原子测试步骤为测试步骤的子步骤,所述原子测试步骤组成要素包括原子对象、操作方式和输入数据;
根据所述测试对象模版、所述测试数据模板和所述测试逻辑模型生成测试案例。
优选地,所述通过设置原子测试步骤组成要素的格式得到所述原子测试步骤的模版,并依据所述原子测试步骤模版创建测试逻辑模型,包括:
根据原子对象的构成要素,确定所述原子对象的格式;
设置所述原子对象的操作顺序和操作方式;
根据输入数据的属性格式生成输入数据逻辑;
依据所述原子对象的格式、所述操作顺序、所述操作方式和所述输入数据逻辑,生成所述原子测试步骤的模版;
根据所述原子测试步骤的顺序,将所述原子测试步骤模版进行组合,得到测试逻辑模型。
优选地,所述根据输入数据的属性格式生成输入数据逻辑,包括:
判断所述输入数据是否满足预设的属性格式,如果是,则生成与所述属性格式对应的输入数据逻辑,其中,所述属性格式包括固定数据、非固定数据、实时内部数据、实时外部数据和缓存数据;
当所述输入数据为固定数据格式时,获取所述输入数据的数据值;
当所述输入数据为非固定数据格式时,按照预设的数据模型获取所述输入数据;
当所述输入数据为实时内部数据时,获取上一原子测试步骤获取的数据确定所述输入数据;
当所述输入数据为实时外部数据时,按照预设的外部数据规则获取所述输入数据;
当所述输入数据为缓存数据时,根据所述原子对象的操作方式获取所述输入数据。
优选地,该方法还包括:
根据所述原子测试步骤中的操作方式的类型,对所述原子测试步骤进行分类,得到组合步骤;
通过操作所述组合步骤中的任一所述原子测试步骤,实现对所述组合步骤的操作。
优选地,该方法还包括:
根据预设的检查条件,对所述测试案例进行逻辑验证。
根据本发明的第二方面,提供了一种测试案例设计装置,该装置包括:
测试对象模块,用于依据界面对象信息创建界面对象模型,并根据所述界面对象模型设置测试对象模版,其中,所述界面对象信息包括界面元素的基本信息、版本信息和定位信息;
测试数据模块,用于确定测试数据的测试类别,设置与所述测试类别对应的数据标识,根据所述数据标识创建测试数据模版;
测试逻辑模块,用于通过设置原子测试步骤组成要素的格式得到所述原子测试步骤的模版,并依据所述原子测试步骤模版创建测试逻辑模型,其中,所述原子测试步骤为测试步骤的子步骤,所述原子测试步骤组成要素包括原子对象、操作方式和输入数据;
测试案例生成模块,用于根据所述测试对象模版、所述测试数据模板和所述测试逻辑模型生成测试案例。
优选地,所述测试逻辑模块包括:
确定单元,用于根据原子对象的构成要素,确定所述原子对象的格式;
设置单元,用于设置所述原子对象的操作顺序和操作方式;
生成单元,用于根据输入数据的属性格式生成输入数据逻辑;
模版生成单元,用于依据所述原子对象的格式、所述操作顺序、所述操作方式和所述输入数据逻辑,生成所述原子测试步骤的模版;
组合单元,用于根据所述原子测试步骤的顺序,将所述原子测试步骤模版进行组合,得到测试逻辑模型。
优选地,所述生成单元包括:
判断子单元,用于判断所述输入数据是否满足预设的属性格式,如果是,则生成与所述属性格式对应的输入数据逻辑,其中,所述属性格式包括固定数据、非固定数据、实时内部数据、实时外部数据和缓存数据;
第一获取子单元,用于当所述输入数据为固定数据格式时,获取所述输入数据的数据值;
第二获取子单元,用于当所述输入数据为非固定数据格式时,按照预设的数据模型获取所述输入数据;
第三获取子单元,用于当所述输入数据为实时内部数据时,获取上一原子测试步骤获取的数据确定所述输入数据;
第四获取子单元,用于当所述输入数据为实时外部数据时,按照预设的外部数据规则获取所述输入数据;
第五获取子单元,用于当所述输入数据为缓存数据时,根据所述原子对象的操作方式获取所述输入数据。
优选地,该装置还包括:
分类单元,用于根据所述原子测试步骤中的操作方式的类型,对所述原子测试步骤进行分类,得到组合步骤;
操作单元,用于通过操作所述组合步骤中的任一所述原子测试步骤,实现对所述组合步骤的操作。
优选地,该装置还包括:
验证模块,用于根据预设的检查条件,对所述测试案例进行逻辑验证。
相较于现有技术,本发明依据界面对象信息设置生成了测试对象模版,实现了对测试对象的标准化设计;依据测试数据的类别信息通过设置数据标创建了测试数据模板,实现了测试数据的标准化数据,因此可以通过测试数据模版进行测试数据准备这样即使测试环境发生改变,由于采用了标准化通用模版不会影响测试数据,解决了测试数据失效的问题;并通过对原子测试步骤的各个要素的设置,得到了测试逻辑模型实现了测试逻辑标准化。最终通过测试对象模版、测试数据模版和测试逻辑模型生成了测试案例,所以该测试案例是通过标准模版进行编写获得,测试逻辑清楚,当测试人员切换后,只需了解原子步骤的编写标准,便可快速理解测试案例中包含的测试逻辑,从而实现测试资产的高效继承。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例一提供的一种测试案例设计方法的流程示意图;
图2为本发明实施例二对应的图1中所示S13步骤中的创建测试逻辑模型的流程示意图;
图3为本发明实施例三提供的一种测试案例设计装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有设定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
实施例一
参见图1为本发明实施例一提供的一种测试案例设计方法,该方法包括以下步骤:
S11、依据界面对象信息创建界面对象模型,并根据所述界面对象模型设置测试对象模版,其中,所述界面对象信息包括界面元素的基本信息、版本信息和定位信息;
需要说明的是,测试对象又可以理解为界面对象。用于描述界面元素的所有基础信息,包括界面路径、界面截图、对象名、对象描述、对象类型、对象截图等,这些信息用于在测试案例设计时筛选出合适的界面元素,在测试案例执行及测试结果分析时识别出具体的元素。其中,界面路径用来指定对象所属的界面,在实践中可以将界面路径与菜单路径或者业务层级关联起来,以方便进行检索;界面截图用来方便案例设计人员进行界面确认及界面定位。对象类型的设计是为了统一界面对象的类型名、参数及支持的操作。
版本信息:交易包含用于标记测试对象版本及格式变更的信息,包括版本号、发布时间等,这些信息用于为特定测试对象信息打上版本标签,以方便与历史版本的测试对象进行对比,识别界面元素的变更情况。
定位信息:用于人工或机器定位界面元素的信息,这些信息是实现界面级案例人员无关及执行自动化的关键。定位信息又具体分为人工定位和自动化定位两种:
人工定位描述:使得人工测试人员能够识别并控制本界面中特定对象的定位信息。在实践中,每个界面至少有一个类型为“页面”的对象,因为任何界面对象都必然存在于某个特定的页面之上。页面对象的人工定位描述为菜单路径或者嵌套层级,如果页面存在多层包含(如主页面中弹出的子页面),就用“.”分割。除页面对象以外,其他类型不为“页面”的对象,可按表达式规则可参考下式:
【页面对象】.【对象类型】(【标签类型】:【标签值】,【索引号】) (1)
公式1中,【页面对象】为该界面对象依附的页面;【对象类型】为其分类;【标签类型】及【标签值】用于通过对象周边的特征值来标识界面对象,【标签类型】包括自身标签、上方标签、下方标签、左侧标签、右侧标签、左上标签、右上标签、左下标签、右下标签等9类,【标签值】为在特定界面对象的上述标签位置,测试人员能直观看到的特征值;【索引号】为可选参数,如果页面的多个对象无法通过标签类型和标签值唯一定位,导致测试人员在定位对象时会出现歧义,则通过增加索引号的方式加以区别,索引号遵循“从上到下,从左到右”的计数原则。
自动定位描述:使得界面级自动化测试工具能够识别并控制特定界面对象的定位信息。该列的形式化表达式规则依赖于界面级自动化测试工具,如采用UFT(QTP),该值为工具“描述性编程”能识别的定位特征值,如采用Selenium,该值为特定元素定位方式及其参数,常见的元素定位方式包括name、id、tagName、className、linkText、partialLinkText、xpath、cssSelector等。
在此基础上,为了对特定界面的任意对象进行精确定位、识别及操作,还需定义了一套定位界面对象的形式化表达式规则:
【界面名】.【对象名】(【界面元素参数】) (2)
公式2中,【界面名】为界面对象所在界面的逻辑存储路径;【对象名】为界面对象模型中的对象名;【界面元素参数】并非必选项,只有当对象类型为存在参数信息的时候,才需要界面元素参数,用于实现精确定位。
S12、确定测试数据的测试类别,设置与所述测试类别对应的数据标识,根据所述数据标识创建测试数据模版;
具体的,测试数据是驱动测试案例正确执行的关键要素,基础测试数据的模型结构可分为数据结构层、数据类别层、实例数据层。并定义了一套能指向任意特定数据域的形式化规则,如下式:
【数据类别号】.【数据结构的数据列】 (3)
其中,数据类别号是各类数据的唯一标识,但定位的数据类别下有多个数据列,通过数据类别对应的数据结构可以查找包含的所有列,通过列可以定位测试数据的任意特定域。
S13、通过设置原子测试步骤组成要素的格式得到所述原子测试步骤的模版,并依据所述原子测试步骤模版创建测试逻辑模型,其中,所述原子测试步骤为测试步骤的子步骤,所述原子测试步骤组成要素包括原子对象、操作方式和输入数据;
需要说明的是,一个完成的测试步骤往往包含了多个原子测试步骤,为了设置统一的测试逻辑模块,需要对每一个测试步骤即原子测试步骤生成对应的测试模块,才能实现测试逻辑的标准化。
S14、根据所述测试对象模版、所述测试数据模板和所述测试逻辑模型生成测试案例。
需要说明的是,因为测试案例主要包括了测试对象、测试数据和测试逻辑这三方面,所以分别从这三方面进行了标准化的设计,实现了测试案例的标准化和通用性。
通过本发明实施例一公开的技术方案,依据界面对象信息设置生成了测试对象模版,实现了对测试对象的标准化设计;依据测试数据的类别信息通过设置数据标创建了测试数据模板,实现了测试数据的标准化数据,因此可以通过测试数据模版进行测试数据准备这样即使测试环境发生改变,由于采用了标准化通用模版不会影响测试数据,解决了测试数据失效的问题;并通过对原子测试步骤的各个要素的设置,得到了测试逻辑模型实现了测试逻辑标准化。最终通过测试对象模版、测试数据模版和测试逻辑模型生成了测试案例,所以该测试案例是通过标准模版进行编写获得,测试逻辑清楚,当测试人员切换后,只需了解原子步骤的编写标准,便可快速理解测试案例中包含的测试逻辑,从而实现测试资产的高效继承。
实施例二
参照本发明实施例一和图1中所描述的S11到S14步骤的具体过程,在本实施例中将对各个步骤的实现过程进行描述。
首先,设置测试对象模块,该测试对象模版主要包括基本信息、版本信息和定位信息这3类特征,具体每类信息的特点和主要功能请参见实施例一中对应的描述,在此不做赘述。
参见表1为本发明实施例中提供的测试对象(又称为界面对象)的类型定义表,在该表中将测试对象进行了标准化描述。
表1测试对象类型定义表
Figure GDA0002767758340000091
Figure GDA0002767758340000101
Figure GDA0002767758340000111
上表1中共定义了常见的12类界面对象类型,可覆盖商业银行应用系统的绝大部分界面对象。每类对象类型支持的操作是有所不同,用于标准化界面对象的操作。同时,部分对象类型具备参数信息,如列表框、树形控件等,这是由于这些对象类型需要参数的辅助来实现精确定位,如对于某个界面的列表框来说,测试逻辑是定位该列表框中某条数据,这时,列表框需要“行号”或“行值”的参数来实现对于列表框中特定数据的精确定位。
在创建了测试对象模版后,需要创建测试数据模板,测试数据模版的创建过程请参见实施例一中对应部分的描述,此处不进行赘述。
创建测试逻辑模型就是实现了测试逻辑标准化,参见图2,该过程具体包括:
S131、根据原子对象的构成要素,确定所述原子对象的格式;
S132、设置所述原子对象的操作顺序和操作方式;
S133、根据输入数据的属性格式生成输入数据逻辑;
S134、依据所述原子对象的格式、所述操作顺序、所述操作方式和所述输入数据逻辑,生成所述原子测试步骤的模版;
S135、根据所述原子测试步骤的顺序,将所述原子测试步骤模版进行组合,得到测试逻辑模型。
需要说明的是,在测试逻辑的标准化中同样包括了基本信息和版本信息,这部分请参见实施例一中的描述,测试步骤是描述测试逻辑的关键,由原子测试步骤组成。界面级联机测试案例的原子测试步骤是模拟特定界面对象进行操作,其模型如下:
(【背景数据逻辑(前置)】)【原子对象】+【操作方式】+【输入数据】(【背景数据逻辑(后置)】)(4)
如公式4所示,界面级联机测试案例的原子测试步骤是对【原子对象】执行特定【操作方式】,并处理相关的【输入数据】(并非是必要的,如点击按钮则不需要输入数据),在此过程中,可能会在测试步骤前或测试步骤后进行背景数据(被测环境铺底数据)的处理。其中,【原子对象】为特定界面的特定对象,由【界面名】、【对象名】及【界面元素参数】等3个要素构成。下面按特征顺序分别介绍模型建立。
界面对象的操作顺序:为顺序执行的每一个原子测试步骤都设置一个步骤号,用于标记操作顺序。
界面对象的操作方式:对界面对象采用的操作方式,界面对象确定后,操作其只能从其对象类型所包含的操作名(表1)中选取。
输入数据逻辑。
具体的,数据格式不同,处理方式不同,处理过程为:
判断所述输入数据是否满足预设的属性格式,如果是,则生成与所述属性格式对应的输入数据逻辑,其中,所述属性格式包括固定数据、非固定数据、实时内部数据、实时外部数据和缓存数据;
当所述输入数据为固定数据格式时,获取所述输入数据的数据值;
当所述输入数据为非固定数据格式时,按照预设的数据模型获取所述输入数据;
当所述输入数据为实时内部数据时,获取上一原子测试步骤获取的数据确定所述输入数据;
当所述输入数据为实时外部数据时,按照预设的外部数据规则获取所述输入数据;
当所述输入数据为缓存数据时,根据所述原子对象的操作方式获取所述输入数据。
具体说明,固定数据:填入固定的数据值,如下面表达式:
(【背景数据逻辑(前置)】)【原子对象】+【操作方式】+【固定数据值】(【背景数据逻辑(后置)】)(5)
非固定数据:参照测试数据标准化的模型,填入定位特定类别数据模型的表达式,如下面表达式:
(【背景数据逻辑(前置)】)【原子对象】+【操作方式】+【[特定数据模型]】(【背景数据逻辑(后置)】) (6)
实时内部数据:填入前序测试步骤的序号,以从前序步骤处获得数据,如果前序步骤不为组合步骤(将多个步骤组合到一起用于复用),则表达式如下:
(【背景数据逻辑(前置)】)【原子对象】+【操作方式】+【[前序步骤序号]】(【背景数据逻辑(后置)】) (7)
如果前序步骤为“组合步骤”,需指定关联组合步骤中的具体输入数据名或者输出数据名,在对数据结构描述之后,会对组合步骤进行具体描述,则表达式如下:
(【背景数据逻辑(前置)】)【原子对象】+【操作方式】+【[前序步骤序号.(输入/输出)数据名]】(【背景数据逻辑(后置)) (8)
实时外部数据:填入从外部获取或者生成数据的规则,主要包括3类:从被测环境数据库获取数据的SQL语句(如从被测数据库抽取特定实例数据等);从外部系统获取数据的调用指令(如通过外部系统获取验证码等);生成数据的特定规则(如通过特定密钥加密等)。如下面表达式:
(【背景数据逻辑(前置)】)【原子对象】+【操作方式】+【[外部获取/生成数据规则]】(【背景数据逻辑(后置)】) (9)
缓存数据:将特定界面元素的返回数据缓存下来。只有当原子对象的操作为“取值”时,才能输出到缓存变量,【缓存变量名】可以自定义,同一个测试逻辑模型中【缓存变量名】不允许重复。如下面表达式:
(【背景数据逻辑(前置)】)【原子对象】+取值+【[缓存变量名]】(【背景数据逻辑(后置)】) (10)
需要说明的是,原子测试步骤模型中的前置及后置背景数据逻辑相同,填入外部处理被测环境铺底数据的操作规则,主要包括两类:更新被测环境数据库的SQL语句(如修改被测数据库特定实例数据等);外部系统数据处理的调用指令(如调用批量节点等)。如下面表达式:
(【外部处理数据规则(前置)】)【原子对象】+【操作方式】+【输入数据】(【外部处理数据规则(后置)】) (11)
在本实施例的基础上,本发明的实施例还提供了一种验证方法,包括:
根据预设的检查条件,对所述测试案例进行逻辑验证。
具体的,检查条件可以有多个,用and或者or来分割,分别表示条件取并及条件取或。
检查点(【检查类型1】:【检查条件1】【and/or】【检查类型2】:【检查条件2】...)(12)针对不同的【检查类型】及【检查条件】,可细分为以下5种类型:
应用正确性:【检查类型】及【检查条件】如下列表达式。
【原子对象的属性状态】:【原子对象】 (13)
其中,【原子对象的属性状态】可以为“对象存在”、“对象不存在”、“对象可修改”、“对象不可修改”等。
预期常数:【检查类型】及【检查条件】如下列表达式。
对象取值:【原子对象(支持对象拆分/拼接)】【操作符】 (14)
其中,操作符包括:等于、不等于、包含、不包含等。
数字逻辑关系:【检查类型】及【检查条件】如下列表达式。
数字逻辑:【四则运算表达式(原子操作数为【输入数据】模型或数字常数值)】【预期数字逻辑关系】【四则运算表达式(原子操作数为【输入数据】模型或数字常数值)】(15)
其中,【预期数字逻辑关系】包括=、>、<、>=、<=、!=等等。
日期逻辑关系:【检查类型】及【检查条件】如下列表达式。
日期逻辑:【日期运算表达式(原子操作数为【输入数据】模型或数字常数值)】【预期日期逻辑关系】【日期运算表达式(原子操作数为【输入数据】模型或数字常数值)】(16)
其中,【预期日期逻辑关系】包括=、>、<、>=、<=、!=等等,分别代表等于、晚于、早于、不早于、不晚于、不等于。
其他:对于不适用上述4类结果验证逻辑的情况,填入自然语言表述的验证规则。如下面表达式:
其他:【自然语言表述验证规则】 (17)
在本实施例的基础上,本发明的实施例还包括:
根据所述原子测试步骤中的操作方式的类型,对所述原子测试步骤进行分类,得到组合步骤;
通过操作所述组合步骤中的任一所述原子测试步骤,实现对所述组合步骤的操作。
需要说明的是,是对原子测试步骤的一个复用过程。为了复用多个测试步骤,模型定义了“组合步骤”,其用于将多个测试步骤组合起来形成一个逻辑单元,供原子测试步骤使用,即一个原子步骤可以通过操作一个“组合步骤”来实现执行一连串原子测试步骤操作的目的。
就像程序设计时的函数概念,“组合步骤”将一连串的原子测试步骤逻辑封装成一个逻辑单元,其核心的测试逻辑模型与普通的界面级联机测试逻辑模型完全一致,不同的是增加了两个要素:输入数据名及输出数据名,其模型如下:
输入数据名:“组合步骤”所包含的原子测试步骤中,所有【操作方式】不为“取值”,且存在【输入数据】模型的【原子对象】对象名集合,构成输入数据名全集,可用*标记出必填输入数据名,以使所有使用该组合步骤的案例必须为其赋值。
输出数据名:“组合步骤”所包含的原子测试步骤中,所有【操作方式】为“取值”的【缓存变量名】集合,构成输出数据名全集。
基于上述“组合步骤”的测试逻辑模型,如果原子测试步骤使用特定的“组合步骤”,则如下面表达式:
(【背景数据逻辑(前置)】)组合步骤(【组合步骤号】;【输入数据规则】;【输出数据规则】)(【背景数据逻辑(后置))(18)
其中,【输入数据规则】如下面表达式:
【输入数据名1】=【输入数据1】|【输入数据名2】=【输入数据2】...(19)
上式中【输入数据名n】从“组合步骤”的输入数据名集合中选择,【输入数据n】参照【数据数据】模型,表示在使用特定“组合步骤”时,提供其所需的具体输入数据。
【输出数据规则】如下面表达式:
【输出数据名1】->【缓存变量名1】|【输出数据名2】->【缓存变量名2】... (20)
上式中【输出数据名n】从“组合步骤”的输出数据名集合中选择,【缓存变量名n】参照【缓存变量名】模型,表示在使用特定“组合步骤”时,将其输出数据缓存下来,供后续步骤使用。
根据本发明实施例二公开的技术方案,将界面对象、测试数据、测试逻辑逐个分离,最大限度降低案例设计的耦合度,减少案例维护代价,实现界面对象、测试数据、测试逻辑分别在形式上可检索。分离测试数据,通过标准化的形式描述,确保环境切换后数据不失效。明确测试逻辑中原子步骤的编写标准,使得测试逻辑表述清晰,并且可通过程序自动检查。当测试人员切换后,只需要花少量时间学习原子步骤的编写标准,便可快速理解测试案例中包含的测试逻辑,从而实现测试资产的高效继承。将通用的测试逻辑封装成组合步骤,在多个测试案例中复用,最大限度减小案例设计代价,进一步简化程序逻辑变更后的案例维护代价。总之该测试案例设计方法达到了形式规范可检索、测试逻辑可检查、与测试人员无关、减小案例设计代价、与测试环境无关、降低案例维护代价、案例执行自动化等目标,具备良好的原始创新性和普遍适用能力,能够更好地满足商业银行系统测试和变更回归测试的需求。
实施例三
与本发明实施例一和实施例二所公开的测试案例设计方法相对应,本发明的实施例三还提供了一种测试案例设计装置,参见图3,包括:
测试对象模块1,用于依据界面对象信息创建界面对象模型,并根据所述界面对象模型设置测试对象模版,其中,所述界面对象信息包括界面元素的基本信息、版本信息和定位信息;
测试数据模块2,用于确定测试数据的测试类别,设置与所述测试类别对应的数据标识,根据所述数据标识创建测试数据模版;
测试逻辑模块3,用于通过设置原子测试步骤组成要素的格式得到所述原子测试步骤的模版,并依据所述原子测试步骤模版创建测试逻辑模型,其中,所述原子测试步骤为测试步骤的子步骤,所述原子测试步骤组成要素包括原子对象、操作方式和输入数据;
测试案例生成模块4,用于根据所述测试对象模版、所述测试数据模板和所述测试逻辑模型生成测试案例。
对应的,所述测试逻辑模块3包括:
确定单元,用于根据原子对象的构成要素,确定所述原子对象的格式;
设置单元,用于设置所述原子对象的操作顺序和操作方式;
生成单元,用于根据输入数据的属性格式生成输入数据逻辑;
模版生成单元,用于依据所述原子对象的格式、所述操作顺序、所述操作方式和所述输入数据逻辑,生成所述原子测试步骤的模版;
组合单元,用于根据所述原子测试步骤的顺序,将所述原子测试步骤模版进行组合,得到测试逻辑模型。
相应的,所述生成单元包括:
判断子单元,用于判断所述输入数据是否满足预设的属性格式,如果是,则生成与所述属性格式对应的输入数据逻辑,其中,所述属性格式包括固定数据、非固定数据、实时内部数据、实时外部数据和缓存数据;
第一获取子单元,用于当所述输入数据为固定数据格式时,获取所述输入数据的数据值;
第二获取子单元,用于当所述输入数据为非固定数据格式时,按照预设的数据模型获取所述输入数据;
第三获取子单元,用于当所述输入数据为实时内部数据时,获取上一原子测试步骤获取的数据确定所述输入数据;
第四获取子单元,用于当所述输入数据为实时外部数据时,按照预设的外部数据规则获取所述输入数据;
第五获取子单元,用于当所述输入数据为缓存数据时,根据所述原子对象的操作方式获取所述输入数据。
具体的,该装置还包括:
分类单元,用于根据所述原子测试步骤中的操作方式的类型,对所述原子测试步骤进行分类,得到组合步骤;
操作单元,用于通过操作所述组合步骤中的任一所述原子测试步骤,实现对所述组合步骤的操作。
相应的,该装置还包括:
验证模块,用于根据预设的检查条件,对所述测试案例进行逻辑验证。
在本发明的实施例三中,依据界面对象信息设置生成了测试对象模版,实现了对测试对象的标准化设计;依据测试数据的类别信息通过设置数据标创建了测试数据模板,实现了测试数据的标准化数据,因此可以通过测试数据模版进行测试数据准备这样即使测试环境发生改变,由于采用了标准化通用模版不会影响测试数据,解决了测试数据失效的问题;并通过对原子测试步骤的各个要素的设置,得到了测试逻辑模型实现了测试逻辑标准化。最终通过测试对象模版、测试数据模版和测试逻辑模型生成了测试案例,所以该测试案例是通过标准模版进行编写获得,测试逻辑清楚,当测试人员切换后,只需了解原子步骤的编写标准,便可快速理解测试案例中包含的测试逻辑,从而实现测试资产的高效继承。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (3)

1.一种测试案例生成装置,其特征在于,该装置包括:
测试对象模块,用于依据界面对象信息创建界面对象模型,并根据所述界面对象模型设置测试对象模版,其中,所述界面对象信息包括界面元素的基本信息、版本信息和定位信息;
测试数据模块,用于确定测试数据的测试类别,设置与所述测试类别对应的数据标识,根据所述数据标识创建测试数据模版;
测试逻辑模块,用于通过设置原子测试步骤组成要素的格式得到原子测试步骤的模版,并依据所述原子测试步骤的模版创建测试逻辑模型,其中,所述原子测试步骤为测试步骤的子步骤,所述原子测试步骤组成要素包括原子对象、操作方式和输入数据;
测试案例生成模块,用于根据所述测试对象模版、所述测试数据模板和所述测试逻辑模型生成测试案例;
所述测试逻辑模块包括:
确定单元,用于根据原子对象的构成要素,确定所述原子对象的格式;
设置单元,用于设置所述原子对象的操作顺序和操作方式;
生成单元,用于根据输入数据的属性格式生成输入数据逻辑;
模版生成单元,用于依据所述原子对象的格式、所述操作顺序、所述操作方式和所述输入数据逻辑,生成所述原子测试步骤的模版;
组合单元,用于根据所述原子测试步骤的顺序,将所述原子测试步骤的模版进行组合,得到测试逻辑模型;
该装置还包括:
分类单元,用于根据所述原子测试步骤中的操作方式的类型,对所述原子测试步骤进行分类,得到组合步骤,所述组合步骤表示将一连串的原子测试步骤进行逻辑封装成的逻辑单元;
操作单元,用于通过操作所述组合步骤,实现对所述一连串原子测试步骤的操作;
其中,测试对象、测试数据和测试逻辑进行了标准化描述。
2.根据权利要求1所述的装置,其特征在于,所述生成单元包括:
判断子单元,用于判断所述输入数据是否满足预设的属性格式,如果是,则生成与所述属性格式对应的输入数据逻辑,其中,所述属性格式包括固定数据、非固定数据、实时内部数据、实时外部数据和缓存数据;
第一获取子单元,用于当所述输入数据为固定数据格式时,获取所述输入数据的数据值;
第二获取子单元,用于当所述输入数据为非固定数据格式时,按照预设的数据模型获取所述输入数据;
第三获取子单元,用于当所述输入数据为实时内部数据时,获取上一原子测试步骤获取的数据确定所述输入数据;
第四获取子单元,用于当所述输入数据为实时外部数据时,按照预设的外部数据规则获取所述输入数据;
第五获取子单元,用于当所述输入数据为缓存数据时,根据所述原子对象的操作方式获取所述输入数据。
3.根据权利要求1所述的装置,其特征在于,该装置还包括:
验证模块,用于根据预设的检查条件,对所述测试案例进行逻辑验证。
CN201711129215.3A 2017-11-15 2017-11-15 一种测试案例设计方法及装置 Active CN107908559B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711129215.3A CN107908559B (zh) 2017-11-15 2017-11-15 一种测试案例设计方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711129215.3A CN107908559B (zh) 2017-11-15 2017-11-15 一种测试案例设计方法及装置

Publications (2)

Publication Number Publication Date
CN107908559A CN107908559A (zh) 2018-04-13
CN107908559B true CN107908559B (zh) 2021-05-07

Family

ID=61845454

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711129215.3A Active CN107908559B (zh) 2017-11-15 2017-11-15 一种测试案例设计方法及装置

Country Status (1)

Country Link
CN (1) CN107908559B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110309047B (zh) * 2019-04-16 2023-09-19 中国银行股份有限公司 一种测试点生成方法、装置及系统
CN110362496B (zh) * 2019-07-19 2023-03-21 宜人恒业科技发展(北京)有限公司 测试用例验证方法及装置
CN112579465A (zh) * 2020-12-25 2021-03-30 中国农业银行股份有限公司 一种测试案例执行方法、装置、存储介质和设备
CN113553334A (zh) * 2021-07-23 2021-10-26 中信银行股份有限公司 通过组合变更模版执行变更的方法、装置、终端设备及存储介质
CN116094973B (zh) * 2023-03-06 2023-06-16 深圳市华曦达科技股份有限公司 用于用户端设备广域网管理协议的测试方法和装置
CN116383094B (zh) * 2023-06-05 2023-08-25 中国空气动力研究与发展中心计算空气动力研究所 一种测试用例库构建方法、装置、设备及存储介质

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101339534A (zh) * 2008-06-17 2009-01-07 金蝶软件(中国)有限公司 一种软件测试的方法及装置
CN101377759A (zh) * 2008-08-26 2009-03-04 中国工商银行股份有限公司 自动化界面测试系统
CN101908015A (zh) * 2009-06-04 2010-12-08 中国工商银行股份有限公司 一种基于构件生成测试案例的装置及方法
CN102135938A (zh) * 2011-03-21 2011-07-27 中国工商银行股份有限公司 一种软件产品测试方法及系统
CN102799532A (zh) * 2012-07-20 2012-11-28 上海斐讯数据通信技术有限公司 测试用例的设计方法及系统
CN102981958A (zh) * 2012-12-19 2013-03-20 青岛海信传媒网络技术有限公司 软件测试方法和测试装置
CN103164328A (zh) * 2011-12-12 2013-06-19 中国移动通信集团陕西有限公司 一种业务功能的回归测试方法、装置及系统
CN103235757A (zh) * 2013-04-28 2013-08-07 中国工商银行股份有限公司 基于自动化造数对输入域测试对象进行测试的装置和方法
CN103853652A (zh) * 2012-11-29 2014-06-11 百度在线网络技术(北京)有限公司 一种测试案例生成方法及装置
CN105095067A (zh) * 2014-05-21 2015-11-25 北京奇虎科技有限公司 用户界面元素对象识别及自动化测试的方法和装置
CN105808416A (zh) * 2014-12-27 2016-07-27 南车株洲电力机车研究所有限公司 一种人机图形交互界面的自动化测试方法和系统
US9424167B2 (en) * 2014-05-21 2016-08-23 Cgi Technologies And Solutions Inc. Automated testing of an application system
CN105955890A (zh) * 2016-05-13 2016-09-21 中国建设银行股份有限公司 一种功能测试案例的生成方法及装置
CN106021102A (zh) * 2016-05-16 2016-10-12 北京奇虎科技有限公司 自动化测试文件的生成方法及装置
CN106201899A (zh) * 2016-07-29 2016-12-07 普元信息技术股份有限公司 基于业务分析实现自动生成测试案例的系统和方法
CN106528424A (zh) * 2015-12-16 2017-03-22 中国民生银行股份有限公司 基于后台系统服务或接口的测试方法和测试平台

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101339534A (zh) * 2008-06-17 2009-01-07 金蝶软件(中国)有限公司 一种软件测试的方法及装置
CN101377759A (zh) * 2008-08-26 2009-03-04 中国工商银行股份有限公司 自动化界面测试系统
CN101908015A (zh) * 2009-06-04 2010-12-08 中国工商银行股份有限公司 一种基于构件生成测试案例的装置及方法
CN102135938A (zh) * 2011-03-21 2011-07-27 中国工商银行股份有限公司 一种软件产品测试方法及系统
CN103164328A (zh) * 2011-12-12 2013-06-19 中国移动通信集团陕西有限公司 一种业务功能的回归测试方法、装置及系统
CN102799532A (zh) * 2012-07-20 2012-11-28 上海斐讯数据通信技术有限公司 测试用例的设计方法及系统
CN103853652A (zh) * 2012-11-29 2014-06-11 百度在线网络技术(北京)有限公司 一种测试案例生成方法及装置
CN102981958A (zh) * 2012-12-19 2013-03-20 青岛海信传媒网络技术有限公司 软件测试方法和测试装置
CN103235757A (zh) * 2013-04-28 2013-08-07 中国工商银行股份有限公司 基于自动化造数对输入域测试对象进行测试的装置和方法
CN105095067A (zh) * 2014-05-21 2015-11-25 北京奇虎科技有限公司 用户界面元素对象识别及自动化测试的方法和装置
US9424167B2 (en) * 2014-05-21 2016-08-23 Cgi Technologies And Solutions Inc. Automated testing of an application system
CN105808416A (zh) * 2014-12-27 2016-07-27 南车株洲电力机车研究所有限公司 一种人机图形交互界面的自动化测试方法和系统
CN106528424A (zh) * 2015-12-16 2017-03-22 中国民生银行股份有限公司 基于后台系统服务或接口的测试方法和测试平台
CN105955890A (zh) * 2016-05-13 2016-09-21 中国建设银行股份有限公司 一种功能测试案例的生成方法及装置
CN106021102A (zh) * 2016-05-16 2016-10-12 北京奇虎科技有限公司 自动化测试文件的生成方法及装置
CN106201899A (zh) * 2016-07-29 2016-12-07 普元信息技术股份有限公司 基于业务分析实现自动生成测试案例的系统和方法

Also Published As

Publication number Publication date
CN107908559A (zh) 2018-04-13

Similar Documents

Publication Publication Date Title
CN107908559B (zh) 一种测试案例设计方法及装置
US5787006A (en) Apparatus and method for management of integrated circuit layout verification processes
Wasserman et al. The future of programming
US9189377B1 (en) Automation testing using descriptive maps
Wang et al. Formalizing and integrating the dynamic model within OMT
US20070006128A1 (en) Method for evaluating dynamic expressions
CN108932192A (zh) 一种基于抽象语法树的Python程序类型缺陷检测方法
US20050149868A1 (en) User interface application development program and development apparatus
CN108710571B (zh) 一种生成自动化测试代码的方法和装置
CN108694114A (zh) 用于分离测试用例、测试脚本和测试数据的方法及其系统
CN114168565B (zh) 业务规则模型的回溯测试方法、装置、系统及决策引擎
CN117891447A (zh) 一种企业管理软件开发方法、装置、设备及介质
Dakrory et al. Automated ETL testing on the data quality of a data warehouse
CN100428243C (zh) 用于在模型上实现动作的方法和系统
CN103049504A (zh) 基于源代码查询的半自动插桩方法
Elaasar et al. VPML: an approach to detect design patterns of MOF-based modeling languages
US8239362B1 (en) Using metadata fragments as authoritative manufacturing work instructions
Scullard Test case selection using VDM
Vanhecke et al. Abscon: a test concretizer for model-based testing
Vidoni et al. Towards a taxonomy of Roxygen documentation in R packages
Contreras-Ochando et al. Domain specific induction for data wrangling automation
Nakamura et al. Enabling analysis and measurement of conventional software development documents using project-specific formalism
CN116485597B (zh) 基于岗位能力模型的标准化实训方法
CN111581184B (zh) 基于数据库迁移的语义对比方法及装置
KR100656559B1 (ko) Bibd 방법론을 이용하는 프로그램 자동 개발 장치

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20221114

Address after: 100005 No. 69, inner main street, Dongcheng District, Beijing, Jianguomen

Patentee after: AGRICULTURAL BANK OF CHINA

Patentee after: Agricultural Bank of China Financial Technology Co.,Ltd.

Address before: 100005 No. 69, inner main street, Dongcheng District, Beijing, Jianguomen

Patentee before: AGRICULTURAL BANK OF CHINA