CN111949553B - 一种基于规则引擎的场景用例测试方法及装置 - Google Patents

一种基于规则引擎的场景用例测试方法及装置 Download PDF

Info

Publication number
CN111949553B
CN111949553B CN202010923122.3A CN202010923122A CN111949553B CN 111949553 B CN111949553 B CN 111949553B CN 202010923122 A CN202010923122 A CN 202010923122A CN 111949553 B CN111949553 B CN 111949553B
Authority
CN
China
Prior art keywords
rule
tested
business
case
test case
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
CN202010923122.3A
Other languages
English (en)
Other versions
CN111949553A (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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202010923122.3A priority Critical patent/CN111949553B/zh
Publication of CN111949553A publication Critical patent/CN111949553A/zh
Application granted granted Critical
Publication of CN111949553B publication Critical patent/CN111949553B/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
    • 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/3688Test management for test execution, e.g. scheduling of test suites
    • 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/3692Test management for test results analysis

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)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开一种基于规则引擎的场景用例测试方法及装置,将待测场景的所有业务规则定义为规则引擎的规则体形式;将定义后的业务规则存储于规则库,规则引擎根据业务规则的规则体形式获知所有业务规则对应的所有业务规则模式;在事实库执行待测测试用例,通过规则引擎将所执行待测测试用例的业务规则模式与规则库中所包含的业务规则模式相匹配;若待测测试用例执行成功,且在规则库内未匹配到相应业务规则模式,则将该待测测试用例的业务规则模式增加到规则库。本发明降低业务规则与场景测试的耦合性,减小工作量,提升工作效率。

Description

一种基于规则引擎的场景用例测试方法及装置
技术领域
本发明涉及场景用例测试领域,具体涉及一种基于规则引擎的场景用例测试方法及装置。
背景技术
在测试一套完整的IT系统时,会涉及到较多的业务规则配置, 每个业务规则都会需要一个或多个前置条件和预期结果来构成一个完整的事务或场景。业务规则之间还需要排列优先级,以达到后续的业务规则才能执行。为了更好的测试IT系统,测试人员需要尽可能在不同层级的业务规则之间进行枚举、排列、组合,以覆盖更好的业务场景,达到完美的测试结果。但是面对更多的场景,业务规则多,业务规则之间相互依赖,耦合度高,就会造成测试人员在构造业务场景时,工作量较多,测试场景可能产生遗漏,或者当业务规则发生变动时,要重新进行枚举、排列、组合。从头捋逻辑,在合适的地方进行添加或删除业务规则,修改前置条件和预期判断。
发明内容
为解决上述问题,本发明提供一种基于规则引擎的场景用例测试方法及装置,减少测试人员工作量,提升工作效率。
本发明的技术方案是:一种基于规则引擎的场景用例测试方法,包括以下步骤:
将待测场景的所有业务规则定义为规则引擎的规则体形式;
将定义后的业务规则存储于规则库,规则引擎根据业务规则的规则体形式获知所有业务规则对应的所有业务规则模式;
在事实库执行待测测试用例,通过规则引擎将所执行待测测试用例的业务规则模式与规则库中所包含的业务规则模式相匹配;
若待测测试用例执行成功,且在规则库内未匹配到相应业务规则模式,则将该待测测试用例的业务规则模式增加到规则库。
进一步地,该方法还包括:
若待测测试用例执行不成功,且在规则库内匹配到相应业务规则模式,则返回该待测测试用例为失败用例或同时将该待测测试用例的业务规则模式从规则库中删除。
进一步地,该方法还包括:
若待测测试用例执行成功,且在规则库内匹配到相应业务规则模式,则返回该待测测试用例为成功用例。
进一步地,事实库中的待测测试用例包含规则库中所有测试用例和在规则库中测试用例基础上改动的新增测试用例。
进一步地,将待测场景的所有业务规则所定义的规则体,包括条件部分和结果部分,其中条件部分为执行对应业务规则所依赖的前置条件,结果部分为对应业务规则的执行优先级。
进一步地,规则库中,规则引擎将定义后的业务规则转换为业务规则执行树,具体为:
将优先级最高的业务规则作为起始节点;
某一层的前置条件为该层的上一层业务规则;
前置条件相同的业务规则设置在同一层;执行相关测试用例时,同一层内的业务规则按优先级依次执行。
本发明的技术方案还包括一种基于规则引擎的场景用例测试装置,包括,
业务规则定义模块:将待测场景的所有业务规则定义为规则引擎的规则体形式;
业务规则存储模块:将定义后的业务规则存储于规则库,规则引擎根据业务规则的规则体形式获知所有业务规则对应的所有业务规则模式;
测试用例执行模块:在事实库执行待测测试用例;
模式匹配模块:通过规则引擎将所执行待测测试用例的业务规则模式与规则库内所存储的业务规则模式相匹配;
结果反馈处理模块:若待测测试用例执行成功,且在规则库内未匹配到相应业务规则模式,则将该待测测试用例的业务规则模式增加到规则库。
进一步地,结果反馈处理模块在待测测试用例执行不成功,且在规则库内匹配到相应业务规则模式时,则返回该待测测试用例为失败用例或同时将该待测测试用例的业务规则模式从规则库中删除。
进一步地,结果反馈处理模块在待测测试用例执行成功,且在规则库内匹配到相应业务规则模式时,则返回该待测测试用例为成功用例。
进一步地,事实库中的待测测试用例包含新增测试用例和规则库中所有测试用例和在规则库中测试用例基础上改动的新增测试用例。
本发明提供的一种基于规则引擎的场景用例测试方法及装置,使规则引擎与场景测试相结合,将业务规则定义为规则体后,由规则引擎自动获知所有业务规则模式,根据模式匹配在业务规则变动产生测试用例修改时,反馈测试用例执行失败提示,可根据需要将变动的测试用例增加到规则库,降低了业务规则与场景测试的耦合性,减小了测试人员的工作量,提升了工作效率,减少了遗漏场景。
附图说明
图1是本发明具体实施例一方法流程示意图;
图2是本发明具体实施例二结构示意框图。
具体实施方式
下面结合附图并通过具体实施例对本发明进行详细阐述,以下实施例是对本发明的解释,而本发明并不局限于以下实施方式。
实施例一
如图1所示,本实施例提供一种基于规则引擎的场景用例测试方法,包括以下步骤:
S1,将待测场景的所有业务规则定义为规则引擎的规则体形式;
将业务规则定义为规则引擎的规则体形式即对业务规则进行规则体处理,为业务规则添加条件部分(LHS,Left Hand Side)和结果部分(RHS,Right Hand Side)。其中条件部分为执行对应业务规则所依赖的前置条件,结果部分为对应业务规则的执行优先级。其中执行优先级是指执行完该业务规则后,以怎样的顺序去执行后续的业务规则,执行优先级根据不同的测试场景具体设置。
S2,将定义后的业务规则存储于规则库,规则引擎根据业务规则的规则体形式获知所有业务规则对应的所有业务规则模式;
如步骤S1,业务规则具有条件部分和结果部分,根据各个业务规则的条件部分和结果部分即可获知每个业务规则所依赖的前置条件和接下来要执行的方向,各个业务规则之间业务执行结构即业务规则模式。对一个具体的测试用例来说,其包括特定的业务规则,这些业务规则之间的执行结构或者说执行顺序,即该测试用例的业务规则模式。
规则库中,各个业务规则的条件部分和结果部分是已知的,即可建立业务规则执行树,业务规则执行树上每一执行分支表示一测试用例,每个测试用例中各业务规则之间的执行结构关系即对应测试用例的业务规则模式;
规则引擎通过规则体的条件部分和结果部分将业务规则转换为业务规则执行树,转换规则为:
(1)将优先级最高的业务规则作为起始节点;后续的每个业务规则都会依赖此节点执行;
(2)某一层的前置条件为该层的上一层业务规则;例如业务规则执行树的某一条分支为A-B-C-D,其中A为起始节点,B的前置条件为A,即B必须在A之后执行,C的前置条件,即C必须在B之后执行;
(3)前置条件相同的业务规则设置在同一层;执行相关测试用例时,同一层内的业务规则按优先级依次执行。例如某一条分支为A-B-C/D/E-F,其中C、D、F的前置条件均为B,C、D、E的优先级依次降低,执行时C、D、E按优先级高低依次执行。
S3,在事实库执行待测测试用例,并通过规则引擎将所执行待测测试用例的业务规则模式与规则库内所存储的业务规则模式相匹配;
需要说明的是,事实库中预存有待测测试用例,所预存的待测测试用例包含规则库中所有测试用例和在规则库中测试用例基础上改动的新增测试用例。执行规则库中对应的测试用例可验证规则库中的测试用例是否可执行,是正确用例还是失败用例。新增测试用例是指与规则库中测试用例不同的用例,为覆盖更好的测试场景,测试人员可根据合理设置增加新的测试用例。
S4,若待测测试用例执行成功,且在规则库内未匹配到相应业务规则模式,则返回系统有更新;
若待测测试用例执行成功,说明该待测测试用例为成功用例,但规则库中无对应测试用例,说明系统有更新,测试人员根据提示可进行下一步处理。
例如若待测测试用例执行一次或多次均成功,且在规则库内未匹配到相应业务规则模式,则将该待测测试用例的业务规则模式增加到规则库。
另外,对其他执行结果和匹配结果,本实施例作以下处理。
S5,若待测测试用例执行成功,且在规则库内匹配到相应业务规则模式,则返回该待测测试用例为成功用例;
待测测试用例的业务规则模式存在于规则库,且待测测试用例成功,说明该待测测试用例为成功用例,且执行过程中系统无故障。
S6,若待测测试用例执行不成功,且在规则库内匹配到相应业务规则模式,则返回该待测测试用例为失败用例或同时将该待测测试用例的业务规则模式从规则库中删除;
若待测测试用例执行不成功,则该待测测试用例为失败用例,但规则库中存储有对应测试用例,返回该待测测试用例为失败用例,测试人员接收到提示以进一步进行处理。
例如若待测测试用例执行一次或多次均不成功,且在规则库内匹配到相应业务规则模式,则将该待测测试用例的业务规则模式从规则库中删除。需要说明的是,出现执行不成功情况,也可能是系统bug,测试人员根据具体情况对异常情况进行处理。
经过上述步骤,经过自学习的方法将场景增加到规则库,从而节省人工去规则库中添加场景用例的时间,提高测试效率,且可覆盖尽可能多的场景测试。
实施例二
如图2所示,在实施例一基础上,本实施例提供一种基于规则引擎的场景用例测试装置,包括以下功能模块。
业务规则定义模块101:将待测场景的所有业务规则定义为规则引擎的规则体形式;
执行树转换模块102:将定义后的业务规则存储于规则库,规则引擎根据业务规则的规则体形式获知所有业务规则对应的所有业务规则模式;
测试用例执行模块103:在事实库执行待测测试用例;需要说明的是,事实库中的待测测试用例包含新增测试用例和规则库中所有测试用例和在规则库中测试用例基础上改动的新增测试用例,以验证现有测试用例并增加新的用例,以覆盖更多的测试场景;
模式匹配模块104:通过规则引擎将所执行待测测试用例的业务规则模式与规则库内所存储的业务规则模式相匹配;
结果反馈处理模块105:若待测测试用例执行成功,且在规则库内未匹配到相应业务规则模式,则将该待测测试用例的业务规则模式增加到规则库。
结果反馈处理模块105对其他执行结果和匹配结果处理如下:在待测测试用例执行不成功,且在规则库内匹配到相应业务规则模式时,则返回该待测测试用例为失败用例或同时将该待测测试用例的业务规则模式从规则库中删除;在待测测试用例执行成功,且在规则库内匹配到相应业务规则模式时,则返回该待测测试用例为成功用例。
具体实施时,若待测测试用例执行一次或多次均成功,且在规则库内未匹配到相应业务规则模式,则将该待测测试用例的业务规则模式增加到规则库。即通过自学习的方式在系统有更新,需覆盖更多的测试场景时,将新的测试用例进行存储。
若待测测试用例执行一次或多次均不成功,且在规则库内匹配到相应业务规则模式,则将该待测测试用例的业务规则模式从规则库中删除。即若某测试用例多次未执行成功,则可能该测试用例为无用用例,可将该测试用例在规则库中删除。
以上公开的仅为本发明的优选实施方式,但本发明并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本发明原理前提下所作的若干改进和润饰,都应落在本发明的保护范围内。

Claims (6)

1.一种基于规则引擎的场景用例测试方法,其特征在于,包括以下步骤:
将待测场景的所有业务规则定义为规则引擎的规则体形式;
将定义后的业务规则存储于规则库,规则引擎根据业务规则的规则体形式获知所有业务规则对应的所有业务规则模式;
在事实库执行待测测试用例,通过规则引擎将所执行待测测试用例的业务规则模式与规则库中所包含的业务规则模式相匹配;
若待测测试用例执行成功,且在规则库内未匹配到相应业务规则模式,则将该待测测试用例的业务规则模式增加到规则库;
若待测测试用例执行不成功,且在规则库内匹配到相应业务规则模式,则返回该待测测试用例为失败用例或同时将该待测测试用例的业务规则模式从规则库中删除;
若待测测试用例执行成功,且在规则库内匹配到相应业务规则模式,则返回该待测测试用例为成功用例。
2.根据权利要求1所述的基于规则引擎的场景用例测试方法,其特征在于,事实库中的待测测试用例包含规则库中所有测试用例和在规则库中测试用例基础上改动的新增测试用例。
3.根据权利要求2所述的基于规则引擎的场景用例测试方法,其特征在于,将待测场景的所有业务规则所定义的规则体,包括条件部分和结果部分,其中条件部分为执行对应业务规则所依赖的前置条件,结果部分为对应业务规则的执行优先级。
4.根据权利要求3所述的基于规则引擎的场景用例测试方法,其特征在于,规则库中,规则引擎将定义后的业务规则转换为业务规则执行树,具体为:
将优先级最高的业务规则作为起始节点;
某一层的前置条件为该层的上一层业务规则;
前置条件相同的业务规则设置在同一层;执行相关测试用例时,同一层内的业务规则按优先级依次执行。
5.一种基于规则引擎的场景用例测试装置,其特征在于,包括,
业务规则定义模块:将待测场景的所有业务规则定义为规则引擎的规则体形式;
业务规则存储模块:将定义后的业务规则存储于规则库,规则引擎根据业务规则的规则体形式获知所有业务规则对应的所有业务规则模式;
测试用例执行模块:在事实库执行待测测试用例;
模式匹配模块:通过规则引擎将所执行待测测试用例的业务规则模式与规则库内所存储的业务规则模式相匹配;
结果反馈处理模块:若待测测试用例执行成功,且在规则库内未匹配到相应业务规则模式,则将该待测测试用例的业务规则模式增加到规则库;
结果反馈处理模块在待测测试用例执行不成功,且在规则库内匹配到相应业务规则模式时,则返回该待测测试用例为失败用例或同时将该待测测试用例的业务规则模式从规则库中删除;
结果反馈处理模块在待测测试用例执行成功,且在规则库内匹配到相应业务规则模式时,则返回该待测测试用例为成功用例。
6.根据权利要求5所述的基于规则引擎的场景用例测试装置,其特征在于,事实库中的待测测试用例包含新增测试用例和规则库中所有测试用例和在规则库中测试用例基础上改动的新增测试用例。
CN202010923122.3A 2020-09-04 2020-09-04 一种基于规则引擎的场景用例测试方法及装置 Active CN111949553B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010923122.3A CN111949553B (zh) 2020-09-04 2020-09-04 一种基于规则引擎的场景用例测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010923122.3A CN111949553B (zh) 2020-09-04 2020-09-04 一种基于规则引擎的场景用例测试方法及装置

Publications (2)

Publication Number Publication Date
CN111949553A CN111949553A (zh) 2020-11-17
CN111949553B true CN111949553B (zh) 2022-08-12

Family

ID=73357429

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010923122.3A Active CN111949553B (zh) 2020-09-04 2020-09-04 一种基于规则引擎的场景用例测试方法及装置

Country Status (1)

Country Link
CN (1) CN111949553B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112363953B (zh) * 2020-12-09 2023-12-05 中材邦业(杭州)智能技术有限公司 基于爬虫技术和规则引擎的接口测试用例生成方法及系统
CN114625441A (zh) * 2022-03-11 2022-06-14 平安普惠企业管理有限公司 规则配置方法、装置、计算机设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107783893A (zh) * 2016-08-26 2018-03-09 上海计算机软件技术开发中心 一种基于场景描述的自动测试系统及其实现方法
CN110428054A (zh) * 2019-08-07 2019-11-08 浪潮云信息技术有限公司 基于编译技术的业务规则引擎模式匹配系统及实现方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107783893A (zh) * 2016-08-26 2018-03-09 上海计算机软件技术开发中心 一种基于场景描述的自动测试系统及其实现方法
CN110428054A (zh) * 2019-08-07 2019-11-08 浪潮云信息技术有限公司 基于编译技术的业务规则引擎模式匹配系统及实现方法

Also Published As

Publication number Publication date
CN111949553A (zh) 2020-11-17

Similar Documents

Publication Publication Date Title
CN111949553B (zh) 一种基于规则引擎的场景用例测试方法及装置
US7539980B1 (en) Method and apparatus for concurrency testing within a model-based testing environment
CN108255717B (zh) 接口自动化测试优化方法、系统、电子设备和存储介质
CN107015902B (zh) 一种测试方法和设备
CN112433944A (zh) 业务测试方法、装置、计算机设备和存储介质
CN111327490A (zh) 区块链的拜占庭容错检测方法及相关装置
CN110704312A (zh) 压力测试的方法、装置、计算机设备和存储介质
CN104793942A (zh) 一种客户端软件开发的方法
CN108319551B (zh) 一种软件的测试方法、装置、计算机设备及可读存储介质
CN117195129A (zh) 一种基于沙箱系统的异常处理方法及相关设备
CN112858876A (zh) 一种自适应的芯片自动化测试方法
CN111797588A (zh) 一种形式验证比较点匹配方法、系统、处理器及存储器
WO2016151710A1 (ja) 仕様構成装置および方法
CN111078476A (zh) 一种网卡驱动固件稳定性测试方法、系统、终端及存储介质
WO2005059744A1 (en) A method of automatically generating test scripts from a system specification model
CN112699648B (zh) 数据处理方法及装置
CN110347609B (zh) 一种测试区块链软件的方法及装置
CN106021098A (zh) 一种批量运行脚本的测试系统
CN111880809B (zh) 一种部署hue服务的方法及系统
CN110808878A (zh) 一种基于冗余网络拓扑的自动更新测试方法
US7286646B2 (en) Subscriber line validation of a telephone network
CN113938450B (zh) 航电系统通信故障处理方法、装置、计算机设备和介质
CN115237814B (zh) 自动生成接口测试案例的方法及系统、存储介质、设备
CN110943858B (zh) 一种故障定位方法及装置
JP5251086B2 (ja) 半導体集積回路の検証装置、方法及びプログラム

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