CN118051436A - 一种代码回归测试方法、装置、设备及存储介质 - Google Patents
一种代码回归测试方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN118051436A CN118051436A CN202410227212.7A CN202410227212A CN118051436A CN 118051436 A CN118051436 A CN 118051436A CN 202410227212 A CN202410227212 A CN 202410227212A CN 118051436 A CN118051436 A CN 118051436A
- Authority
- CN
- China
- Prior art keywords
- data
- class data
- type
- class
- code
- 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 133
- 230000008859 change Effects 0.000 claims abstract description 76
- 238000000034 method Methods 0.000 claims abstract description 68
- 238000010586 diagram Methods 0.000 claims abstract description 29
- 230000004044 response Effects 0.000 claims abstract description 7
- 230000002776 aggregation Effects 0.000 claims description 13
- 238000004220 aggregation Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 description 8
- 239000000306 component Substances 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000000750 progressive effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000013100 final test Methods 0.000 description 1
- 238000011990 functional testing Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000013102 re-test Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本申请公开了一种代码回归测试方法、装置、设备及存储介质。该方法包括:响应于代码的变更,确定代码变更范围以及代码变更范围对应的第一类数据;根据类数据之间的统一建模语言图,得到引用第一类数据的第二类数据,并确定第一类数据与第二类数据之间的关系;根据第一类数据的方法、第二类数据的方法和预设数据流图,得到数据流图中受代码的变更影响的数据流,并确定数据流对应的回归测试范围;在回归测试范围内,根据第一类数据与第二类数据之间的关系确定回归测试用例。基于第一类数据与的第二类数据之间的关系,确定对应的测试用例,避免采用全量测试提高回归测试效率。
Description
技术领域
本申请涉及应用开发技术领域,特别是涉及一种代码回归测试方法、装置、设备及存储介质。
背景技术
回归测试是指一种软件测试技术,重新运行非功能和功能测试,以确保软件应用程序在任何代码变化、更新、修订、改进或优化后能按预期运行。它是软件开发周期的一个组成部分,因为它允许开发人员检测应用程序中可能由于调整、增强或扩展现有代码库而出现的意外故障。因此,回归测试对于确定产品成功或失败,起着至关重要的作用。
相关技术中,针对软件所采用的回归测试一般为全量测试。然而,针对所有情况下均采用全量测试无疑浪费了资源,导致回归测试效率低。
发明内容
基于上述问题,本申请提供了代码回归测试方法、装置、设备及存储介质,提高回归测试的效率。
本申请实施例公开了如下技术方案:
第一方面,本申请实施例提供一种代码回归测试方法,所述方法包括:
响应于代码的变更,确定代码变更范围以及所述代码变更范围对应的第一类数据;
根据类数据之间的统一建模语言图,得到引用所述第一类数据的第二类数据,并确定所述第一类数据与所述第二类数据之间的关系;
根据所述第一类数据的方法、所述第二类数据的方法和预设数据流图,得到所述数据流图中受代码的变更影响的数据流,并确定所述数据流对应的回归测试范围;
在所述回归测试范围内,根据所述第一类数据与所述第二类数据之间的关系确定回归测试用例。
可选地,所述第一类数据与所述第二类数据之间的关系为以下关系中的一种或多种:继承关系、实现关系、组合关系、聚合关系、关联关系和依赖关系;
各所述关系对应的所述回归测试用例分别为全量用例、关键用例、核心用例、重要用例、一般用例和生死用例。
可选地,所述根据所述第一类数据的方法、所述第二类数据的方法和预设数据流图,得到所述数据流图中受代码的变更影响的数据流,并确定所述数据流对应的回归测试范围,具体包括:
根据所述第一类数据的属性和方法得到受代码变更影响的第一类数据流,根据所述第二类数据的属性和方法得到受代码变更影响的第二类数据流;
在所述预设数据流图中确定所述第一类数据流与所述第二类数据流,并根据所述第一类数据流和所述第二类数据流确定对应的回归测试范围。
可选地,所述第一类数据与所述第二类数据之间的关系包括至少两种时,按照继承关系、实现关系、组合关系、聚合关系、关联关系和依赖关系的顺序确定出一种。
可选地,采用VSCODE编译器,确定代码变更范围。
第二方面,本申请实施例提供一种代码回归测试装置,所述装置包括:第一确定模块、第一获得模块、第二获得模块和第二确定模块;
所述第一确定模块,用于响应于代码的变更,确定代码变更范围以及所述代码变更范围对应的第一类数据;
所述第一获得模块,用于根据类数据之间的统一建模语言图,得到引用所述第一类数据的第二类数据,并确定所述第一类数据与所述第二类数据之间的关系;
所述第二获得模块,用于根据所述第一类数据的方法、所述第二类数据的方法和预设数据流图,得到所述数据流图中受代码的变更影响的数据流,并确定所述数据流对应的回归测试范围;
所述第二确定模块,用于在所述回归测试范围内,根据所述第一类数据与所述第二类数据之间的关系确定回归测试用例。
可选地,所述第一类数据与所述第二类数据之间的关系为以下关系中的一种或多种:继承关系、实现关系、组合关系、聚合关系、关联关系和依赖关系;
各所述关系对应的所述回归测试用例分别为全量用例、关键用例、核心用例、重要用例、一般用例和生死用例。
可选地,所述第二获得模块,具体用于:
根据所述第一类数据的属性和方法得到受代码变更影响的第一类数据流,根据所述第二类数据的属性和方法得到受代码变更影响的第二类数据流;
在所述预设数据流图中确定所述第一类数据流与所述第二类数据流,并根据所述第一类数据流和所述第二类数据流确定对应的回归测试范围。
可选地,所述第一类数据与所述第二类数据之间的关系包括至少两种时,按照继承关系、实现关系、组合关系、聚合关系、关联关系和依赖关系的顺序确定出一种。
可选地,采用VSCODE编译器,确定代码变更范围。
第三方面,本申请实施例提供一种计算机设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现前述任一实施例中所述的代码回归测试方法。
第四方面,本申请实施例一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行前述任一实施例中所述的代码回归测试方法。
相较于现有技术,本申请具有以下有益效果:
响应于代码的变更,确定代码变更范围以及代码变更范围对应的第一类数据;根据类数据之间的统一建模语言图,得到引用第一类数据的第二类数据,并确定第一类数据与第二类数据之间的关系;根据第一类数据的方法、第二类数据的方法和预设数据流图,得到数据流图中受代码的变更影响的数据流,并确定数据流对应的回归测试范围;在回归测试范围内,根据第一类数据与所述第二类数据之间的关系确定回归测试用例。在本申请中,针对与直接受代码变化的第一类数据,以及间接受代码变化的第二类数据,并基于第一类数据与的第二类数据之间的关系,确定对应的测试用例,避免采用全量测试提高回归测试效率。
除此之外,基于统一建模语言图和数据流图结合的方法,获取代码变更的影响域,解决了数据流图对于潜在的影响,输入输出无变化时影响域分析遗漏的场景,还解决了统一建模与沿途图不支持动态变化的情况;通过引入此方法,回归测试执行策略跟代码变更情况结合起来,执行策略有据可寻,避免了人为分析导致的范围过大和过小。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种代码回归测试方法的流程图;
图2为本申请实施例提供的另一种代码回归测试方法的流程图;
图3为本申请实施例提供的一种代码回归测试装置的结构示意图;
图4为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
正如前文描述,相关技术中,无差别采用全量测试,导致资源的浪费以及测试效率低下。例如,针对两个类数据之间的关系为依赖关系,采用全量测试方式;或针对关联关系的两个数据采用全量侧是方式。
为此,本申请实施例提出一种代码回归测试方法、装置、设备及存储介质。相应的方法包括:响应于代码的变更,确定代码变更范围以及代码变更范围对应的第一类数据;根据类数据之间的统一建模语言图,得到引用第一类数据的第二类数据,并确定第一类数据与第二类数据之间的关系;根据第一类数据的方法、第二类数据的方法和预设数据流图,得到数据流图中受代码的变更影响的数据流,并确定数据流对应的回归测试范围;在回归测试范围内,根据第一类数据与所述第二类数据之间的关系确定回归测试用例。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
数据流图:数据流图是一种图形化表示数据流动的方式,它能够清晰地展示数据的流向、节点之间的关系以及各个节点的状态变化等信息。数据流图通常用于描述系统的输入输出关系、流程控制、资源分配等方面。
统一建模语言:(Unified Modeling Language,UML)是一种用于描述软件系统的图形化建模语言,其对应的图像用来表示软件系统的结构、行为和交互关系。UML图通常用图形符号来表示软件系统的各个部分,这些符号可以被计算机程序识别并自动执行。UML的主要目的是为了使软件开发过程更加规范化和可视化。
回归测试:是指针对已经发布的产品或程序进行的测试,目的是验证产品或程序的正确性和稳定性。回归测试的目的是确保新功能不会破坏原有功能的正常工作,并且不会引入新的错误或缺陷。回归测试通常在软件开发过程中进行,以确保新版本与旧版本的功能保持一致。
其中,回归测试是通过采用四种基本的实施技术来实现的:重测一切,选择回归测试,确定测试用例的优先级,以及混合策略。
(1)全部重新测试。当对软件应用程序的主代码或根代码进行多次更新或修改时,这种方法在每个现有的测试套件中应用回归测试。这种技术是识别和解决所有bug的关键;然而,它是耗时和资源密集型的。因此,这种方法是通过考虑上下文来实现的。例如,当一个应用程序被转移到一个新的平台上,或者当有一个更新来修复O.S.中的一个主要错误时,完全回归是首选。
(2)回归测试的选择。在这种技术中,可以选择需要进行回归测试的部分。相关部分的选择是基于代码变更对应用程序的影响的范围。此外,通过这种方法,选取有限的测试用例,减少了回归测试所需的精力、资源和时间。
(3)测试用例的优先级。这种回归测试技术允许选择在测试过程中应该优先考虑的测试案例。测试用例的选择基于几个因素,如最常用的功能,功能失败率,以及某些功能的商业影响。更重要的是,新加入的功能和以客户为中心的功能被认为是最优先的测试案例。
(4)混合策略。这种回归测试方法结合了前两种技术的原则:测试用例的优先级和选择性的回归测试可以根据具体要求和需要来运行测试案例。这样的动态风格在测试应用程序时可以节省精力和时间。
纠正性回归测试:纠正性测试用于对源代码没有进行修改或更新的情况。在这里,由于打算验证当前功能的运作,可以重新使用现有的测试案例。
渐进式回归测试:当引入新的系统组件,需要开发新的测试环境或测试用例时,就会采用渐进式测试。这种类型有助于确定更新或变化是否影响现有组件。
选择性回归测试:选择性测试适用于只有选定的组件必须重新测试时,从而节省整个系统所需的时间和资源。
局部回归测试:当对应用程序的现有源代码进行修改时,采用部分测试来确保新的代码没有影响或破坏应用程序的整体性能。
完全回归测试:当多个更新被引入根代码时,整个测试类型被应用于整个软件结构。这种详尽的测试类别通常在产品发布前使用。
重测-全部回归测试:这种回归测试类型是一种全面的方法,通过使用所有以前的测试案例与最后的测试结果进行比较,重新执行每一个测试场景。它还确保新的源代码修改不会导致整个应用功能的问题。
单元回归测试:在单元测试中,代码单元被隔离和测试,不影响它们的依赖关系,从而促进独立的代码测试。
参见图1,该图为本申请实施例提供的一种代码回归测试的方法的流程图。
如图1所示,该方法包括:
S101:响应于代码的变更,确定代码变更范围以及代码变更范围对应的第一类数据。
其中,代码变更指对软件源代码的增加、删除或修改。
在一种可选的实施方式中,可根据VSCODE编辑器确定代码变更范围。
具体地,将变更前的代码导入VSCODE编辑器中,在导入模块路径处单击鼠标右键,从右键菜单中选择“Find All References”;然后在左侧“References”面板中的结果即为代码变更范围。
类是面向对象的程序设计(Object-Oriented Programming,OOP)中的核心组成元素,通常都是使用类来“封装”对象属性、行为。在本申请实施例中,类就是一类对象的统称。在类的定义的时候一般就包含了类的属性和方法以及所要传入的参数。
作为示例,开发人员修改了获取银行卡号这个类,这个类应该包含查询卡号、户名、开户行、限额等方法,输入信息就是身份证号,客户号等信息,输出就是银行卡余额,卡号,限额等信息。
S102:根据类数据之间的统一建模语言图,得到引用第一类数据的第二类数据,并确定第一类数据与第二类数据之间的关系。
本申请实施例中所涉及的UML图包括了类之间的相互关系,从UML图中可确定出直接引用或间接引用第一类数据的第二类数据。
其中,第一类数据与第二类数据之间的关系可以是继承关系、实现关系、组合关系、聚合关系、关联关系和依赖关系中的一种或多种。应当理解,类之间的耦合度强弱关系如下:继承>实现>组合>聚合>关联>依赖。
作为示例,第一类数据与第二类数据之间的关系为多种,可以是第一类数据与第二类数据之间既包括继承关系又包括实现关系,此时确定出第一类数据与第二类数据之间的关系为继承关系。本申请实施例中不对第一类数据与第二类数据之间的关系进行任何形式的限定。
S103:根据第一类数据的方法、第二类数据的方法和预设数据流图,得到数据流图中受代码的变更影响的数据流,并确定数据流对应的回归测试范围。
具体地,根据第一类数据的属性和方法得到受代码变更影响的第一类数据流,根据第二类数据的属性和方法得到受代码变更影响的第二类数据流;在所述预设数据流图中确定第一类数据流与第二类数据流,并根据第一类数据流和第二类数据流确定对应的回归测试范围。
其中,第一类数据流和第二类数据流共同构成受代码变更影响的数据流。由于数据流图中记载了数据流之间的关系,通过受代码变更影响的数据流以及数据流图可确定出回归测试范围。
作为示例,比如一个类中的某个方法修改了,举例限额查询方法有改造,那么根据数据流我们可以确认哪些类的哪些方法用到限额,比如取款的时候要查询是否达到限额,转账的时候也需要查询是否达到限额,通过这个分析更能准确的获得代码变更的影响范围,该代码的影响范围便是回归测试范围。
基于统一建模语言图和数据流图结合的方法,获取代码变更的影响域,解决了数据流图对于潜在的影响,输入输出无变化时影响域分析遗漏的场景,还解决了统一建模与沿途图不支持动态变化的情况。
S104:在回归测试范围内,根据第一类数据与所述第二类数据之间的关系确定回归测试用例。
其中,第一类数据与第二类数据之间的关系如下表1所示:
表1
根据上表1所示,当第一类数据与第二类数据之间的关系为继承时,需要采用全量用例;当第一类数据与第二类数据之间的关系为实现时,需要采用关键用例;当第一类数据与第二类数据之间的关系为组合时,需要采用核心用例;当第一类数据与第二类数据之间的关系为聚合时,需要采用重要用例;当第一类数据与第二类数据之间的关系为关联时,需要采用一般用例;当第一类数据与第二类数据之间的关系为依赖时,需要采用生死用例。
其中,全量用例适用于受影响交易的全部用例,关键用例适用于受影响交易的全部功能性用例,核心用例适用于受影响交易的核心功能用例,重要用例适用于受影响交易的正向用例,一般用例适用于受影响交易的主流程用例,生死用例适用于受影响交易的关键路径用例。
可见,当第一类数据与第二类数据之间的关系为实现关系、组合关系、聚合关系、关联关系、依赖关系时,均不会采用全量测试,可以提高回归测试的效率。除此之外,通过引入此方法,回归测试执行策略跟代码变更情况结合起来,执行策略有据可寻,避免了人为分析导致的范围过大和过小。
参见图2,该图为本申请实施例提供的另一种代码回归测试的方法的流程图。
如图2所示,该方法包括:
S201:确定代码变更范围。
S202:分析变更情况,确定更改的第一类数据。
S203:分析第一类数据与第二类数据之间的关联关系。
S204:根据受影响的第二类数据,以及第二类数据的属性和方法分析第二类数据的数据流。
S205:获取变化的数据流的集合。
S206:根据变化的数据流的集合,获取数据流影响集合。
S207:分析数据流影响范围获取此代码变更的影响域。
S208:根据代码变更的影响域,确认回归测试范围。
S209:通过回归测试范围,以及第一类数据与第二类数据之间的关系确认回归测试用例。
参见图3,该图为本申请实施例提供一种代码回归测试装置,装置包括:第一确定模块301、第一获得模块302、第二获得模块303和第二确定模块304;
第一确定模块301,用于响应于代码的变更,确定代码变更范围以及代码变更范围对应的第一类数据;
第一获得模块302,用于根据类数据之间的统一建模语言图,得到引用第一类数据的第二类数据,并确定第一类数据与第二类数据之间的关系;
第二获得模块303,用于根据第一类数据的方法、第二类数据的方法和预设数据流图,得到数据流图中受代码的变更影响的数据流,并确定数据流对应的回归测试范围;
第二确定模块304,用于在回归测试范围内,根据第一类数据与第二类数据之间的关系确定回归测试用例。
可选地,第一类数据与第二类数据之间的关系为以下关系中的一种或多种:继承关系、实现关系、组合关系、聚合关系、关联关系和依赖关系;
各关系对应的回归测试用例分别为全量用例、关键用例、核心用例、重要用例、一般用例和生死用例。
可选地,第二获得模块303,具体用于:
根据第一类数据的属性和方法得到受代码变更影响的第一类数据流,根据第二类数据的属性和方法得到受代码变更影响的第二类数据流;
在预设数据流图中确定第一类数据流与第二类数据流,并根据第一类数据流和第二类数据流确定对应的回归测试范围。
可选地,第一类数据与第二类数据之间的关系包括至少两种时,按照继承关系、实现关系、组合关系、聚合关系、关联关系和依赖关系的顺序确定出一种。
可选地,采用VSCODE编译器,确定代码变更范围。
本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请实施例所述的代码回归测试方法。
在实际应用中,所述计算机可读存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
如图4所示,本申请实施例提供的一种计算机设备的结构示意图。图4显示的计算机设备12,计算机设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图4所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图4中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理器单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本申请实施例提供的代码回归测试方法。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元提示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (10)
1.一种代码回归测试方法,其特征在于,所述方法包括:
响应于代码的变更,确定代码变更范围以及所述代码变更范围对应的第一类数据;
根据类数据之间的统一建模语言图,得到引用所述第一类数据的第二类数据,并确定所述第一类数据与所述第二类数据之间的关系;
根据所述第一类数据的方法、所述第二类数据的方法和预设数据流图,得到所述数据流图中受代码的变更影响的数据流,并确定所述数据流对应的回归测试范围;
在所述回归测试范围内,根据所述第一类数据与所述第二类数据之间的关系确定回归测试用例。
2.根据权利要求1所述的方法,其特征在于,所述第一类数据与所述第二类数据之间的关系为以下关系中的一种或多种:继承关系、实现关系、组合关系、聚合关系、关联关系和依赖关系;
各所述关系对应的所述回归测试用例分别为全量用例、关键用例、核心用例、重要用例、一般用例和生死用例。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述第一类数据的方法、所述第二类数据的方法和预设数据流图,得到所述数据流图中受代码的变更影响的数据流,并确定所述数据流对应的回归测试范围,具体包括:
根据所述第一类数据的属性和方法得到受代码变更影响的第一类数据流,根据所述第二类数据的属性和方法得到受代码变更影响的第二类数据流;
在所述预设数据流图中确定所述第一类数据流与所述第二类数据流,并根据所述第一类数据流和所述第二类数据流确定对应的回归测试范围。
4.根据权利要求2所述的方法,其特征在于,所述第一类数据与所述第二类数据之间的关系包括至少两种时,按照继承关系、实现关系、组合关系、聚合关系、关联关系和依赖关系的顺序确定出一种。
5.根据权利要求1所述的方法,其特征在于,采用VSCODE编译器,确定代码变更范围。
6.一种代码回归测试装置,其特征在于,所述装置包括:第一确定模块、第一获得模块、第二获得模块和第二确定模块;
所述第一确定模块,用于响应于代码的变更,确定代码变更范围以及所述代码变更范围对应的第一类数据;
所述第一获得模块,用于根据类数据之间的统一建模语言图,得到引用所述第一类数据的第二类数据,并确定所述第一类数据与所述第二类数据之间的关系;
所述第二获得模块,用于根据所述第一类数据的方法、所述第二类数据的方法和预设数据流图,得到所述数据流图中受代码的变更影响的数据流,并确定所述数据流对应的回归测试范围;
所述第二确定模块,用于在所述回归测试范围内,根据所述第一类数据与所述第二类数据之间的关系确定回归测试用例。
7.根据权利要求6所述的装置,其特征在于,所述第一类数据与所述第二类数据之间的关系为以下关系中的一种或多种:继承关系、实现关系、组合关系、聚合关系、关联关系和依赖关系;
各所述关系对应的所述回归测试用例分别为全量用例、关键用例、核心用例、重要用例、一般用例和生死用例。
8.根据权利要求6或7所述的装置,其特征在于,所述第二获得模块,具体用于:
根据所述第一类数据的属性和方法得到受代码变更影响的第一类数据流,根据所述第二类数据的属性和方法得到受代码变更影响的第二类数据流;
在所述预设数据流图中确定所述第一类数据流与所述第二类数据流,并根据所述第一类数据流和所述第二类数据流确定对应的回归测试范围。
9.一种计算机设备,其特征在于,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-5任一项所述的代码回归测试方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如权利要求1-5任一项所述的代码回归测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410227212.7A CN118051436A (zh) | 2024-02-29 | 2024-02-29 | 一种代码回归测试方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410227212.7A CN118051436A (zh) | 2024-02-29 | 2024-02-29 | 一种代码回归测试方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118051436A true CN118051436A (zh) | 2024-05-17 |
Family
ID=91047994
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410227212.7A Pending CN118051436A (zh) | 2024-02-29 | 2024-02-29 | 一种代码回归测试方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118051436A (zh) |
-
2024
- 2024-02-29 CN CN202410227212.7A patent/CN118051436A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11151018B2 (en) | Method and apparatus for testing a code file | |
US9208057B2 (en) | Efficient model checking technique for finding software defects | |
US7937692B2 (en) | Methods and systems for complete static analysis of software for building a system | |
Barbour et al. | An empirical study of faults in late propagation clone genealogies | |
US7900198B2 (en) | Method and system for parameter profile compiling | |
US11675575B2 (en) | Checking source code validity at time of code update | |
US20050204344A1 (en) | Program analysis device, analysis method and program of same | |
US10514898B2 (en) | Method and system to develop, deploy, test, and manage platform-independent software | |
US20090125874A1 (en) | Method and system for creating projects in a rational application developer workspace | |
US8302087B2 (en) | Quality assurance in software systems through autonomic reliability, availability and serviceability code generation | |
US20100281240A1 (en) | Program Code Simulator | |
US8359579B2 (en) | Monitoring dynamic aspect oriented applications at execution time | |
CN112988578A (zh) | 一种自动化测试方法和装置 | |
CN111488275B (zh) | Ui自动化测试方法、装置、存储介质及电子设备 | |
US8291383B1 (en) | Code analysis via dual branch exploration | |
Raghuvanshi | Introduction to Software Testing | |
US11947966B2 (en) | Identifying computer instructions enclosed by macros and conflicting macros at build time | |
CN115705250A (zh) | 监测堆栈使用量以优化程序 | |
CN118051436A (zh) | 一种代码回归测试方法、装置、设备及存储介质 | |
CN110297639B (zh) | 用于检测代码的方法和装置 | |
CN112114811A (zh) | 一种编译方法、装置和设备 | |
CN111258910B (zh) | 静态链接库功能验证方法、装置、电子设备及存储介质 | |
US20240103853A1 (en) | Code maintenance system | |
CN113190453A (zh) | 一种用户界面测试方法、装置、服务器和介质 | |
Lahav et al. | Rely-Guarantee Reasoning for Causally Consistent Shared Memory (Extended Version) |
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 |