低代码平台之流程自动化测试

随着低代码平台的快速发展,开发人员可以便捷、快速地开发流程应用程序,由于业务流程的复杂化和业务需求的不断变化,对业务流程进行优化和改进将更加频繁,在这个过程中,就要求企业的流程测试的效率和质量需要跟上低代码流程开发的速度和变化频率,能让测试人员快速发现流程中的问题,使开发人员及时进行调整和优化,帮助企业更快速、更准确地进行流程测试,提高业务流程配置的效率和质量。

如何不依赖测试脚本,而是通过低代码平台自身的能力实现用例的自动生成;如何在流程发生变化时,能智能的完成用例的自动调整,是实现流程平台自动化测试的关键问题。

现有的通用自动化测试通常采用测试脚本编写的技术方案,测试脚本用于模拟用户在应用程序中执行的操作,以验证应用程序的功能和性能,测试脚本往往需要依赖人工编写,功能发生变化也需要人工修改用例,难点如下:

编写门槛高:测试脚本编写需要专业的技能和知识,需要具备编程语言的基础知识和熟练的编写技能,对于非技术人员可能难以掌握。

  • 编写成本高:编写自动化测试脚本需要投入大量的时间和精力,需要进行测试场景分析、测试脚本编写、调试等多个环节,编写过程繁琐。
  • 维护成本高:随着应用程序的版本升级、业务需求变化等原因,尤其是在业务流程变化频繁的情况下,测试用例需要不断地修改和调整,需要投入更多的时间和精力,耗费大量的时间和精力。

特别是在流程平台中,流程验证更加复杂,流程建设阶段需要对表单、网关、审批权限配置的准确性做一次验证,复杂的流程需要频繁切换配置态与运行态、频繁切换工号,需要编写大量的用例数据,复杂流程场景测试数据多,更新应用经常需要做流程回归测试,重复工作多,费时费力。

浩鲸灵犀开发平台是浩鲸科技自主研发的低码平台,本文以灵犀平台为基础介绍低代码平台的流程自动化测试,包括流程健壮性测试用例自动生成,辅助批量生成业务流程场景测试用例,模拟多用户登录和模拟录入表单数据,驱动流程自动流转,判断是否符合预期;提供完整工具和方法支持,包含用例自动生成、分配测试用例、测试计划、执行测试计划、自动生成测试报告等;通过测试计划来批量执行,降低测试成本,提高业务加载上线效率。

流程平台的自动化测试,将流程平台测试用例的编排过程自动化、可视化,当流程发生变化时,能自动调整对应的测试用例,提高测试用例编排的效率和准确性。自动测试的过程包括以下步骤:

  • 步骤1:自动创建流程健壮性测试用例,用于验证流程平台本身功能的正确性,这类的测试用例完全由系统自动生成;
  • 步骤2:遍历流程所有可能流向,自动生成流程的所有测试路径,生成业务场景测试用例初稿,用于验证流程流转的业务正确性。
  • 步骤3:上述步骤生成的用例中,流程流转的关键业务数据还需要人工填写,如报销审批过程中需要判断费用的阈值分配给不同层级的领导审批,这里的费用为关键业务数据,需要人工填写,完善测试用例。
  • 步骤4:配置测试计划,关联上述步骤生成的业务场景测试用例和健壮性测试用例,配置自动执行的计划。
  • 步骤5:自动执行测试计划。
  • 步骤6:自动生成测试报告。
  • 步骤7:通过流程变化的自动监测,自动识别需要调整的测试用例、影响范围以及差异内容,自动调整对应的测试用例。

在对以上步骤详细说明之前,先约定几个概念:

“场景”:流程的每种可能的分支走向为一个场景。

“预置场景”:流程在激活后会由后台计算流程的所有分支走向,每种分支走向都会各自生成一个预置场景,用来表示流程的每一种可能的走向。

“健壮性测试”:测试流程能正常发起且每个环节的流转都是正常的,用于验证流程平台本身功能的正确性。

“业务场景测试”:带上流程流转所需的关键业务数据的流程仿真业务场景测试。

“预置用例”:流程健壮性测试使用的测试用例,由后台模拟生成所有的表单数据。

“自定义用例”:流程业务场景测试使用的测试用例,由用户配置关键表单数据。

有了以上概念后,接下来看看下面这个流程图,是对前述步骤的展开,并阐述步骤之间的关联关系。

自动生成预置场景及健壮性测试

人工做流程测试,过程非常繁琐,主要体现在:

需要频繁的切换不同的测试账号,用于模拟不同的处理人对流程环节进行操作和处理;

需要测试流程的全部分支场景,测试的复杂度随着网关数量呈指数型增长,造成大量的繁琐和重复性操作;

现场版本升级时,需要先保证流程的贯通,再保证每一个流程分支场景的准确性,整个流程测试耗时过长。

以上问题最核心的一点是如何自动生成预置场景。而浩鲸灵犀开发平台的优势在于,其有自身的解析引擎和对应的DSL定义语言。如果能模拟解析引擎,去解析流程DSL,就能知道流程的整体和每个步骤,从而推导出流程的所有分支走向,每种可能的分支走向及其流程节点并自动保存,这样就实现了预置场景的自动生成。

现在来看费用报销这个简单审批流程的2个预置场景自动生成的效果,员工提了报销单后,先由项目经理审批,再由财务审批,财务审核通过就结束,财务审核不通过打回项目经理重新审核。自动生成的2个预置场景截图如下:

点击右上角的“预流转”按钮,就能以动画的形式呈现流程流转的过程。以上就是健壮性测试的自动生成及可视化呈现。

健壮性测试的自动生成及自动流转,不带业务数据,主要是为了验证流程平台自身功能的正确性。可以在以下情况下使用健壮性测试:

  • 新流程配置完成之后,用健壮性测试验证平台基础功能能否跑通;
  • 版本升级后,对原有的流程做健壮性测试,验证流程引擎和原有流程配置的适配性。

业务场景测试及自定义用例快速生成

在传统的自动化测试中,需要配置不同业务场景的测试脚本,并频繁切换工号才能完成完整的业务场景测试,过程繁琐。

在浩鲸灵犀开发平台中,同样可以去解析流程平台的DSL,在预置场景的基础上,把关键业务数据解析出来。同时,提供可视化的自定义用例配置界面,就可以让流程配置人员快速的批量生成自定义用例。区别于预置用例的完全自动生成,自定义用例属于半自动生成。

哪些数据属于关键数据呢?经过对流程配置数据的分析,影响流程流转的核心数据是各类“网关”中配置的条件,把这些字段都从流程配置中解析出来。平台先自动生成自定义用例的初稿,包括流程和节点,然后提供人工填写这些关键字段的可视化界面,这些字段都完成填写后即可实现业务场景的自动流转测试。在自动流转测试中,使用了全角色匹配的方案,避免频繁切换工号。

如图所示,这个例子中,设计了一个营销活动策划和审批流程场景,当成本<500时,营销活动主管审批即可,当成本>=500时需要营销总监审批。在自动流程测试界面中,系统已经预生成了用例的流程流转图,操作者只要在界面中填上“营销活动成本”这个关键业务数据,整个用例就可以完成自动测试。

监测流程变化自动调整用例

当流程配置有变化时,通常的做法是,需要人工分析用例的影响面,再人工调整测试用例的配置,每个分支都要考虑充分,做起来复杂而且容易遗漏。

针对这个问题,浩鲸灵犀开发平台实现了流程版本变化的自动监测,同时,根据变化的内容自动调整测试用例。实现方案大致如下:

  • 后台监测流程版本变化,当变化发生时,通知当前流程版本关联的测试用例自动进行一次适配新流程版本内容的测试用例调整。
  • 当收到自动调整的通知请求后,获取新旧流程版本的定义,基于流程差异分析算法,将新旧流程版本的流程定义都转换为有向无环图,分别进行拓扑排序,得到节点的拓扑序列。按每个节点比较该节点的入度和出度是否相同,如果不同则标识为疑似差异节点。再分别计算每个疑似差异节点在新旧版本中的前驱节点和后继节点集合,并比较它们的差异。如果前驱节点集合或后继节点集合存在差异,则确定该节点存在差异。记录确认差异节点的位置和差异内容。
  • 根据差异内容,程序自动对原有测试用例进行修改,生成新的测试用例。
  • 对自动调整后的测试用例进行检查,包含流程测试路径可达性检查和流程数据完整性检查。如果检查通过,进行预执行检测,如果预执行成功,完成测试用例自动调整;如果自动调整后的测试用例检查不通过,或者预执行失败,设置测试用例失效,通知测试人员进行人工检查和维护,及时调整和优化,直到测试用例预执行成功,恢复生效状态。

综上所述,浩鲸灵犀开发平台提供了流程的健壮性自动化测试,由流程中心自动模拟表单数据,完成流程的全分支场景的贯通性测试;提供了流程的业务场景测试,由用户自定义各种分支场景的表单数据,再由流程中心完成流程的各种分支场景的准确性测试;还能自动监测流程版本的变化,自动调整测试用例。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/22770.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

svn迁移到git实际操作

1.到svn项目目录右键选中gitbash打开窗口&#xff0c;执行获取用户并映射成git样式账号命令如下: svn log -q | awk -F | /^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" "$2" <"$2"163.cn>…

Python深度强化学习实战 ——OpenAI Gym-CarRacing自动驾驶项目

&#x1f4ad; 写在前面&#xff1a;本篇是关于 OpenAI Gym-CarRacing 自动驾驶项目的博客&#xff0c;面向掌握 Python 并有一定的深度强化学习基础的读者。GYM-Box2D CarRacing 是一种在 OpenAI Gym 平台上开发和比较强化学习算法的模拟环境。它是流行的 Box2D 物理引擎的一个…

HTML <map> 标签

实例 带有可点击区域的图像映射: <img src="planets.jpg" border="0" usemap="#planetmap" alt="Planets" /><map name="planetmap" id="planetmap"><area shape="circle" coords=&q…

领域知识图谱的医生推荐系统:利用BERT+CRF+BiLSTM的医疗实体识别,建立医学知识图谱,建立知识问答系统

项目设计集合&#xff08;人工智能方向&#xff09;&#xff1a;助力新人快速实战掌握技能、自主完成项目设计升级&#xff0c;提升自身的硬实力&#xff08;不仅限NLP、知识图谱、计算机视觉等领域&#xff09;&#xff1a;汇总有意义的项目设计集合&#xff0c;助力新人快速实…

HTML+CSS+JavaScript:九九乘法表

一、需求如图 二、思路及代码 1、JavaScript代码 稍微刷过一点算法题的小伙伴就很容易想到这题需要利用双层for循环来实现&#xff0c;思路也是比较简单的&#xff0c;我在这里就直接放代码了 不添加CSS渲染的代码如下 <!DOCTYPE html> <html lang"en"&…

HTTP、HTTPS协议详解

文章目录 HTTP是什么报文结构请求头部响应头部 工作原理用户点击一个URL链接后&#xff0c;浏览器和web服务器会执行什么http的版本持久连接和非持久连接无状态与有状态Cookie和Sessionhttp方法&#xff1a;get和post的区别 状态码 HTTPS是什么ssl如何搞到证书nginx中的部署 加…

【探索AI未来】自动驾驶时代下的人工智能技术与挑战

自我介绍⛵ &#x1f4e3;我是秋说&#xff0c;研究人工智能、大数据等前沿技术&#xff0c;传递Java、Python等语言知识。 &#x1f649;主页链接&#xff1a;秋说的博客 &#x1f4c6; 学习专栏推荐&#xff1a;MySQL进阶之路、C刷题集、网络安全攻防姿势总结 欢迎点赞 &…

CSS学习04

文章目录 1.精灵图1.1 为什么需要精灵图1.2 精灵图&#xff08;sprites&#xff09;的使用 2.字体图标2.1 字体图标的产生2.2 字体图标的优点**2.3** **字体图标的下载****2.4** **字体图标的引入**2.5 字体图标的追加 3.CSS 三角3.1 介绍 4.CSS 用户界面样式4.1 鼠标样式 curs…

电路分析 day01 一种使能控制电路

本次分析的电路为 一种使能控制电路 &#xff08;站在别人的肩膀上学习&#xff09; 资料来源 &#xff1a; 洛阳隆盛科技有限责任公司的专利 申请号&#xff1a;CN202022418360.7 1.首先查看资料了解本次电路 1.1 电路名称&#xff1a; 一种使能控制电路 1.2 电路功能…

IOS与Android APP开发的差异性

iPhone和 Android是全球最流行的两种移动平台&#xff0c;有许多不同的开发者开发了应用程序&#xff0c;并将它们发布到市场上。虽然大多数开发者都使用了这两个平台&#xff0c;但您仍然需要了解它们的差异。 虽然 iOS和 Android两个平台都是基于 Linux&#xff0c;但它们却…

C语言 — 指针进阶篇(上)

前言 指针基础篇回顾可以详见&#xff1a; 指针基础篇&#xff08;1&#xff09;指针基础篇&#xff08;2&#xff09; 指针进阶篇分为上下两篇,上篇介绍1 — 4&#xff0c;下篇介绍5 — 6 字符指针数组指针指针数组数组传参和指针传参函数指针函数指针数组指向函数指针数组的…

Java线程状态与状态转换

前言 在Java中&#xff0c;线程是多任务处理的基本单位&#xff0c;它可以并行执行多个任务。线程的状态描述了线程在其生命周期中的不同阶段。Java线程的状态可以分为以下几种&#xff1a; 线程状态 状态解释新建状态&#xff08;New&#xff09;线程被创建但尚未启动就绪状…