掌桥专利:专业的专利平台
掌桥专利
首页

一种面向低代码平台的自动化测试方法及系统

文献发布时间:2024-04-18 19:53:33


一种面向低代码平台的自动化测试方法及系统

技术领域

本发明涉及应用测试技术领域,尤其涉及一种面向低代码平台的自动化测试方法及系统。

背景技术

低代码最早于2014年6月由Forester首先提出的LowCode一词翻译而来,是指无需编码或通过少量代码即可快速完成应用程序的设计与开发。低代码开发平台是通过图形化、可视化界面,以拖拽组件和模型驱动等。

随着信息化的不断进步,数字化转型势不可挡。为加快企业数字化转型速度及满足业务高速发展,赋能业技融合,减少低价值重复性的研发工作,更多聚焦和满足业务敏捷创新,低代码开发平台已成为众多企业在数字化转型升级中的重要手段。而通过采用“组件+流程配置”的低代码方式进行逻辑交易更是成为其中较常见的一种全流程可视化开发模式。该模式通过图形化界面,以拖拽组件和参数配置的方式完成业务逻辑和流程构建,能有效降低运维成本、加快产品创新效率。

由于低代码开发平台能有效降低软件开发门槛,并辅助研发人员快速响应需求完成产品上线,可能造成整个系统的应用代码的质量不稳定,从而对系统测试带来挑战,也给测试团队带来高效测试的压力。传统测试模式或者目前主流的自动化测试工具均无法较好的响应低代码开发模式下的迅捷性、统一性、简便性等特性。

发明内容

本发明的目的是提供一种面向低代码平台的自动化测试方法及系统,以解决如何提高软件测试效率的技术问题。

本发明是采用以下技术方案实现的:一种面向低代码平台的自动化测试方法,包括如下步骤:

S1:根据应用程序代码识别图的节点集合和边集合;

S2:根据节点集合和边集合构建整个应用系统的程序组件节点执行有向图;

S3:基于图的算法计算有向图的路径集并自动去重,输出测试用例集;

S4:对测试用例集进行需求关联、筛选、分类和标注得到最终测试用例集;

S5:自动执行测试用例集并进行测试结果分析,最后根据分析结果进行可视化展示。

进一步的,步骤S1为:根据低代码平台开发的应用程序代码识别图的节点集合和边集合,具体包括如下子步骤:

S11:将应用程序中的每个运行组件当作图的一个节点,每个运行组件的输入参数和输出参数则是这个节点的属性信息,所有节点组成节点集合,节点集合包含起始节点和结束节点;

S12:根据运行组件的执行顺序将相连的两个组件关系归纳成图中两个节点的一条有向边;

S13:重复上述步骤,得到整个应用程序的节点集合和边集合。

进一步的,步骤S2包括如下子步骤:

S21:根据节点集合和边集合构造有向图;

S22:采用拓扑排序检测方法,判断有向图是否有环;

S23:若有向图有环,则对有向图的边集合进行调整,从而得到有向无环图;若有向图无环,则直接进行步骤S3。

进一步的,步骤S22具体为:每次从有向有环图中取出一个入度为0的节点删除,同时删除该节点及所有以该节点为起点的边,若最终有向图为空,则证明无环;若最终有向图非空,则证明有环。

进一步的,步骤S3具体为:根据图的深度优先遍历算法和广度优先遍历算法计算出起始节点和结束节点之间的所有路径,同时计算出有向图的关键路径、最长路径和最短路径,得到覆盖所有节点的路径集。

进一步的,步骤S4包括如下子步骤:

S41:根据业务需求过滤无效路径;

S42:根据业务需求对测试用例进行关联和分类标注,得到最终测试用例集,所述分类标注包括等级标注和/或打标签。

进一步的,步骤S5具体为:自动执行所有测试用例集,并根据测试用例的预期结果值和执行结果值进行比对,得到每条测试用例的通过情况,再根据需求与测试用例的对应关系,计算出每个需求的测试通过率,最终对测试用例执行结果和测试通过率数据进行可视化展示。

一种面向低代码平台的自动化测试系统,包括需求管理模块、计算模块、执行模块和可视化模块,其中,

需求管理模块,用以录入并存储需要测试的产品信息;

计算模块,用以根据应用程序代码识别图的节点集合和边集合,并根据节点集合和边集合构建整个应用系统的程序组件节点执行有向图,然后基于图的算法计算有向图的路径集并自动去重,输出测试用例集;

执行模块,用以对测试用例集进行需求关联、筛选、分类和标注得到最终测试用例集,并自动执行测试用例集并进行测试结果分析;

可视化模块,用以根据分析结果进行可视化展示。

一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,实现上述所述的一种面向低代码平台的自动化测试方法。

一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现上述所述的一种面向低代码平台的自动化测试方法。

本发明的有益效果在于:

1. 本发明针对交易逻辑复杂的系统,可以有效快速设计出覆盖整个应用系统组件节点的测试用例集,能有效的提供测覆盖率和测试效率。

2. 本发明能够更好的应用在低代码开发模式的程序测试中,实现自动生成程序代码覆盖率较高的测试用例,提高软件的测试效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。

图1为本发明流程图;

图2为本发明系统框图;

图3为部分程序组件流程图;

图4为图3转化后的有向图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

实施例

参见图1,一种面向低代码平台的自动化测试方法,包括如下步骤:

步骤一,根据低代码平台开发的应用程序代码识别图的节点集合和边集合。具体为:在低代码平台开发的流程图模式程序中,将每个运行组件当做图的一个节点,组件的输入参数和输出参数则是这个节点的属性信息,节点集合包含起始节点和结束节点。同时,根据组件执行顺序将相连的两个组件关系归纳成图中两个节点的一条有向边,根据此方法归纳整理出整个应用系统的节点集合和边集合。

步骤二,根据节点集合和边集合构建整个应用系统的程序组件节点执行有向图。具体为:在实际程序开发中,程序很可能存在循环逻辑。所以,此时根据节点集合和边集合后构造出的图将是个有向有环图。解决方案则是采用拓扑排序检测方法等,即每次从有向图中取出一个入度为0的节点删除,同时删除该节点及所有以他为起点的边,若最终图为空则证明无环,最终非空则证明有环。根据拓扑排序检测的结果,若是有向图存在环,则对图的边集合进行调整从而得到最终的有向无环图。若图不存在环,则直接进行下一个步骤。

步骤三,基于图的算法计算路径集并自动去重,输出测试用例集。具体为:根据图的深度优先遍历算法和广度优先遍历算法计算出起始节点和结束节点之间的所有路径,同时计算出图关键路径、最长路径和最短路径,得到覆盖所有节点的路径集。

步骤四,对测试用例集进行需求关联、筛选、分类和标注得到最终测试用例集。具体为:对路径集进行自动去重后,人工再根据业务需求过滤无效路径,并根据业务需求对测试用例进行关联和分类标注,如将测试用例可分类为四个等级,分别为“特高”、“高等”、“中等”和“低等”,还可对测试用例打上“异常测试”或“纳入回归测试”等标签。这样可以有效辅助后续的测试结果分析和迭代回归测试。经过这些步骤后,得到最终测试用例集。

步骤五,自动执行测试用例集并进行测试结果分析,最后根据执行结果进行可视化展示。具体为,自动执行所有测试用例集,并根据测试用例的预期结果值和执行结果值进行比对,得到每条测试用例的通过情况,再根据需求与测试用例的对应关系,计算出每个需求的测试通过率,最终对测试用例执行结果和测试通过率等数据进行可视化展示,辅助测试人员分析测试情况,如测试覆盖率和测试效率等,同时还有利于研发人员快速定位问题和优化程序。

参见图2,一种面向低代码平台的自动化测试系统,包括需求管理模块、计算模块、执行模块和可视化模块,其中,

需求管理模块,用以录入并存储需要测试的产品信息,具体根据产品需求将需求细分录入系统并存储,需求信息包括功能名称、业务规则需求等级、开发人员、测试人员、需求优先级等属性;

计算模块,主要包括数据处理、路径计算和路径去重三个方面,数据处理用以根据应用程序代码识别图的节点集合和边集合,并根据节点集合和边集合构建整个应用系统的程序组件节点执行有向图。需要说明的是,图是用以表示实体及其关系的结构,记为G(V,E),图由两个集合组成,一是节点的集合,一个是边的集合。在边集中,一条边连接一对节点和,表明两节点间存在关系。关系可以是无向的,也可以是有向的。在本发明中,节点指程序中的每个组件,边是指两个组件节点的执行顺序,且是有向的,实例如图3所示:为模拟部分程序组件流程,图4是根据规则转化后的有向图,通过图4可以看出,V=(1,2,3,4,5,6,7,9);E=((1,2),(2,3),(3,4),(3,6),(4,9),(4,5),(6,7),(6,8),(5,9),(7,9),(8,9))。在程序实现上,图中一个节点和边在自动化测试程序中都是使用对象进行封装和表示,节点对象的属性包含节点序号、节点名称、输入参数集和输出参数集,对象属性使用JSON格式封装。边对象的属性包括源节点序号、源节点输出值和目的节点序号,最终组织形成流程中各流程节点的属性维度信息。在本发明中,支持图数据JSON格式文件读入,同时支持输入低代码平台开发程序的FLW文件,自动识别图的节点集合和边集合。

路径计算,根据数据处理模块后得到的节点集合和边集合,通过可视化模块对图进行渲染展示,可帮助测试人员初步直观的了解整个系统的程序复杂度,辅助评估测试工量等。环检测。在实际程序开发中,程序很可能存在循环逻辑。所以,此时渲染出来的图将会是个有向有环图,有向有环图中的环将会影响路图的径计算。环可以通过采用拓扑排序检测,即每次从有向图中取出一个入度为0的节点删除,同时删除该节点及所有以他为起点的边,若最终图为空则证明无环,最终非空则证明有环。环还可以通过采用DFS遍历检查,对图进行DFS,则DFS的路径可以生成一棵树。对于DFS树上的节点,如果存在指向祖先的边或者指向自己的边,则图存在环或者回路。针对环的处理,可以人工调整或着选择系统自动处理,系统设置了两种处理方式。第一种直接去掉引发循环的那条边,也就是指向祖先的边或者指向自己的边。第二种是在计算路径时限制循环的次数,可将循环测试设置为1或者合适的阈值。计算有向图两点间所有路径的算法是一种常见的图论算法,它可找出从起点到终点的所有路径,并记录下来。其核心思想是使用深度优先搜索或广度优先搜索遍历整个图。对于有向图,因只能沿着有向图进行搜索,所有需要在遍历过程中记录方向信息,当搜索到终点时,将找到的路径返回并保存。

路径去重,在路径计算模块得出可执行路径集中,针对相同的路径只保留一条,根据每条路径集上节点的输入参数、输出参数以及边的属性信息的得到测试用例集。每条测试用例数据包括输入参数集和预期输出参数集。

执行模块,主要分为需求关联、测试用例筛选、测试用例分类、测试用例标注、执行测试用例和测试结果分析几个方面,其中,

需求关联,测试用例与需求之间支持相互关联功能,一个测试用例只能同时关联一则需求,一则需求可以同时关联多个测试用例。

测试用例筛选,支持筛选过滤无效或者不可能发生的测试用例。

测试用例分类,支持对测试用例划分不同等级,包括“特高”、“高等”、“中等”和“低等”等。辅助测试人员在测试结果分析中对重要的测试用例进行重点分析。

测试用例标注,支持对测试用例打上“异常测试”或“纳入回归测试”等标签,以辅助后续的迭代回归测试或回归测试。

执行测试用例,自动执行所有测试用例集,并根据测试用例的预期结果值和执行结果值进行比对,得到每条测试用例的通过情况

测试结果分析,计算每个需求的测试通过率、代码覆盖率等相关指标。

可视化模块,采用graphviz库进行绘制图,通过测试用例的执行结果数据能在图中展示出每一条测试用例的执行路径,通过的节点和边为绿色显示,遇到报错或者中端的组件用红线表示,此外,整个系统需求的测试通过率和代码覆盖率支持图表展示。

本发明还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,实现上述所述的一种面向低代码平台的自动化测试方法。

本发明还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现上述所述的一种面向低代码平台的自动化测试方法。

基于上述实施例,本发明至少具有以下技术效果:

1. 本发明针对交易逻辑复杂的系统,可以有效快速设计出覆盖整个应用系统组件节点的测试用例集,能有效的提供测覆盖率和测试效率。

2. 本发明能够更好的应用在低代码开发模式的程序测试中,实现自动生成程序代码覆盖率较高的测试用例,提高软件的测试效率。

对于前述的实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例属于优选实施例,所涉及的动作并不一定是本申请所必须的。

上述实施例中,描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

相关技术
  • ARM与FPGA的SPI接口通信的优化方法及系统
  • 用于FPGA与ARM通信的FlexSPI接口驱动方法及系统
技术分类

06120116338605