CN117370154A - 失效用例的识别方法、装置、电子设备及存储介质 - Google Patents
失效用例的识别方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117370154A CN117370154A CN202311185159.0A CN202311185159A CN117370154A CN 117370154 A CN117370154 A CN 117370154A CN 202311185159 A CN202311185159 A CN 202311185159A CN 117370154 A CN117370154 A CN 117370154A
- Authority
- CN
- China
- Prior art keywords
- application
- interface
- failure
- code
- data set
- 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
- 238000000034 method Methods 0.000 title claims abstract description 290
- 238000007405 data analysis Methods 0.000 claims abstract description 26
- 230000008859 change Effects 0.000 claims description 91
- 238000004458 analytical method Methods 0.000 claims description 33
- 238000004590 computer program Methods 0.000 claims description 15
- 238000012360 testing method Methods 0.000 abstract description 46
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004573 interface analysis Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000001105 regulatory effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction 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
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Stored Programmes (AREA)
Abstract
本申请提供了一种供一种失效用例的识别方法、装置、电子设备及存储介质。该方法包括:获取应用程序的当前版本代码;基于当前版本代码进行数据分析,得到关于当前版本代码的接口方法构成的接口数据集合;将接口数据集合与预设的关联数据集合进行比对,根据比对的结果判断应用程序对应的用例是否为失效用例,能及时发现失效用例,提升引流测试的测试效率。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种失效用例的识别方法、装置、电子设备、计算机可读存储介质及计算机程序产品。
背景技术
在应用程序及其功能模块的代码更新上线之前,通常进行引流测试。引流测试中,通过录制一些应用程序及其功能模块的代码方法的参数和返回值作为用例,在测试时使用用例中的录制参数重新执行一遍代码方法来进行回放,并验证回放的回放返回值是否和用例中的录制返回值一致。在相同参数的情况下,运行同一段代码,如果回放返回值和录制的返回值不一致,说明代码执行未达到预期(未通过引流测试),可能存在缺陷(bug)。因此,引流测试利用录制数据代替传统测试繁杂的参数构造和结果验证,能有效降低传统自动化的编写成本。
但是,相关技术中由于失效的用例的存在,导致引流测试的测试效率低。
发明内容
本申请实施例提供一种失效用例的识别方法、装置、电子设备及存储介质,能及时发现失效用例,免于将该失效用例再用于引流测试,从而提升引流测试的测试效率。
本申请实施例的一方面提供一种失效用例的识别方法,包括:获取应用程序的当前版本代码;基于所述当前版本代码进行数据分析,得到关于所述当前版本代码的接口方法构成的接口数据集合;将所述接口数据集合与预设的关联数据集合进行比对,根据比对的结果判断所述应用程序对应的用例是否为失效用例。
在一些实施例中,所述根据比对的结果判断所述应用程序对应的用例是否为失效用例,包括:若所述接口数据集合与所述关联数据集合存在交集,则确定所述应用程序对应的用例为失效用例。
在一些实施例中,所述接口数据集合包括:接口参数类型集及接口返回值类型集;所述关联数据集合包括:所述当前版本代码的属性变更类集;将所述接口数据集合与预设的关联数据集合进行比对,根据比对的结果判断所述应用程序对应的用例是否为失效用例,包括:将所述接口参数类型集、接口返回值类型集分别与所述属性变更类集进行比对;若所述接口参数类型集、接口返回值类型集中的至少一个与所述属性变更类集存在交集,则确定所述应用程序对应的用例为失效用例。
在一些实施例中,所述的方法,还包括:获取所述应用程序的在先记录的上一版本代码,基于所述当前版本代码及所述上一版本代码进行数据分析,得到所述当前版本代码相较于所述上一版本代码的增量代码;基于所述增量代码得到所述当前版本代码的属性变更类集。
在一些实施例中,所述接口数据集合包括:接口子调用方法集;所述关联数据集合包括:上一次识别之后的新增mock点集;将所述接口数据集合与预设的关联数据集合进行比对,根据比对的结果判断所述应用程序对应的用例是否为失效用例,包括:将所述接口子调用方法集与新增mock点集进行比对;若所述接口子调用方法集与新增mock点集存在交集,则确定所述应用程序对应的用例为失效用例。
在一些实施例中,所述的方法,还包括:从分析记录表数据库中获取上一次识别所记录的mock点,以及从mock点记录表数据库中获取在上一次识别之后所述应用程序下的mock点;基于上一次识别所记录的mock点,及在上一次识别之后所述应用程序下的mock点,确定上一次识别之后新增的mock点,得到上一次识别之后的新增mock点集。
在一些实施例中,所述接口数据集合包括:接口子调用方法集;所述关联数据集合包括:所述当前版本代码的代码变更方法集,以及所述应用程序下的mock点集;其中,所述代码变更方法集是基于所述当前版本代码相较于在线记录的上一版本代码的增量代码得到的;将所述接口数据集合与预设的关联数据集合进行比对,根据比对的结果判断所述应用程序对应的用例是否为失效用例,包括:将所述代码变更方法集、所述接口子调用方法集、所述应用程序下的mock点集进行比对,若所述代码变更方法集、所述接口子调用方法集、所述应用程序下的mock点集存在交集,则确定所述应用程序对应的用例为失效用例。
在一些实施例中,将所述代码变更方法集、所述接口子调用方法集、所述应用程序下的mock点集进行比对,若所述代码变更方法集、所述接口子调用方法集、所述应用程序下的mock点集存在交集,则确定所述应用程序对应的用例为失效用例,包括:将所述代码变更方法集与所述接口子调用方法集进行比对;若所述代码变更方法集与所述接口子调用方法集存在交集,则根据所述代码变更方法集与所述接口子调用方法集中重叠的元素确定代码变更的子调用方法;判断所述代码变更的子调用方法及其后续子调用方法,是否存在于所述应用程序下的mock点集;若所述代码变更的子调用方法及其后续子调用方法,存在于所述应用程序下的mock点集,则确定所述应用程序对应的用例为失效用例。
在一些实施例中,所述基于所述当前版本代码进行数据分析,包括:基于抽象语法树对所述当前版本代码进行数据分析,提取所述当前版本代码的接口方法构成。
在一些实施例中,在确定所述应用程序对应的用例为失效用例之后,所述方法还包括:将所述失效用例从用例记录表数据库中清除。
在一些实施例中,在确定所述应用程序对应的用例为失效用例之后,所述方法还包括:基于当前的识别时间及识别状态对分析记录表数据库进行更新;其中,所述识别状态包括:所述应用程序对应的用例为失效用例,或,所述应用程序对应的用例为有效用例。
在一些实施例中,在确定所述应用程序对应的用例为失效用例之后,所述方法还包括:基于所述失效用例所对应的mock点,对mock点记录表数据库进行更新;其中,所述mock点记录表数据库中存储有所述应用程序下的mock点以及mock点的增加时间。。
本申请实施例的另一方面提供一种失效用例的识别装置,包括:
获取单元,用于获取应用程序的当前版本代码;
分析单元,用于基于所述当前版本代码进行数据分析,得到关于所述当前版本代码的接口方法构成的接口数据集合;
比对单元,用于将所述接口数据集与预设的关联数据集合进行比对,根据比对的结果判断所述应用程序对应的用例是否为失效用例。
在一些实施例中,所述比对单元在用于根据比对的结果判断所述应用程序对应的用例是否为失效用例时,还进一步用于:在所述接口数据集合与所述关联数据集合存在交集时,确定所述应用程序对应的用例为失效用例。
在一些实施例中,所述接口数据集合包括:接口参数类型集及接口返回值类型集;所述关联数据集合包括:所述当前版本代码的属性变更类集;所述比对单元在用于将所述接口数据集合与预设的关联数据集合进行比对,根据比对的结果判断所述应用程序对应的用例是否为失效用例时,还进一步用于:将所述接口参数类型集、接口返回值类型集分别与所述属性变更类集进行比对;在所述接口参数类型集、接口返回值类型集中的至少一个与所述属性变更类集存在交集时,确定所述应用程序对应的用例为失效用例。
在一些实施例中,所述获取单元还用于:获取所述应用程序的在先记录的上一版本代码;所述分析单元还用于:基于所述当前版本代码及所述上一版本代码进行数据分析,得到所述当前版本代码相较于所述上一版本代码的增量代码;基于所述增量代码得到所述当前版本代码的属性变更类集。
在一些实施例中,所述接口数据集合包括:接口子调用方法集;所述关联数据集合包括:上一次识别之后的新增mock点集;所述比对单元在用于将所述接口数据集合与预设的关联数据集合进行比对,根据比对的结果判断所述应用程序对应的用例是否为失效用例时,还进一步用于:将所述接口子调用方法集与新增mock点集进行比对;在所述接口子调用方法集与新增mock点集存在交集时,确定所述应用程序对应的用例为失效用例。
在一些实施例中,所述获取单元还用于:从分析记录表数据库中获取上一次识别所记录的mock点,以及从mock点记录表数据库中获取在上一次识别之后所述应用程序下的mock点;所述分析单元还用于:基于上一次识别所记录的mock点,及在上一次识别之后所述应用程序下的mock点,确定上一次识别之后新增的mock点,得到上一次识别之后的新增mock点集。
在一些实施例中,所述接口数据集合包括:接口子调用方法集;所述关联数据集合包括:所述当前版本代码的代码变更方法集,以及所述应用程序下的mock点集;其中,所述代码变更方法集是基于所述当前版本代码相较于在线记录的上一版本代码的增量代码得到的;所述比对单元在用于将所述接口数据集合与预设的关联数据集合进行比对,根据比对的结果判断所述应用程序对应的用例是否为失效用例时,还进一步用于:将所述代码变更方法集、所述接口子调用方法集、所述应用程序下的mock点集进行比对,在所述代码变更方法集、所述接口子调用方法集、所述应用程序下的mock点集存在交集时,确定所述应用程序对应的用例为失效用例。
在一些实施例中,所述比对单元在用于将所述代码变更方法集、所述接口子调用方法集、所述应用程序下的mock点集进行比对,在所述代码变更方法集、所述接口子调用方法集、所述应用程序下的mock点集存在交集时,确定所述应用程序对应的用例为失效用例时,还进一步用于:将所述代码变更方法集与所述接口子调用方法集进行比对;在所述代码变更方法集与所述接口子调用方法集存在交集时,根据所述代码变更方法集与所述接口子调用方法集中重叠的元素确定代码变更的子调用方法;判断所述代码变更的子调用方法及其后续子调用方法,是否存在于所述应用程序下的mock点集;在所述代码变更的子调用方法及其后续子调用方法,存在于所述应用程序下的mock点集时,确定所述应用程序对应的用例为失效用例。
在一些实施例中,所述分析单元在用于基于所述当前版本代码进行数据分析时,还进一步用于:基于抽象语法树对所述当前版本代码进行数据分析,提取所述当前版本代码的接口方法构成。
在一些实施例中,所述装置还包括:第一更新单元,用于在确定所述应用程序对应的用例为失效用例之后,将所述失效用例从用例记录表数据库中清除。
在一些实施例中,所述装置还包括:第二更新单元,用于在确定所述应用程序对应的用例为失效用例之后,基于当前的识别时间及识别状态对分析记录表数据库进行更新;其中,所述识别状态包括:所述应用程序对应的用例为失效用例,或,所述应用程序对应的用例为有效用例。
在一些实施例中,所述装置还包括:第三更新单元,用于在确定所述应用程序对应的用例为失效用例之后,基于所述失效用例所对应的mock点,对mock点记录表数据库进行更新;其中,所述mock点记录表数据库中存储有所述应用程序下的mock点以及mock点的增加时间。
本申请实施例的另一方面提供一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行如上任一实施例所述的方法。
本申请实施例的另一方面提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如上任一实施例所述的方法。
本申请实施例的另一方面提供一种计算机程序产品,包括计算机程序,其特征在于,计算机程序被处理器执行时实现如上任一实施例所述的方法。
本申请实施例提供的失效用例的识别方法、装置、电子设备、计算机可读存储介质及计算机程序产品,通过将基于所述当前版本代码进行数据分析得到的关于所述当前版本代码的接口方法构成的接口数据集合,与预设的关联数据集合进行比对,从而能够根据比对的结果及时判断所述应用程序对应的用例是否为失效用例。若能够根据比对的结果确定应用程序对应的用例为失效用例,则该失效用例不再在引流测试的回放过程中使用,如此能够节省时间,提升测试效率。相对于人工排查失效用例的方式,本实施例的识别方式能实现批量快速定位到失效用例,失效用例的查找周期较短,从而使失效用例的查找效率较高且较为便捷。而且,及时发现失效用例,还利于及时补充新的用例,加快了用例的更新换代速度,利于确保引流测试随时有效,能够确保测试质量的稳定性及可靠性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为应用本申请实施例的失效用例的识别方法的系统的应用场景示意图;
图2本申请实施例提供的失效用例的识别方法的流程示意图;
图3为本申请实施例提供的接口子调用方法集的示意图;
图4为本申请另一实施例提供的失效用例的识别方法的流程示意图;
图5为本申请实施例提供的装置的结构示意图;
图6为本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种引流测试中识别失效用例的方法、装置、电子设备及存储介质。具体地,本申请实施例的识别失效用例的方法可以由电子设备执行,其中,该电子设备可以为终端或者服务器等设备。该终端可以为智能手机、平板电脑、笔记本电脑等设备,终端还可以包括客户端,该客户端可以是浏览器客户端等。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
首先,对本申请实施例涉及的专有名词进行解释。
引流测试:是在流量录制测试时,获取流量在链路上录制的参数和返回值。在流量回放时,使用录制参数重新在链路上执行一遍,验证回放的返回值是否和录制一致。
mock点:在应用程序测试过程中,对于某些不容易构造或者不容易获取的方法对象可以作为mock点,根据mock点创建的虚拟对象可以作为真实方法在测试期间的替代,来对应用程序进行测试。
失效用例:由于代码变动引起接口方法的入参和返回值定义改变,或接口实现的内部逻辑改变引起的mock点的增加,造成已沉淀的用例失效,失效的用例称为失效用例。
接口方法:java语言中,应用程序与应用程序之间、或者应用程序与客户端之间,用来接收请求和数据,并把计算后的结果返回的方法称为接口方法。
相关技术中,在引流测试过程中,由于代码变动引起接口方法的入参和返回值定义改变,或接口方法的实现代码没变但Mock点增加,或接口方法的实现代码改变引起的mock点的增加等因素,会导致已录制的用例失效的情况发生。
相关技术通常是在回放失败之后,由人工排查回放失败的原因,进而排查出失效用例。例如,由人工分析比对回放全字段与已录制的用例,发现了没对上的字段,进一步发现新版代码改动了返回值定义,回放失败,确认已录制的用例失效。又例如,在回放启动失败时,由人工排查发现参数校验错误,由人工查看代码进一步确认是新版代码的参数字段发生了变化,则确认已录制的用例失效。再例如,在回放成功启动但未正常结束时,由人工排查发现中间子调用mock点参数相似度比对为0,则确认是新增mock点但已录制的用例没有录到,确认已录制的用例失效。
但是,上述相关技术中的排查方式,是在利用已经失效的用例进行引流测试之后进行的,而使用已经失效的用例进行的引流测试是无效的,导致引流测试的测试效率降低。
而且,上述人工逐个排查定位失效用例的方式,查找失效用例的周期较长,导致维护用例的成本高。
为了解决上述问题中的至少一个,本申请实施例提供一种失效用例的识别方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够及时识别出已经失效的用例,利于减少甚至避免采用已经失效的用例进行引流测试,从而能够提高引流测试的测试效率。本申请实施例还能实现批量快速定位到失效用例的效果,失效用例的查找周期较短,从而使失效用例的查找效率较高且较为便捷。而且,本申请实施例利于及时补充新的用例,加快了用例的更新换代速度,利于确保引流测试随时有效。
图1为应用本申请实施例的失效用例的识别方法的系统的结构示意图。请参照图1,该系统包括终端10和服务器20等;终端10和服务器20之间通过网络连接,比如,通过有线或无线网络连接等。
其中,终端10,可以用于显示图形用户界面。其中,该终端用于通过图形用户界面与用户进行交互,例如通过终端下载安装相应的客户端并运行,例如通过调用相应的小程序并运行,例如通过登录网站呈现相应的图像用户界面等。在本申请实施例中,可以通过终端10获取应用程序的当前版本代码;基于当前版本代码进行数据分析,得到关于当前版本代码的接口方法构成的接口数据集合;将接口数据集合与预设的关联数据集合进行比对,根据比对的结果判断应用程序对应的用例是否为失效用例。服务器20存储历史的识别数据以及当前的识别数据。
需要注意的是,上述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施例在此方面不受任何限制。相反,本公开的实施例可以应用于适用的任何场景。
以下进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优先顺序的限定。
图2为本申请实施例提供的失效用例的识别方法;请参照图2,本申请实施例提供一种失效用例的识别方法100,包括以下步骤S110至步骤S130。
步骤S110,获取应用程序的当前版本代码。
步骤S120,基于当前版本代码进行数据分析,得到关于当前版本代码的接口方法构成的接口数据集合。
步骤S130,将接口数据集合与预设的关联数据集合进行比对,根据比对的结果判断应用程序对应的用例是否为失效用例。
其中,步骤S110中,应用程序的当前版本代码可以为应用程序最新版本的代码。当前版本代码可以存储在代码数据库或分析记录表数据库中。
步骤S120中,应用程序一般采用java语言编写而成,java语言具有固定的规则。java语言中,具备某些共同特征的实体的集合称为类(class),类里面的代码结构符合语法树的数据结构。因此,可以采用语法树技术对当前版本代码进行数据分析,提取当前版本代码的接口方法构成,继而得到接口数据集合。
在一些示例中,步骤S120可以包括:基于AST(Abstract Syntax Tree,抽象语法树,)对当前版本代码进行数据分析,提取当前版本代码的接口方法构成,继而得到接口数据集合。
本实施例中,得到的接口数据集合可以包括如下至少一种子集:接口参数类型集、接口返回值类型集、接口子调用方法集。
步骤S130中,得到接口数据集合之后,获取与所得到的接口数据集合相关联的关联数据集合。
其中,接口数据集合和关联数据集合之间的关联关系为预先建立的,具体可以先分析用例失效的因素,再根据用例失效的因素建立关联关系。示例性的,根据用例失效的因素,确定接口数据集合中与该因素相适配的子集,并从其它集合确定与该因素相适配的集合作为该子集的关联数据集合。
例如,由于随着代码方法持续迭代,会出现接口参数(或称为接口入参)和返回值定义改变的情况。而若接口参数和返回值定义已改变,那么在回放完成之后,将代码方法执行的返回值与录制的返回值做全字段比对时,会导致比对不通过,进而导致回放不通过,回放失败。因此,接口参数和返回值定义改变,可以作为用例失效的因素之一。
在用例失效的因素包括接口参数和返回值定义改变时,接口数据集合中与其适配的子集包括:接口参数类型集、接口返回值类型集。其它集合中与上述因素相适配的包括:当前版本代码的属性变更类集。因此,当前版本代码的属性变更类集可以作为接口参数类型集、接口返回值类型集的关联数据集合。
又例如,由于人为增加了mock点等原因,会使得回放时找不到对应录制的数据,当前mock点方法的参数和录制的参数的相似度为0,当前mock点方法的参数和录制的参数做比对不通过,回放失败。因此,接口方法的实现代码没变但Mock点增加,可以作为用例失效的因素之一。
在用例失效的因素包括接口方法的实现代码没变但Mock点增加时,接口数据集合中与其适配的子集包括:接口子调用方法集。其它集合中与上述因素相适配的包括:新增mock点集。因此,新增mock点集可以作为接口子调用方法集的关联数据集合。
再例如,由于接口方法的实现代码发生了变化,导致增加了mock点,也会使得回放时找不到对应录制的数据,当前mock点方法的参数和录制的参数的相似度为0,当前mock点方法的参数和录制的参数做比对不通过,回放失败。因此,接口方法的实现代码变化引入新的mock点,可以作为用例失效的因素之一。
在用例失效的因素包括接口方法的实现代码变化引入新的mock点时,接口数据集合中与其适配的子集包括:接口子调用方法集。其它集合中与上述因素相适配的包括:代码变更方法集、应用程序下的mock点集。因此,代码变更方法集、应用程序下的mock点集可以作为接口子调用方法集的关联数据集合。
本实施例中,在获取与所得到的接口数据集合相关联的关联数据集合之后,将接口数据集合中的元素与关联数据集合中的元素进行比对,在比对结果满足预设条件例如存在相同的元素时,确定应用程序的该用例已失效,将该用例作为失效用例,失效用例不再用于引流测试。
在一些示例中,步骤S130中,将接口数据集合与预设的关联数据集合进行比对,根据比对的结果判断应用程序对应的用例是否为失效用例,可以包括以下步骤:判断接口数据集合与预设的关联数据集合是否存在交集,若接口数据集合与关联数据集合存在交集,则说明接口参数和返回值定义发生改变、或接口方法的实现代码改变引入新的mock点、或接口方法的实现代码未改变但Mock点增加,进而可以确定应用程序对应的用例为失效用例。
其中,在接口数据集合与关联数据集合中存在相对应的元素时,例如存在相同的元素时,确定接口数据集合与关联数据集合存在交集。
在具体实现时,可以对接口数据集合与预设的关联数据集合取交集,若得到的结果为含有元素的集合,则确定接口数据集合与关联数据集合存在交集,进而确定应用程序对应的用例为失效用例。
另外,若得到的结果为不含任何元素的空集,则确定接口数据集合与关联数据集合不存在交集,可以将应用程序对应的用例继续用于引流测试,或者利用其它方式进一步进行排查,本实施例此处不做具体限定。
可以理解的是:在接口数据集合中的子集存在多组关联数据集合时,则该子集中的元素与其中任一组关联数据集合存在交集,则确定应用程序的该用例已失效,将该用例作为失效用例。
在一些示例中,在步骤S130中确定应用程序对应的用例为失效用例之后,方法100还可以包括:将失效用例从用例记录表数据库中清除,以及时清理用例记录表数据库中的无效数据。
本实施例中,方法100可以在使用用例进行回放之前执行。通过将基于当前版本代码进行数据分析得到的关于当前版本代码的接口方法构成的接口数据集合,与预设的关联数据集合进行比对,从而能够根据比对的结果及时判断应用程序对应的用例是否为失效用例。若能够根据比对的结果确定应用程序对应的用例为失效用例,则该失效用例不再在引流测试的回放过程中使用,如此能够节省时间,提升测试效率。相对于人工排查失效用例的方式,本实施例的识别方式能实现批量快速定位到失效用例,失效用例的查找周期较短,从而使失效用例的查找效率较高且较为便捷。而且,及时发现失效用例,还利于及时补充新的用例,加快了用例的更新换代速度,利于确保引流测试随时有效,能够确保测试质量的稳定性及可靠性。
在一些实施例中,接口数据集合包括:接口参数类型集及接口返回值类型集;关联数据集合包括:当前版本代码的属性变更类集。
步骤S130中,将接口数据集合与预设的关联数据集合进行比对,根据比对的结果判断应用程序对应的用例是否为失效用例,可以包括以下步骤a1至步骤a2。
步骤a1:将接口参数类型集、接口返回值类型集分别与属性变更类集进行比对。
步骤a2:若接口参数类型集、接口返回值类型集中的至少一个与属性变更类集存在交集,则确定应用程序对应的用例为失效用例。
本实施例中,分别取接口参数类型集、接口返回值类型集与属性变更类集的交集,若是接口参数类型集、接口返回值类型集中的至少一个与属性变更类集存在交集,则说明接口参数类型或接口返回值类型发生了改变,那么已录制的用例失效,从而确定应用程序对应的用例为失效用例。其中,接口参数类型和接口返回值类型通常是归纳数据的类,其主要是属性(字段),其发生改变包括:字段删除、字段类型变更。
本实施例中,在分别取接口参数类型集、接口返回值类型集与属性变更类集的交集时,不区分先后顺序。
例如,可以同时取接口参数类型集与属性变更类集的交集,以及接口返回值类型集与属性变更类集的交集。若得到的两个结果中,有至少一个结果为含有元素的集合,则确定应用程序对应的用例为失效用例。
也可以先取接口参数类型集与属性变更类集的交集,若得到的结果为含有元素的集合,则确定应用程序对应的用例为失效用例。若得到的结果为不含任何元素的空集,则取接口返回值类型集与属性变更类集的交集,若得到的结果为含有元素的集合,则确定应用程序对应的用例为失效用例。
当然,也可以先取接口返回值类型集与属性变更类集的交集,若得到的结果为含有元素的集合,则确定应用程序对应的用例为失效用例。若得到的结果为不含任何元素的空集,则取接口参数类型集与属性变更类集的交集,若得到的结果为含有元素的集合,则确定应用程序对应的用例为失效用例。
另外,在取接口参数类型集与属性变更类集的交集,以及取接口返回值类型集与属性变更类集的交集,所得到的结果均为不含任何元素的空集,则可以通过其它方式进一步判断用例是否失效,或将应用程序对应的用例继续用于引流测试。
本实施例中,获取当前版本代码的属性变更类集的过程,可以包括以下步骤b1至步骤b3。
步骤b1:获取应用程序的在先记录的上一版本代码。
步骤b2:基于当前版本代码及上一版本代码进行数据分析,得到当前版本代码相较于上一版本代码的增量代码。
步骤b3:基于增量代码得到当前版本代码的属性变更类集。
其中,历史版本代码可以存储在代码数据库或分析记录表数据库中,历史版本代码和当前版本代码可以存储于相同的数据库中,也可以存储于不同的数据库中,具体可以根据实际需要进行设置。历史版本代码包括:上一版本代码。
从代码数据库中获取当前版本代码及上一版本代码后,可以利用代码版本工具例如分布式版本控制系统git来获取增量代码。具体的,可以利用git命令(如git diff)来获取当前版本代码相较于上一版本代码的增量代码。或者,可以通过应用程序接口API,并利用与其绑定的插件如Jgit来获取当前版本代码相较于上一版本代码的增量代码。得到增量代码之后,可以方法为维度,统计得到当前版本代码的属性变更类集。
在一些实施例中,接口数据集合包括:接口子调用方法集;关联数据集合包括:上一次识别之后的新增mock点集。
步骤S130中,将接口数据集合与预设的关联数据集合进行比对,根据比对的结果判断应用程序对应的用例是否为失效用例,可以包括以下步骤c1至步骤c2。
步骤c1:将接口子调用方法集与新增mock点集进行比对。
步骤c2:若接口子调用方法集与新增mock点集存在交集,则确定应用程序对应的用例为失效用例。
对于接口方法的实现代码没变但Mock点增加的情况,可以通过判断子调用方法是否对新增mock点进行了调用。由于被调用的mock点会出现在接口子调用方法集中,因此,可以通过判断接口子调用方法集与新增mock点集是否存在交集,来判断应用程序对应的用例是否为失效用例。
其中,可以从接口方法起始分析调用关系,得到一个树状结构的调用关系图,即接口子调用方法集。图3为本申请实施例提供的接口子调用方法集的示意图,如图3所示,图3中每一个节点都是接口子调用方法集的元素,同时接口子调用方法集保存调用关系。
本实施例中,可以取接口子调用方法集与新增mock点集的交集,若得到的结果为含有元素的集合,则确定子调用方法对新增mock点进行了调用,则确定应用程序对应的用例为失效用例。
另外,若得到的结果为不含任何元素的空集,则说明子调用方法没有对新增mock点进行调用,可以通过其它方式进一步判断用例是否失效,或将应用程序对应的用例继续用于引流测试。
本实施例中,获取新增mock点集的过程,可以包括如下步骤d1至步骤d2。
步骤d1:从分析记录表数据库中获取上一次识别所记录的mock点,以及从mock点记录表数据库中获取在上一次识别之后应用程序下的mock点。
步骤d2:基于上一次识别所记录的mock点,及在上一次识别之后应用程序下的mock点,确定上一次识别之后新增的mock点,得到上一次识别之后的新增mock点集。
其中,分析记录表可以存储有历史的识别数据,例如历史的识别时间和识别状态等数据。识别状态包括:应用程序对应的用例为失效用例,或,应用程序对应的用例为有效用例。本实施例可以根据识别时间定位到上一次识别所记录的mock点。mock点记录表数据库可以存储有应用程序下的所有mock点。通过将上一次识别所记录的mock点与应用程序下的所有mock点进行比对,可以确定上一次识别之后新增的mock点,从而得到上一次识别之后的新增mock点集。
另外,在确定应用程序对应的用例为失效用例之后,本实施例还可以将当前的识别时间、识别状态以及当前的识别过程中产生的数据存储至分析记录表,便于下一次识别使用。在最终确定应用程序对应的用例未失效之后,也可以将当前的识别时间以及识别状态等存储至分析记录表,便于后续查看或使用。
在一些实施例中,接口数据集合包括:接口子调用方法集。关联数据集合包括:当前版本代码的代码变更方法集,以及应用程序下的mock点集。其中,代码变更方法集是基于当前版本代码相较于在线记录的上一版本代码的增量代码得到的。
步骤S130中,将接口数据集合与预设的关联数据集合进行比对,根据比对的结果判断应用程序对应的用例是否为失效用例,可以包括以下步骤:将代码变更方法集、接口子调用方法集、应用程序下的mock点集进行比对,若代码变更方法集、接口子调用方法集、应用程序下的mock点集存在交集,则确定应用程序对应的用例为失效用例。
其中,若是代码变更方法集、接口子调用方法集、应用程序下的mock点集存在交集,则说明代码变更的子调用方法引入了新的mock点,则确定应用程序对应的用例为失效用例。
本实施例中,将代码变更方法集、接口子调用方法集、应用程序下的mock点集进行比对,若代码变更方法集、接口子调用方法集、应用程序下的mock点集存在交集,则确定应用程序对应的用例为失效用例,可以包括以下步骤e1至步骤e4。
步骤e1:将代码变更方法集与接口子调用方法集进行比对。
步骤e2:若代码变更方法集与接口子调用方法集存在交集,则根据代码变更方法集与接口子调用方法集中重叠的元素确定代码变更的子调用方法。
步骤e3:判断代码变更的子调用方法及其后续子调用方法,是否存在于应用程序下的mock点集。
步骤e4:若代码变更的子调用方法及其后续子调用方法,存在于应用程序下的mock点集,则确定应用程序对应的用例为失效用例。
具体实现时,可以取代码变更方法集与接口子调用方法集的交集,若得到的结果为含有元素的集合,则确定子调用方法的代码发生了改变。其中,代码变更方法集与接口子调用方法集的交集中的元素为代码变更的子调用,根据该代码变更的子调用从接口子调用方法集中确定该子调用所有的后续子调用。接着判断代码变更的子调用方法及其后续子调用方法,是否与应用程序下的mock点集中的子调用有重合,若有重合,则确定代码变更的子调用方法及其后续子调用方法引入了新的mock点,进而确定应用程序对应的用例为失效用例。
图3为本申请实施例提供的接口子调用方法集的示意图,请参照图3,示例性的,接口子调用方法集可以包括接口子调用方法a~h,其中,接口子调用方法d、f、g及e是接口子调用方法b的后续子调用方法,接口子调用方法h是接口子调用方法c的后续子调用方法。例如,若确定代码变更的子调用方法为图3中的接口子调用方法b,且确定接口子调用方法b的后续子调用方法g与应用程序下的mock点集重合,则可以确定应用程序对应的用例为失效用例。又例如,若确定代码变更的子调用方法为图3中的接口子调用方法c,且确定接口子调用方法c的后续子调用方法h与应用程序下的mock点集重合,则可以确定应用程序对应的用例为失效用例。
另外,若取代码变更方法集与接口子调用方法集的交集,得到的结果为不含任何元素的空集,则表示接口方法的实现代码没有发生变化,可以通过其它识别方式进一步判断用例是否失效,或将应用程序对应的用例继续用于引流测试。
若代码变更的子调用方法及其后续子调用方法,与应用程序下的mock点集中的子调用没有重合,则说明代码变更的子调用方法及其后续子调用方法,没有引入新的mock点,可以通过其它识别方式进一步判断用例是否失效,或将应用程序对应的用例继续用于引流测试。
本实施例中,在步骤S130中确定应用程序对应的用例为失效用例之后,方法100还可以包括:基于失效用例所对应的mock点,对mock点记录表数据库进行更新,便于后续查看或使用。其中,mock点记录表数据库中存储有应用程序下的mock点以及mock点的增加时间。
图4为本申请另一实施例提供的失效用例的识别方法的流程示意图,请参照图4,在一个实施例中,获取应用程序的当前版本代码,进行数据分析。其中,数据分析包括:利用git分析版本差异、利用AST技术分析源码、mock点统计。利用git分析版本差异、利用AST技术分析源码、mock点统计可以并行分析。
其中,利用git分析版本差异,包括:获取应用程序的在先记录的上一版本代码,利用git命令git diff比对当前版本代码与上一版本代码这两个版本代码并确定当前版本代码相较于在线记录的上一版本代码的增量代码,以得到当前版本代码的属性变更类集,以及当前版本代码的代码变更方法集。
利用AST技术分析源码,包括:找出接口的参数类型以得到接口参数类型集;找出接口返回值类型以得到接口返回值类型集;找出接口所有的子调用方法以得到接口子调用方法集。
mock点统计,包括:根据分析记录表和mock点记录表,获取上一次识别后新增的mock点,以得到新增mock点集;从mock点记录表中查询应用程序下所有的mock点,以得到应用程序下的mock点集。
数据分析之后,进行用例失效分析。其中,利用数据分析产出的数据进行用例失效的分析,在用例失效的分析过程中,采用取交集的方式实现对失效用例的识别定位,利于提高失效用例的识别效率及准确性。
其中,可以对当前版本代码的属性变更类集、接口参数类型集及接口返回值类型集进行数据合并分析,从而进行接口参数和返回值定义变更的接口分析。若接口参数类型集、接口返回值类型集中的至少一个与属性变更类集存在交集,则确定接口参数和接口返回值类型发生了变更,进而可以确定应用程序对应的用例失效。
还可以对接口子调用方法集及新增mock点集进行数据合并分析,从而进行mock点新增的接口分析。若接口子调用方法集与新增mock点集存在交集,则确定子调用方法对新增mock点进行了调用,进而确定应用程序对应的用例失效。
又可以对当前版本代码的代码变更方法集、接口子调用方法集及应用程序下的mock点集进行数据合并分析,从而进行代码变更引入新的mock点的接口分析。若代码变更方法集、接口子调用方法集、应用程序下的mock点集存在交集,则确定子调用方法的代码发生了变更,且代码变更的子调用方法及其后续子调用方法引入了新的mock点,进而确定应用程序对应的用例失效。
在上述三个数据合并分析步骤中,其中至少一个数据合并分析步骤的结果为应用程序对应的用例失效,则可确定应用程序对应的用例为失效用例,所确定的失效用例可以具有一个或多个,该一个或多个失效用例构成失效用例集。
另外,当三个数据合并分析的结果,均为应用程序对应的用例未失效时,可以采用其它方式进一步进行识别,或者将应用程序对应的用例作为有效用例继续用于引流测试,具体可以根据实际需要进行设置。
针对失效用例集中的失效用例,可以从用例记录表数据库中清除失效用例,在分析记录表数据库中新增分析记录,在mock点记录表数据库中更新mock点记录。
本实施例,利用代码变更记录和静态代码分析,能够克服解决基于引流工具sandbox-repeater引流用例失效识别的难题,实现提前预知失效用例的效果,免于利用失效的用例进行引流测试,从而利于提高测试效率。而且,本实施例解决了人工排查失效用例的成本高、周期长的问题,提高了查找识别失效用例的便捷性。另外,根据本实施例的识别结果,在确定应用程序对应的用例失效时,利于及时告知用例失效,便于人员及时录制补充新的用例,用例更新换代速度更快,基本可以做到引流测试随时有效,稳定的保障测试质量。
为便于更好的实施本申请实施例的失效用例的识别方法,本申请实施例还提供一种失效用例的识别装置,请参照图5,图5为本申请实施例提供的失效用例的识别装置的结构示意图。其中,该失效用例的识别装置500可以包括以下单元。
获取单元501,用于获取应用程序的当前版本代码。
分析单元502,用于基于当前版本代码进行数据分析,得到关于当前版本代码的接口方法构成的接口数据集合。
比对单元503,用于将接口数据集与预设的关联数据集合进行比对,根据比对的结果判断应用程序对应的用例是否为失效用例。
在一些实施例中,所述比对单元在用于根据比对的结果判断所述应用程序对应的用例是否为失效用例时,还进一步用于:在所述接口数据集合与所述关联数据集合存在交集时,确定所述应用程序对应的用例为失效用例。
在一些实施例中,所述接口数据集合包括:接口参数类型集及接口返回值类型集;所述关联数据集合包括:所述当前版本代码的属性变更类集;所述比对单元在用于将所述接口数据集合与预设的关联数据集合进行比对,根据比对的结果判断所述应用程序对应的用例是否为失效用例时,还进一步用于:将所述接口参数类型集、接口返回值类型集分别与所述属性变更类集进行比对;在所述接口参数类型集、接口返回值类型集中的至少一个与所述属性变更类集存在交集时,确定所述应用程序对应的用例为失效用例。
在一些实施例中,所述获取单元还用于:获取所述应用程序的在先记录的上一版本代码;所述分析单元还用于:基于所述当前版本代码及所述上一版本代码进行数据分析,得到所述当前版本代码相较于所述上一版本代码的增量代码;基于所述增量代码得到所述当前版本代码的属性变更类集。
在一些实施例中,所述接口数据集合包括:接口子调用方法集;所述关联数据集合包括:上一次识别之后的新增mock点集;所述比对单元在用于将所述接口数据集合与预设的关联数据集合进行比对,根据比对的结果判断所述应用程序对应的用例是否为失效用例时,还进一步用于:将所述接口子调用方法集与新增mock点集进行比对;在所述接口子调用方法集与新增mock点集存在交集时,确定所述应用程序对应的用例为失效用例。
在一些实施例中,所述获取单元还用于:从分析记录表数据库中获取上一次识别所记录的mock点,以及从mock点记录表数据库中获取在上一次识别之后所述应用程序下的mock点;所述分析单元还用于:基于上一次识别所记录的mock点,及在上一次识别之后所述应用程序下的mock点,确定上一次识别之后新增的mock点,得到上一次识别之后的新增mock点集。
在一些实施例中,所述接口数据集合包括:接口子调用方法集;所述关联数据集合包括:所述当前版本代码的代码变更方法集,以及所述应用程序下的mock点集;其中,所述代码变更方法集是基于所述当前版本代码相较于在线记录的上一版本代码的增量代码得到的;所述比对单元在用于将所述接口数据集合与预设的关联数据集合进行比对,根据比对的结果判断所述应用程序对应的用例是否为失效用例时,还进一步用于:将所述代码变更方法集、所述接口子调用方法集、所述应用程序下的mock点集进行比对,在所述代码变更方法集、所述接口子调用方法集、所述应用程序下的mock点集存在交集时,确定所述应用程序对应的用例为失效用例。
在一些实施例中,所述比对单元在用于将所述代码变更方法集、所述接口子调用方法集、所述应用程序下的mock点集进行比对,在所述代码变更方法集、所述接口子调用方法集、所述应用程序下的mock点集存在交集时,确定所述应用程序对应的用例为失效用例时,还进一步用于:将所述代码变更方法集与所述接口子调用方法集进行比对;在所述代码变更方法集与所述接口子调用方法集存在交集时,根据所述代码变更方法集与所述接口子调用方法集中重叠的元素确定代码变更的子调用方法;判断所述代码变更的子调用方法及其后续子调用方法,是否存在于所述应用程序下的mock点集;在所述代码变更的子调用方法及其后续子调用方法,存在于所述应用程序下的mock点集时,确定所述应用程序对应的用例为失效用例。
在一些实施例中,所述分析单元在用于基于所述当前版本代码进行数据分析时,还进一步用于:基于抽象语法树对所述当前版本代码进行数据分析,提取所述当前版本代码的接口方法构成。
在一些实施例中,所述装置还包括:第一更新单元,用于在确定所述应用程序对应的用例为失效用例之后,将所述失效用例从用例记录表数据库中清除。
在一些实施例中,所述装置还包括:第二更新单元,用于在确定所述应用程序对应的用例为失效用例之后,基于当前的识别时间及识别状态对分析记录表数据库进行更新;其中,所述识别状态包括:所述应用程序对应的用例为失效用例,或,所述应用程序对应的用例为有效用例。
在一些实施例中,所述装置还包括:第三更新单元,用于在确定所述应用程序对应的用例为失效用例之后,基于所述失效用例所对应的mock点,对mock点记录表数据库进行更新;其中,所述mock点记录表数据库中存储有所述应用程序下的mock点以及mock点的增加时间。
图6为本申请实施例提供的电子设备的结构示意图,该电子设备600可以是图1所示的终端或服务器。如图6所示,该电子设备600可以包括:通信接口601,存储器602,处理器603和通信总线604。通信接口601,存储器602,处理器603通过通信总线604实现相互间的通信。通信接口601用于电子设备600与外部设备进行数据通信。存储器602可用于存储软件程序以及模块,处理器603通过运行存储在存储器602的软件程序以及模块,例如上述方法实施例中的相应操作的软件程序。
在一些实施例中,该处理器603可以调用存储在存储器602的软件程序以及模块执行如下操作:获取当前音频帧;确定当前音频帧的目标特征值;响应于当前音频帧的目标特征值满足预设条件,确定当前音频帧属于齿音的齿音帧,并确定齿音的调节参数,基于齿音的调节参数对当前音频帧进行齿音调节处理。
本申请还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例的方法。为了简洁,在此不再赘述。
本申请还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现上述任一实施例中的方法。为了简洁,在此不再赘述。
本申请还提供了一种计算机程序,该计算机程序包括计算机指令,计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得电子设备执行本申请实施例中的各方法中的相应流程,为了简洁,在此不再赘述。
应理解,本申请实施例的处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种失效用例的识别方法,其特征在于,包括:
获取应用程序的当前版本代码;
基于所述当前版本代码进行数据分析,得到关于所述当前版本代码的接口方法构成的接口数据集合;
将所述接口数据集合与预设的关联数据集合进行比对,根据比对的结果判断所述应用程序对应的用例是否为失效用例。
2.根据权利要求1所述的方法,其特征在于,所述根据比对的结果判断所述应用程序对应的用例是否为失效用例,包括:
若所述接口数据集合与所述关联数据集合存在交集,则确定所述应用程序对应的用例为失效用例。
3.根据权利要求1所述的方法,其特征在于,所述接口数据集合包括:接口参数类型集及接口返回值类型集;
所述关联数据集合包括:所述当前版本代码的属性变更类集;
将所述接口数据集合与预设的关联数据集合进行比对,根据比对的结果判断所述应用程序对应的用例是否为失效用例,包括:
将所述接口参数类型集、接口返回值类型集分别与所述属性变更类集进行比对;
若所述接口参数类型集、接口返回值类型集中的至少一个与所述属性变更类集存在交集,则确定所述应用程序对应的用例为失效用例。
4.根据权利要求3所述的方法,其特征在于,还包括:
获取所述应用程序的在先记录的上一版本代码;
基于所述当前版本代码及所述上一版本代码进行数据分析,得到所述当前版本代码相较于所述上一版本代码的增量代码;
基于所述增量代码得到所述当前版本代码的属性变更类集。
5.根据权利要求1所述的方法,其特征在于,所述接口数据集合包括:接口子调用方法集;
所述关联数据集合包括:上一次识别之后的新增mock点集;
将所述接口数据集合与预设的关联数据集合进行比对,根据比对的结果判断所述应用程序对应的用例是否为失效用例,包括:
将所述接口子调用方法集与新增mock点集进行比对;
若所述接口子调用方法集与新增mock点集存在交集,则确定所述应用程序对应的用例为失效用例。
6.根据权利要求5所述的方法,其特征在于,还包括:
从分析记录表数据库中获取上一次识别所记录的mock点,以及从mock点记录表数据库中获取在上一次识别之后所述应用程序下的mock点;
基于上一次识别所记录的mock点,及在上一次识别之后所述应用程序下的mock点,确定上一次识别之后新增的mock点,得到上一次识别之后的新增mock点集。
7.一种失效用例的识别装置,其特征在于,包括:
获取单元,用于获取应用程序的当前版本代码;
分析单元,用于基于所述当前版本代码进行数据分析,得到关于所述当前版本代码的接口方法构成的接口数据集合;
比对单元,用于将所述接口数据集与预设的关联数据集合进行比对,根据比对的结果判断所述应用程序对应的用例是否为失效用例。
8.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-6任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6任一项所述的方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311185159.0A CN117370154A (zh) | 2023-09-08 | 2023-09-08 | 失效用例的识别方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311185159.0A CN117370154A (zh) | 2023-09-08 | 2023-09-08 | 失效用例的识别方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117370154A true CN117370154A (zh) | 2024-01-09 |
Family
ID=89403092
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311185159.0A Pending CN117370154A (zh) | 2023-09-08 | 2023-09-08 | 失效用例的识别方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117370154A (zh) |
-
2023
- 2023-09-08 CN CN202311185159.0A patent/CN117370154A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110941546A (zh) | Web页面用例的自动化测试方法、装置、设备及存储介质 | |
CN110704304A (zh) | 一种应用程序测试方法、装置、存储介质和服务器 | |
CN112799940A (zh) | 回归测试方法、装置、计算机系统和计算机可读存储介质 | |
CN112181430A (zh) | 代码变更统计方法、装置、电子设备及存储介质 | |
CN117370154A (zh) | 失效用例的识别方法、装置、电子设备及存储介质 | |
CN115391188A (zh) | 一种场景测试用例生成方法、装置、设备及存储介质 | |
CN115292571A (zh) | 一种App数据采集方法及系统 | |
CN114169318A (zh) | 进程识别方法、装置、设备、介质和程序 | |
CN114942905A (zh) | 一种迁移数据验证方法、装置、设备和存储介质 | |
CN112231232A (zh) | 确定测试数据模型及生成测试数据的方法、装置及设备 | |
CN110609790A (zh) | 解析程序测试方法、装置、介质和计算机设备 | |
US11347722B2 (en) | Big data regression verification method and big data regression verification apparatus | |
CN112347095B (zh) | 数据表的处理方法、装置和服务器 | |
CN112286724B (zh) | 基于区块链和云计算的数据恢复处理方法及云计算中心 | |
CN111324505B (zh) | 一种日志采集方法、装置、电子设备及存储介质 | |
CN116661745A (zh) | 一种业务功能比对系统及方法 | |
CN117033196A (zh) | 银行业务中文件接口的测试方法、装置、设备及介质 | |
CN117539762A (zh) | 一种测试用例推荐方法、装置、设备和存储介质 | |
CN115599680A (zh) | 一种批量交易的测试方法及装置 | |
CN117215725A (zh) | 脚本生成方法、装置、电子设备及存储介质 | |
CN115858363A (zh) | 接口测试的方法、系统、存储介质及计算机设备 | |
CN117032789A (zh) | 业务规则配置和执行方法、系统、计算机设备及存储介质 | |
CN117827661A (zh) | 代码语法检查方法、系统、计算机设备及存储介质 | |
CN116185716A (zh) | 数据还原方法、装置、电子设备和存储介质 | |
CN114706793A (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 |