CN113468057A - 基于业务流程模型自动生成测试用例的方法 - Google Patents
基于业务流程模型自动生成测试用例的方法 Download PDFInfo
- Publication number
- CN113468057A CN113468057A CN202110769291.0A CN202110769291A CN113468057A CN 113468057 A CN113468057 A CN 113468057A CN 202110769291 A CN202110769291 A CN 202110769291A CN 113468057 A CN113468057 A CN 113468057A
- Authority
- CN
- China
- Prior art keywords
- test
- model
- path
- automatically
- business process
- 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.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 102
- 238000000034 method Methods 0.000 title claims abstract description 69
- 230000008569 process Effects 0.000 title claims abstract description 34
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 18
- 230000000694 effects Effects 0.000 claims abstract description 3
- 230000009471 action Effects 0.000 claims description 29
- 230000000007 visual effect Effects 0.000 claims description 8
- BUGBHKTXTAQXES-UHFFFAOYSA-N Selenium Chemical compound [Se] BUGBHKTXTAQXES-UHFFFAOYSA-N 0.000 claims description 3
- 229910052711 selenium Inorganic materials 0.000 claims description 3
- 239000011669 selenium Substances 0.000 claims description 3
- 230000007547 defect Effects 0.000 claims description 2
- 238000001514 detection method Methods 0.000 claims description 2
- 238000002813 epsilometer test Methods 0.000 claims description 2
- 230000010354 integration Effects 0.000 claims description 2
- 230000003993 interaction Effects 0.000 claims description 2
- 238000005457 optimization Methods 0.000 claims description 2
- 238000010998 test method Methods 0.000 claims description 2
- 238000013522 software testing Methods 0.000 abstract description 4
- 238000004458 analytical method Methods 0.000 description 2
- 230000000875 corresponding effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 241001303755 Porpita porpita Species 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
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
本发明涉及计算机软件测试技术领域,更具体的说是涉及基于业务流程模型自动生成测试用例的方法,测试用例的生成工作是指选定被测任务、分析输入数据、确定其取值、并分析对应的输出数据。生成测试用例再软件测试中占很大的比重,如果该过程能够自动实现,则会极大地减少软件开发的周期与费用,本发明公开了一种基于业务流程模型自动生成测试用例的方法(AutoTCG工具,以下简称AutoTCG)。这种技术结合了业务流程的模型设计,并在满足活动约束条件组合覆盖准则的前提下,设计了相应的测试用例生成算法,能根据用户参数设计自动生成覆盖率最广的测试用例,从而提高的测试效率。
Description
技术领域
本发明涉及计算机软件测试技术领域,更具体的说是涉及基于业务流程模型自动生成测试用例的方法。
背景技术
软件测试软件生命周期中比不缺少的部分,而实现软件测试需要进行测试用例的设计,尽管每个测试人员都掌握了不少的测试用例设计技术与方法,例如:等价类划分、状态转换测试等,但是如何将它们应用到具体的测试对象测试中去,很多测试人员都会感觉有些力不从心,甚至有无从下手的感觉。
发明内容
有鉴于此,本发明目的在于提供一种基于业务流程模型自动生成测试用例的方法,采用先进的数学算法,可实现全面科学的测试覆盖;基于业务流程模型自动生成测试用例,适用于嵌入式软件测试、web应用测试、移动app测试、桌面软件测试等多种自动化测试场景。
为实现上述目的,本发明提供如下技术方案:
基于业务流程模型自动生成测试用例的方法,其特征在于,包括以下步骤:(1)使用遵循BPMN2.0规范的方法对被测系统业务流程进行可视化建模:基于BPMN2.0标准的开源框架activiti或mxgraph,实现WEB前端Vue框架+Vuetify等组件等代码绘制业务工作流模板,建立软件业务为模型,层次化的测试模型,针对业务逻辑所要实现的需求,进行子模型的嵌套,进行下层建模,可视化模型可以考察各个业务逻辑模型之间的交互,使我们建立好的模型,更加清晰的表现出要实现的业务逻辑;(2)通过JavaScript等语言解析WEB前端所绘制的业务流程模型会自动生成业务流配置:即根据模型表达的业务逻辑自动生成代码;这种可视化的配置过程能够让所有人都轻松理解,并可通过图形化的展示发现流程中冗余的地方,促进工作流的不断优化,提高了业务流程模板的质量,获得模型化的测试需求;(3)然后,采用路径深度覆盖算法生成测试路径。
优选的,在上述一种基于业务流程模型自动生成测试用例的方法中,根据测试需求绘制的模型此模型中有两个网关节点,但是我们可以清晰的看出,此模型有三条路径,该算法就是根据用户绘制好的模型以及模型中网关出现的次数、开始节点个数、以及结束节点个数,自动对整个模型进行层次划分,并且求出模型中的所有路径,并划分层次。
优选的,在上述一种基于业务流程模型自动生成测试用例的方法中,划分完层次之后,根据每一条路径上的用户输出的不同参数进行配对组合;配对成功后包含两个路径,路径1:开始登录登录成功退出登录结束;路径2:开始登录登录失败结束。
优选的,在上述一种基于业务流程模型自动生成测试用例的方法中,路径1:需要登录到某一系统时,我们需要输入用户名与密码,二者全部正确才能登入成功,路径2:有三种组合方式,可以包含用户名错误密码正确、用户名正确密码错误、用户名密码均错误三种方式;根据路径我们采用了配对组合算法,该算法根据用户输入的正确的用户名、错误的用户名、正确的密码、错误的密码两两组合,产生的结果共有4中不同的组合方式,即路径一中的一种与路径二中的三种。
优选的,在上述一种基于业务流程模型自动生成测试用例的方法中,组合算法是将被测系统抽象出来的变量的取值进行组合并生成一组测试用例的过程,它将被测试应用抽象为一个受到多个因素影响的系统,其中每个因素的取值是离散且有限的;多因素(N-way,N>2)组合测试可以覆盖任意N个因素的所有取值组合,在理论上可以发现由N个因素共同作用引发的缺陷;配对算法它可以根据你设定的条件,自动生成在测试效率和测试覆盖率之间做出平衡的组合,由于两因素组合测试在测试用例个数和错误检测能力上达到了较好的平衡,它是目前主流的组合测试方法,最后再生成覆盖所有组合的测试路径;再根据路径上的约束条件生成测试输入参数;最后,通过自定义的测试动作原语将测试路径和输入参数转化为可在自动化测试平台上自动执行的测试脚本。
优选的,在上述一种基于业务流程模型自动生成测试用例的方法中,使用此方法,测试人员能够对被测件的使用流程进行业务建模,描述使用软件各个步骤;然后配置每个动作的操作内容和参数就能够自动将各个动作和参数进行组合,自动生成执行的测试脚本。
优选的,在上述一种基于业务流程模型自动生成测试用例的方法中,测试人员使用此方法,是从开始节点到结束节点之间的一系列动作;每个动作代表对被测件的一次操作或者从被测件获取的一次反馈。动作节点之间用连线进行连接;如果执行的动作需要用到参数,则在动作之前的连线上设置参数,然后动作节点上使用参数;当模型创建完成后,根据流程图计算从开始节点到任何一个结束节点之间的路径,并且把路径上的动作一个个接续起来,自动形成该测试路径(用例)的测试脚本;有些路径的参数取值有一些要求;为了避免无效路径,需要在路径(连线)上设置约束条件。所有不满足约束条件的路径都不会被产生;同时,所有参数的各种取值也会进行组合,从而在每一条有效路径上使用不同的参数组合产生不同的测试用例来进行测试;也可以和不同的测试脚本执行平台进行集成,比如Selenium,Etest等;集成完成后,可以用该执行平台的操作原语来完成(实现)每个动作;同时自动生成的测试用例也可以在该平台上运行,完成自动化测试。
经由上述的技术方案可知,与现有技术相比,本发明采用了配对组合算法与路径深度覆盖算法两者相结合主要实现了以下优点:
1、可视化建模:采用BPMN2.0标准符号构建可视化测试模型;简单便捷的模型设计器,快速构建测试模型;实时的模型自动检查功能,随时发现问题;支持子模型多层嵌套,分解复杂的业务逻辑
2、输入参数设计:分步骤配置输入参数,方便人工分析;输入参数约束设置支持计算表达式,适用范围更广;自动识别参数类型,使用更简单;自动分析输入参数,及早定位设计问题
3、执行代码输出:自动生成python、lua、javascript、c#、c++等多种程序代码;支持代码生成插件定制;自动生成测试用例执行列表;一键打包下载4、文档输出:一键生成测试用例说明文档;支持多种输出格式;支持输出格式定制;使得测试用例的覆盖率更为广泛、灵活。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1附图为本发明的密码检查测试模型。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应用场景:某软件具有密码输入界面,如果密码输入正确,则提示成功,进入下一个界面,如果密码错误,则提示失败
设计模型如图1所示:每个动作模型我们都设置一些对应的操作。在这里可以调用集成的自动化测试运行平台的操作术语。比如“输入密码”可以调用输入框原语输入password变量的值作为密码值,然后调用提交按钮的点击原语发送密码(假设继承了selenium平台),在这里我们暂且用注释文本来表达动作;
同理,配置其他的几个动作“密码正确,进入操作界面”、“密码错误”相应的动作内容。
其中“输入密码”动作包含了参数password,这个参数要设置在这个动作之前的连线上。
假设参数password的取值有三个值:“11”“22”“33”,其中“11”为正确的密码值。当输入正确的密码值时和错误的密码时程序所走的路经是不一样的。为了让生成的测试脚本按照参数取值的不同走不同的路径,我们需要在路径上设置约束条件:向上的路径,密码为“11”,向下的路径密码为“22”,“33”。
这个简单的模型就建立完成了,我们来看一下生成的测试用例。点击“生成按钮”就会弹出信心提示,我们选择“相邻路径深度”为2,“输入组合配对数”也为2.点击确定后,显示生成的测试路径。
一共生成了两条测试用例,第一条用例走的是包含了正确密码的路径,输入的参数使用的是正确的密码。将鼠标点击到第二条用例上,会显示第二条路经。
第二条测试用例走的是包含了错误密码的路径,输入的参数使用的是错误的密码,点击左侧蓝色按钮(说明文档)会显示出测试用例的摘要、输入参数、详细说明等基本信息。
点击蓝色执行按钮,假设已经集成了自动化脚本运行平台,参数均已配置好,这样我们设计好的测试用例就会被执行,会驱动浏览器自动执行我们的测试用例,执行结果。
测试用例从设计阶段到执行阶段都已完成了。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (7)
1.基于业务流程模型自动生成测试用例的方法,其特征在于,包括以下步骤:(1)使用遵循BPMN2.0规范的方法对被测系统业务流程进行可视化建模:基于BPMN2.0标准的开源框架activiti或mxgraph,实现WEB前端Vue框架+Vuetify等组件等代码绘制业务工作流模板,建立软件业务为模型,层次化的测试模型,针对业务逻辑所要实现的需求,进行子模型的嵌套,进行下层建模,可视化模型可以考察各个业务逻辑模型之间的交互,使我们建立好的模型,更加清晰的表现出要实现的业务逻辑;(2)通过JavaScript等语言解析WEB前端所绘制的业务流程模型会自动生成业务流配置:即根据模型表达的业务逻辑自动生成代码;这种可视化的配置过程能够让所有人都轻松理解,并可通过图形化的展示发现流程中冗余的地方,促进工作流的不断优化,提高了业务流程模板的质量,获得模型化的测试需求;(3)然后,采用路径深度覆盖算法生成测试路径。
2.根据权利要求1所述的基于业务流程模型自动生成测试用例的方法,其特征在于,根据测试需求绘制的模型此模型中有两个网关节点,但是我们可以清晰的看出,此模型有三条路径,该算法就是根据用户绘制好的模型以及模型中网关出现的次数、开始节点个数、以及结束节点个数,自动对整个模型进行层次划分,并且求出模型中的所有路径,并划分层次。
3.根据权利要求1所述的基于业务流程模型自动生成测试用例的方法,其特征在于,划分完层次之后,根据每一条路径上的用户输出的不同参数进行配对组合;配对成功后包含两个路径,路径1:开始登录登录成功退出登录结束;路径2:开始登录登录失败结束。
4.根据权利要求3所述的基于业务流程模型自动生成测试用例的方法,其特征在于,路径1:需要登录到某一系统时,我们需要输入用户名与密码,二者全部正确才能登入成功,路径2:有三种组合方式,可以包含用户名错误密码正确、用户名正确密码错误、用户名密码均错误三种方式;根据路径我们采用了配对组合算法,该算法根据用户输入的正确的用户名、错误的用户名、正确的密码、错误的密码两两组合,产生的结果共有4中不同的组合方式,即路径一中的一种与路径二中的三种。
5.根据权利要求4所述的基于业务流程模型自动生成测试用例的方法,其特征在于,组合算法是将被测系统抽象出来的变量的取值进行组合并生成一组测试用例的过程,它将被测试应用抽象为一个受到多个因素影响的系统,其中每个因素的取值是离散且有限的;多因素(N-way,N>2)组合测试可以覆盖任意N个因素的所有取值组合,在理论上可以发现由N个因素共同作用引发的缺陷;配对算法它可以根据你设定的条件,自动生成在测试效率和测试覆盖率之间做出平衡的组合,由于两因素组合测试在测试用例个数和错误检测能力上达到了较好的平衡,它是目前主流的组合测试方法,最后再生成覆盖所有组合的测试路径;再根据路径上的约束条件生成测试输入参数;最后,通过自定义的测试动作原语将测试路径和输入参数转化为可在自动化测试平台上自动执行的测试脚本。
6.根据权利要求5所述的基于业务流程模型自动生成测试用例的方法,其特征在于,使用此方法,测试人员能够对被测件的使用流程进行业务建模,描述使用软件各个步骤;然后配置每个动作的操作内容和参数就能够自动将各个动作和参数进行组合,自动生成执行的测试脚本。
7.根据权利要求6所述的基于业务流程模型自动生成测试用例的方法,其特征在于,测试人员使用此方法,是从开始节点到结束节点之间的一系列动作;每个动作代表对被测件的一次操作或者从被测件获取的一次反馈;动作节点之间用连线进行连接;如果执行的动作需要用到参数,则在动作之前的连线上设置参数,然后动作节点上使用参数;当模型创建完成后,根据流程图计算从开始节点到任何一个结束节点之间的路径,并且把路径上的动作一个个接续起来,自动形成该测试路径(用例)的测试脚本;有些路径的参数取值有一些要求;为了避免无效路径,需要在路径(连线)上设置约束条件。所有不满足约束条件的路径都不会被产生;同时,所有参数的各种取值也会进行组合,从而在每一条有效路径上使用不同的参数组合产生不同的测试用例来进行测试;也可以和不同的测试脚本执行平台进行集成,比如Selenium,Etest等;集成完成后,可以用该执行平台的操作原语来完成(实现)每个动作;同时自动生成的测试用例也可以在该平台上运行,完成自动化测试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110769291.0A CN113468057A (zh) | 2021-07-07 | 2021-07-07 | 基于业务流程模型自动生成测试用例的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110769291.0A CN113468057A (zh) | 2021-07-07 | 2021-07-07 | 基于业务流程模型自动生成测试用例的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113468057A true CN113468057A (zh) | 2021-10-01 |
Family
ID=77878983
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110769291.0A Pending CN113468057A (zh) | 2021-07-07 | 2021-07-07 | 基于业务流程模型自动生成测试用例的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113468057A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113960934A (zh) * | 2021-10-29 | 2022-01-21 | 中国工程物理研究院机械制造工艺研究所 | 一种用于控制系统电气柜自动测试的系统及方法 |
CN115543852A (zh) * | 2022-11-10 | 2022-12-30 | 凯云联创(北京)科技有限公司 | 一种嵌入式系统自动测试方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111694741A (zh) * | 2020-06-05 | 2020-09-22 | 中国工程物理研究院计算机应用研究所 | 一种基于路径深度覆盖的测试用例设计方法 |
-
2021
- 2021-07-07 CN CN202110769291.0A patent/CN113468057A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111694741A (zh) * | 2020-06-05 | 2020-09-22 | 中国工程物理研究院计算机应用研究所 | 一种基于路径深度覆盖的测试用例设计方法 |
Non-Patent Citations (2)
Title |
---|
北极熊: "基于模型驱动的自动化测试设计与实现", pages 1 - 6, Retrieved from the Internet <URL:https://zhuanlan.zhihu.com/p/115759513?utm_id=0> * |
黄松、陈明宇等: "模型驱动的嵌入式系统测试脚本生成方法研究与实现", 《测控技术》, vol. 39, no. 6, pages 34 - 40 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113960934A (zh) * | 2021-10-29 | 2022-01-21 | 中国工程物理研究院机械制造工艺研究所 | 一种用于控制系统电气柜自动测试的系统及方法 |
CN115543852A (zh) * | 2022-11-10 | 2022-12-30 | 凯云联创(北京)科技有限公司 | 一种嵌入式系统自动测试方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10296443B2 (en) | Automatically predicting faults that caused software failures using a Markov logic network | |
Boubeta-Puig et al. | MEdit4CEP: A model-driven solution for real-time decision making in SOA 2.0 | |
CN110764753A (zh) | 一种业务逻辑代码生成方法、装置、设备及存储介质 | |
US11954461B2 (en) | Autonomously delivering software features | |
Moreira et al. | Pattern‐based GUI testing: Bridging the gap between design and quality assurance | |
Denney et al. | AdvoCATE: An assurance case automation toolset | |
CN113468057A (zh) | 基于业务流程模型自动生成测试用例的方法 | |
US11531914B2 (en) | Artificial intelligence (AI) based automatic rule generation | |
Sullivan et al. | Aunit: A test automation tool for alloy | |
US11797427B2 (en) | Automatic generation of unit tests while running an application | |
Afanasyev et al. | Control of UML diagrams in designing automated systems software | |
US20210117313A1 (en) | Language agnostic automation scripting tool | |
CN106776326B (zh) | 一种数据分析模型的建模方法及系统 | |
Wanderley et al. | SnapMind: A framework to support consistency and validation of model-based requirements in agile development | |
Meedeniya et al. | Traceability establishment and visualization of software artefacts in devops practice: a survey | |
Rubasinghe et al. | Traceability management with impact analysis in DevOps based software development | |
Rosales-Morales et al. | ImagIngDev: a new approach for developing automatic cross-platform mobile applications using image processing techniques | |
Bhatti | Automatic measurement of source code complexity | |
Lafi et al. | Automated test cases generation from requirements specification | |
CN114416516A (zh) | 基于截图的测试用例及测试脚本生成方法、系统及介质 | |
Villalobos-Arias et al. | Evaluation of a model‐based testing platform for Java applications | |
Wang et al. | HolonCraft–an architecture for dynamic construction of smart home workflows | |
Moketar et al. | TestMEReq: generating abstract tests for requirements validation | |
Voutama et al. | Android-Based Claim System for Electricity Network Customers of PLN Padang Branch | |
CN116610558A (zh) | 代码检测方法、装置、电子设备及计算机可读存储介质 |
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 |