CN113760695A - 一种定位问题代码的方法和装置 - Google Patents

一种定位问题代码的方法和装置 Download PDF

Info

Publication number
CN113760695A
CN113760695A CN202010611266.5A CN202010611266A CN113760695A CN 113760695 A CN113760695 A CN 113760695A CN 202010611266 A CN202010611266 A CN 202010611266A CN 113760695 A CN113760695 A CN 113760695A
Authority
CN
China
Prior art keywords
clustering
rule
node
test case
case
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
Application number
CN202010611266.5A
Other languages
English (en)
Inventor
王梦津
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN202010611266.5A priority Critical patent/CN113760695A/zh
Publication of CN113760695A publication Critical patent/CN113760695A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种定位问题代码的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:获取流量回放中各条对比失败的测试用例的用例信息;基于初始的聚类规则,根据各条所述测试用例的用例信息,对各条所述测试用例进行聚类;根据每次聚类的结果,通过迭代方式更新所述聚类规则;基于更新后的聚类规则,根据各条对比失败的待定位测试用例的用例信息,对各条所述待定位测试用例进行聚类,根据聚类结果定位出问题代码。该实施方式能够解决定位问题代码难度大的技术问题。

Description

一种定位问题代码的方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种定位问题代码的方法和装置。
背景技术
自动化测试中流量回放技术是将在线流量导入到测试系统中去,从而模拟真实运行环境,以便排查测试系统的性能问题和风险。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
现有的流量回放方案在一定程度上节省了人力成本,缩短了回归周期,但是由于对比失败的测试用例过多,存在信息淹没的问题,导致通过对比失败的测试用例来定位问题代码时较为困难。
发明内容
有鉴于此,本发明实施例提供一种定位问题代码的方法和装置,以解决定位问题代码难度大的技术问题。
为实现上述目的,根据本发明实施例的一个方面,提供了一种定位问题代码的方法,包括:
获取流量回放中各条对比失败的测试用例的用例信息;
基于初始的聚类规则,根据各条所述测试用例的用例信息,对各条所述测试用例进行聚类;根据每次聚类的结果,通过迭代方式更新所述聚类规则;
基于更新后的聚类规则,根据各条对比失败的待定位测试用例的用例信息,对各条所述待定位测试用例进行聚类,根据聚类结果定位出问题代码。
可选地,每条所述测试用例的用例信息包括失败节点、在所述失败节点之前的成功节点、原入参的字段名及其对应的值、回放入参及其对应的值。
可选地,所述聚类规则包括以下至少一种规则条件:
原入参的字段名及其对应的值的文本相似度、回放入参及其对应的值的文本相似度、失败节点的节点相似度、成功节点的节点相似度、干扰字段及其对应的值、干扰节点、有序地经过若干个相同的成功节点和调用的方法。
可选地,所述聚类规则还包括各种规则条件对应的权重。
可选地,基于初始的聚类规则,根据各条所述测试用例的用例信息,对各条所述测试用例进行聚类,包括:
基于初始的聚类规则,计算各条所述测试用例的用例信息之间的相似度,从而根据所述相似度对各条测试用例进行聚类;
其中,所述初始的聚类规则的规则条件包括原入参的字段名及其对应的值的文本相似度、回放入参及其对应的值的文本相似度、失败节点的节点相似度和成功节点的节点相似度。
可选地,通过迭代方式更新所述聚类规则的过程中,所述更新后的聚类规则还包括以下至少一种规则条件:
干扰字段及其对应的值、干扰节点、有序地经过若干个相同的成功节点和调用的方法。
可选地,根据聚类结果定位出问题代码,包括:
对同一簇内的每条待定位测试用例标记相同的用例标签,所述用例标签用于指示本次聚类对应的聚类规则;
根据各条所述待定位测试用例的用例标签定位出问题代码。
另外,根据本发明实施例的另一个方面,提供了一种定位问题代码的装置,包括:
获取模块,用于获取流量回放中各条对比失败的测试用例的用例信息;
迭代模块,用于基于初始的聚类规则,根据各条所述测试用例的用例信息,对各条所述测试用例进行聚类;根据每次聚类的结果,通过迭代方式更新所述聚类规则;
定位模块,用于基于更新后的聚类规则,根据各条对比失败的待定位测试用例的用例信息,对各条所述待定位测试用例进行聚类,根据聚类结果定位出问题代码。
可选地,每条所述测试用例的用例信息包括失败节点、在所述失败节点之前的成功节点、原入参的字段名及其对应的值、回放入参及其对应的值。
可选地,所述聚类规则包括以下至少一种规则条件:
原入参的字段名及其对应的值的文本相似度、回放入参及其对应的值的文本相似度、失败节点的节点相似度、成功节点的节点相似度、干扰字段及其对应的值、干扰节点、有序地经过若干个相同的成功节点和调用的方法。
可选地,所述聚类规则还包括各种规则条件对应的权重。
可选地,所述迭代模块还用于:
基于初始的聚类规则,计算各条所述测试用例的用例信息之间的相似度,从而根据所述相似度对各条测试用例进行聚类;
其中,所述初始的聚类规则的规则条件包括原入参的字段名及其对应的值的文本相似度、回放入参及其对应的值的文本相似度、失败节点的节点相似度和成功节点的节点相似度。
可选地,通过迭代方式更新所述聚类规则的过程中,所述更新后的聚类规则还包括以下至少一种规则条件:
干扰字段及其对应的值、干扰节点、有序地经过若干个相同的成功节点和调用的方法。
可选地,所述定位模块还用于:
对同一簇内的每条待定位测试用例标记相同的用例标签,所述用例标签用于指示本次聚类对应的聚类规则;
根据各条所述待定位测试用例的用例标签定位出问题代码。
根据本发明实施例的另一个方面,还提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,所述一个或多个处理器实现上述任一实施例所述的方法。
根据本发明实施例的另一个方面,还提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例所述的方法。
上述发明中的一个实施例具有如下优点或有益效果:因为采用基于初始的聚类规则,根据各条测试用例的用例信息,对各条测试用例进行聚类,然后根据每次聚类的结果,通过迭代方式更新聚类规则的技术手段,所以克服了现有技术中定位问题代码难度大的技术问题。本发明实施例通过迭代方式更新聚类规则,然后根据更新后的聚类规则对各条测试用例进行聚类,从而将问题代码相同的测试用例聚为一个簇,这样只需要修改一条测试用例对应的问题代码,就可以使得簇内的所有测试用例成功通过。因此,本发明实施例可以挖掘出大量对比失败的测试用例之间共同存在的问题代码,从而显著地降低了定位问题代码的难度。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的定位问题代码的方法的主要流程的示意图;
图2是根据本发明实施例的聚类结果的示意图;
图3是根据本发明一个可参考实施例的定位问题代码的方法的主要流程的示意图;
图4是根据本发明实施例的定位问题代码的装置的主要模块的示意图;
图5是本发明实施例可以应用于其中的示例性系统架构图;
图6是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的定位问题代码的方法的主要流程的示意图。作为本发明的一个实施例,如图1所示,所述定位问题代码的方法可以包括:
步骤101,获取流量回放中各条对比失败的测试用例的用例信息。
首先,随机获取流量回放中各条对比失败的测试用例的用例信息,需要指出的是,获取的各条对比失败的测试用例的用例信息用于确定聚类规则,因此测试用例的条数越多,越有利于确定合适的聚类规则,相应地,也会增加聚类规则的迭代次数,这样会增加聚类规则的确定难度。本发明实施例不限制对比失败的测试用例的获取条数,运维人员可以根据实际业务需要或者经验来决定测试用例的条数。
可选地,每条所述测试用例的用例信息包括失败节点、在所述失败节点之前的成功节点、原入参的字段名及其对应的值、回放入参及其对应的值。
比如,原入参的字段名及其对应的值可以是:
{“skuId”:123,”price”:9.99,”userLevel”:“金牌用户”}
回放入参及其对应的值可以是:
{“skuId”:123,”price”:9.99,”userLevel”:“银牌用户”}。
又比如,原入参的字段名及其对应的值可以是:
{“skuId”:123,”orderNeedMoney”:10.99,”freight”:1,”remark”:“金牌单独打包”}
回放入参及其对应的值可以是:
{“skuId”:123,”orderNeedMoney”:9.99,”freight”:0,”remark”:“金牌单独打包”}
步骤102,基于初始的聚类规则,根据各条所述测试用例的用例信息,对各条所述测试用例进行聚类;根据每次聚类的结果,通过迭代方式更新所述聚类规则。
面对流量回放中大量的对比失败的测试用例时,它们中可能有很多测试用例有着共性的问题代码。比如,在50万条对比失败的测试用例中,可能分析了其中一条测试用例的失败原因,修改对应的问题代码后,其中5万条测试用例就成功了。或许这50万条对比失败的测试用例最终一共就对应了10处代码修改,那么如果我们能自动化地把10条测试用例从50万条对比失败的测试用例中找出来,就会降低定位问题代码的难度。为此,就需要通过迭代方式逐步地建立合适的聚类规则。
可选地,所述聚类规则包括以下至少一种规则条件:原入参的字段名及其对应的值的文本相似度、回放入参及其对应的值的文本相似度、失败节点的节点相似度、成功节点的节点相似度、干扰字段及其对应的值、干扰节点、有序地经过若干个相同的成功节点和调用的方法。聚类规则的内容与测试用例的用例信息有关,运维人员可以基于测试用例的用例信息配置初始聚类规则,比如,初始的聚类规则可以包括原入参的字段名及其对应的值的文本相似度和回放入参及其对应的值的文本相似度,或者,初始的聚类规则可以包括失败节点的节点相似度和成功节点的节点相似度,或者,初始的聚类规则可以包括原入参的字段名及其对应的值的文本相似度、回放入参及其对应的值的文本相似度、失败节点的节点相似度和成功节点的节点相似度。
然后,根据每次聚类的结果,更新当前的聚类规则,比如更新后的聚类规则可以在计算文本相似度时增加干扰字段及其对应的值,和/或,计算节点相似度时增加干扰节点,又或者增加有序地经过若干个相同的成功节点。可选地,所述聚类规则还包括各种规则条件对应的权重。随着聚类规则中的规则条件增多,有必要通过设定权重的方式计算准确的相似度,避免重要的规则条件被淹没。
可选地,基于初始的聚类规则,根据各条所述测试用例的用例信息,对各条所述测试用例进行聚类,包括:基于初始的聚类规则,计算各条所述测试用例的用例信息之间的相似度,从而根据所述相似度对各条测试用例进行聚类;其中,所述初始的聚类规则的规则条件包括原入参的字段名及其对应的值的文本相似度、回放入参及其对应的值的文本相似度、失败节点的节点相似度和成功节点的节点相似度。可选地,通过迭代方式更新所述聚类规则的过程中,所述更新后的聚类规则还包括以下至少一种规则条件:干扰字段及其对应的值、干扰节点、有序地经过若干个相同的成功节点和调用的方法。在该实施例中,初始的聚类规则包含文本相似度和节点相似度,因此规则的粒度较粗,经过一次的聚类后,运维人员可以根据聚类结果更新聚类规则,通过观察各个簇内的测试用例,发现干扰字段、干扰节点、有序地经过若干个相同的成功节点和/或调用的方法,然后更新聚类规则,接着根据更新的聚类规则再次进行聚类和更新聚类规则,直到聚类规则合适位置,得到最终的聚类规则。
步骤103,基于更新后的聚类规则,根据各条对比失败的待定位测试用例的用例信息,对各条所述待定位测试用例进行聚类,根据聚类结果定位出问题代码。
经过步骤102的迭代后,可以得到最终的聚类规则,因此可以基于最终的聚类规则,根据各条对比失败的待定位测试用例的用例信息,对各条待定位测试用例进行聚类,聚类结果如图2所示。在图2中,几十条对比失败的测试用例最终聚成了3个簇,说明只需要修改3处问题代码。
可选地,根据聚类结果定位出问题代码,包括:对同一簇内的每条待定位测试用例标记相同的用例标签,所述用例标签用于指示本次聚类对应的聚类规则;根据各条所述待定位测试用例的用例标签定位出问题代码。对于同一个簇的每条待定位测试用例,对其标记相同的用例标签,以方便运维人员查看,并且可以根据各条待定位测试用例的用例标签快速地定位出问题代码。
需要指出的是,只要聚类规则足够合适,当出现新的对比失败的测试用例时,可以直接执行步骤103。反之,则还需要根据聚类结果再次更新聚类规则。而且步骤103中对比失败的待定位测试用例可以包括步骤101中获取的对比失败的测试用例,也可以不包括步骤101中获取的对比失败的测试用例。
根据上面所述的各种实施例,可以看出本发明实施例通过基于初始的聚类规则,根据各条测试用例的用例信息,对各条测试用例进行聚类,然后根据每次聚类的结果,通过迭代方式更新聚类规则的技术手段,解决了现有技术中定位问题代码难度大的技术问题。本发明实施例通过迭代方式更新聚类规则,然后根据更新后的聚类规则对各条测试用例进行聚类,从而将问题代码相同的测试用例聚为一个簇,这样只需要修改一条测试用例对应的问题代码,就可以使得簇内的所有测试用例成功通过。因此,本发明实施例可以挖掘出大量对比失败的测试用例之间共同存在的问题代码,从而显著地降低了定位问题代码的难度。
图3是根据本发明一个可参考实施例的定位问题代码的方法的主要流程的示意图。作为本发明的又一个实施例,如图3所示,所述定位问题代码的方法可以包括:
步骤301,获取流量回放中各条对比失败的测试用例的用例信息。
在本发明的实施例中,每条所述测试用例的用例信息包括失败节点、在所述失败节点之前的成功节点、原入参的字段名及其对应的值、回放入参及其对应的值。例如,用例信息如下所示:
Figure BDA0002562228230000091
Figure BDA0002562228230000101
其中,U:通用入口节点;C:用户信息填充节点;A:运费计算节点;N:订单价格计算节点;V:保存订单节点。
步骤302,定义初始的聚类规则,基于初始的聚类规则,根据各条所述测试用例的用例信息,对各条所述测试用例进行聚类。
初始聚类规则包括:原入参的字段名及其对应的值、回放入参及其对应的值的文本相似度,以及,失败节点和成功节点的节点相似度。
经过第一轮聚类,以下5条测试用例在一个簇内:
测试用例1(标签:对比失败文本含金牌、经过节点U、经过节点C、经过节点S)
测试用例2(标签:对比失败文本含金牌、经过节点U、经过节点C、经过节点S)
测试用例3(标签:对比失败文本含金牌、经过节点U、经过节点C、经过节点S)
测试用例4(标签:对比失败文本含金牌、经过节点U、经过节点V、经过节点P)
测试用例5(标签:对比失败文本含金牌、经过节点U、经过节点V、经过节点P)
上述五条测试用例相似度,这显然是不合理的,因为:测试用例1、测试用例2、测试用例3三条都是因为计算促销时userLevel字段对比不通过造成的;而测试用例4和测试用例5被初始的聚类规则带入同一个簇内是因为remark字段带来的干扰(测试用例4和测试用例5里面同样包含“金牌“文本),显然不希望这种文本相似度带来的干扰。因此,需要更新聚类规则,对部分字段的进行屏蔽,不纳入文本相似度的计算,然后再次进行聚类。
步骤303,根据每次聚类的结果,通过迭代方式更新所述聚类规则。
更新聚类规则(文本相似度,节点相似度,并且文本相似度带上字段限制)
经过第二轮聚类
测试用例1(标签:userLevel对比失败文本含金牌、经过节点U、经过节点C、经过节点S)
测试用例2(标签:userLevel对比失败文本含金牌、经过节点U、经过节点C、经过节点S)
测试用例3(标签:userLevel对比失败文本含金牌、经过节点U、经过节点C、经过节点S)
测试用例4(标签:remark对比失败文本含金牌、经过节点U、经过节点V、经过节点P)
测试用例5(标签:remark对比失败文本含金牌、经过节点U、经过节点V、经过节点P)
同理,对于失败节点和成功计算计算出来的节点相似度,发现:所有用例都通过节点U(通用入口节点),这也是一种干扰,也需要修正。
更新聚类规则(文本相似度,节点相似度,并且文本相似度带上字段限制,屏蔽节点U)
经过第三轮聚类
测试用例1(标签:userLevel对比失败文本含金牌、经过节点C、经过节点S)
测试用例2(标签:userLevel对比失败文本含金牌、经过节点C、经过节点S)
测试用例3(标签:userLevel对比失败文本含金牌、经过节点C、经过节点S)
测试用例4(标签:remark对比失败文本含金牌、经过节点V、经过节点P)
测试用例5(标签:remark对比失败文本含金牌、经过节点V、经过节点P)
我们发现,userLevel文本对比不通过往往都和节点C一起出现,这时可以将两个条件组合起来,进一步更新聚类规则。
更新聚类规则(userLevel对比失败文本含金牌,节点C和节点S都出现)
经过第四轮聚类
失败用例1(标签:userLevel对比失败文本含金牌且经过节点C且经过节点S)
失败用例2(标签:userLevel对比失败文本含金牌且经过节点C且经过节点S)
失败用例3(标签:userLevel对比失败文本含金牌且经过节点C且经过节点S)
失败用例4(标签:remark对比失败文本含金牌且经过节点V且经过节点P)
失败用例5(标签:remark对比失败文本含金牌且经过节点V且经过节点P)
经过上述多次聚类,最后可以得到两个簇及其对应的标签:
标签1:userLevel对比失败文本含金牌且经过节点C且经过节点S
标签2:remark对比失败文本含金牌且经过节点V且经过节点P
步骤304,获取流量回放中各条对比失败的待定位测试用例的用例信息。
步骤305,基于更新后的聚类规则,根据各条所述待定位测试用例的用例信息,对各条所述待定位测试用例进行聚类,根据聚类结果定位出问题代码。
由于已经确定了合适的聚类规则,因此可以基于更新后的聚类规则,根据各条对比失败的待定位测试用例的用例信息,对各条所述待定位测试用例进行聚类,从而根据聚类结果定位出问题代码。
另外,在本发明一个可参考实施例中定位问题代码的方法的具体实施内容,在上面所述定位问题代码的方法中已经详细说明了,故在此重复内容不再说明。
图4是根据本发明实施例的定位问题代码的装置的主要模块的示意图,如图4所示,所述定位问题代码的装置400包括获取模块401、迭代模块402和定位模块403;其中,获取模块401用于获取流量回放中各条对比失败的测试用例的用例信息;迭代模块402用于基于初始的聚类规则,根据各条所述测试用例的用例信息,对各条所述测试用例进行聚类;根据每次聚类的结果,通过迭代方式更新所述聚类规则;定位模块403用于基于更新后的聚类规则,根据各条对比失败的待定位测试用例的用例信息,对各条所述待定位测试用例进行聚类,根据聚类结果定位出问题代码。
可选地,每条所述测试用例的用例信息包括失败节点、在所述失败节点之前的成功节点、原入参的字段名及其对应的值、回放入参及其对应的值。
可选地,所述聚类规则包括以下至少一种规则条件:
原入参的字段名及其对应的值的文本相似度、回放入参及其对应的值的文本相似度、失败节点的节点相似度、成功节点的节点相似度、干扰字段及其对应的值、干扰节点、有序地经过若干个相同的成功节点和调用的方法。
可选地,所述聚类规则还包括各种规则条件对应的权重。
可选地,所述迭代模块402还用于:
基于初始的聚类规则,计算各条所述测试用例的用例信息之间的相似度,从而根据所述相似度对各条测试用例进行聚类;
其中,所述初始的聚类规则的规则条件包括原入参的字段名及其对应的值的文本相似度、回放入参及其对应的值的文本相似度、失败节点的节点相似度和成功节点的节点相似度。
可选地,通过迭代方式更新所述聚类规则的过程中,所述更新后的聚类规则还包括以下至少一种规则条件:
干扰字段及其对应的值、干扰节点、有序地经过若干个相同的成功节点和调用的方法。
可选地,所述定位模块403还用于:
对同一簇内的每条待定位测试用例标记相同的用例标签,所述用例标签用于指示本次聚类对应的聚类规则;
根据各条所述待定位测试用例的用例标签定位出问题代码。
根据上面所述的各种实施例,可以看出本发明实施例通过基于初始的聚类规则,根据各条测试用例的用例信息,对各条测试用例进行聚类,然后根据每次聚类的结果,通过迭代方式更新聚类规则的技术手段,解决了现有技术中定位问题代码难度大的技术问题。本发明实施例通过迭代方式更新聚类规则,然后根据更新后的聚类规则对各条测试用例进行聚类,从而将问题代码相同的测试用例聚为一个簇,这样只需要修改一条测试用例对应的问题代码,就可以使得簇内的所有测试用例成功通过。因此,本发明实施例可以挖掘出大量对比失败的测试用例之间共同存在的问题代码,从而显著地降低了定位问题代码的难度。
需要说明的是,在本发明所述定位问题代码的装置的具体实施内容,在上面所述定位问题代码的方法中已经详细说明了,故在此重复内容不再说明。
图5示出了可以应用本发明实施例的定位问题代码的方法或定位问题代码的装置的示例性系统架构500。
如图5所示,系统架构500可以包括终端设备501、502、503,网络504和服务器505。网络504用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发送消息等。终端设备501、502、503上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备501、502、503可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器505可以是提供各种服务的服务器,例如对用户利用终端设备501、502、503所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的物品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、物品信息——仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的定位问题代码的方法一般由服务器505执行,相应地,所述定位问题代码的装置一般设置在服务器505中。本发明实施例所提供的定位问题代码的方法也可以由终端设备501、502、503执行,相应地,所述定位问题代码的装置可以设置在终端设备501、502、503中。
应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图6,其示出了适于用来实现本发明实施例的终端设备的计算机系统600的结构示意图。图6示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括获取模块、迭代模块和定位模块,其中,这些模块的名称在某种情况下并不构成对该模块本身的限定。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,该设备实现如下方法:获取流量回放中各条对比失败的测试用例的用例信息;基于初始的聚类规则,根据各条所述测试用例的用例信息,对各条所述测试用例进行聚类;根据每次聚类的结果,通过迭代方式更新所述聚类规则;基于更新后的聚类规则,根据各条对比失败的待定位测试用例的用例信息,对各条所述待定位测试用例进行聚类,根据聚类结果定位出问题代码。
根据本发明实施例的技术方案,因为采用基于初始的聚类规则,根据各条测试用例的用例信息,对各条测试用例进行聚类,然后根据每次聚类的结果,通过迭代方式更新聚类规则的技术手段,所以克服了现有技术中定位问题代码难度大的技术问题。本发明实施例通过迭代方式更新聚类规则,然后根据更新后的聚类规则对各条测试用例进行聚类,从而将问题代码相同的测试用例聚为一个簇,这样只需要修改一条测试用例对应的问题代码,就可以使得簇内的所有测试用例成功通过。因此,本发明实施例可以挖掘出大量对比失败的测试用例之间共同存在的问题代码,从而显著地降低了定位问题代码的难度。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (10)

1.一种定位问题代码的方法,其特征在于,包括:
获取流量回放中各条对比失败的测试用例的用例信息;
基于初始的聚类规则,根据各条所述测试用例的用例信息,对各条所述测试用例进行聚类;根据每次聚类的结果,通过迭代方式更新所述聚类规则;
基于更新后的聚类规则,根据各条对比失败的待定位测试用例的用例信息,对各条所述待定位测试用例进行聚类,根据聚类结果定位出问题代码。
2.根据权利要求1所述的方法,其特征在于,每条所述测试用例的用例信息包括失败节点、在所述失败节点之前的成功节点、原入参的字段名及其对应的值、回放入参及其对应的值。
3.根据权利要求2所述的方法,其特征在于,所述聚类规则包括以下至少一种规则条件:
原入参的字段名及其对应的值的文本相似度、回放入参及其对应的值的文本相似度、失败节点的节点相似度、成功节点的节点相似度、干扰字段及其对应的值、干扰节点、有序地经过若干个相同的成功节点和调用的方法。
4.根据权利要求3所述的方法,其特征在于,所述聚类规则还包括各种规则条件对应的权重。
5.根据权利要求4所述的方法,其特征在于,基于初始的聚类规则,根据各条所述测试用例的用例信息,对各条所述测试用例进行聚类,包括:
基于初始的聚类规则,计算各条所述测试用例的用例信息之间的相似度,从而根据所述相似度对各条测试用例进行聚类;
其中,所述初始的聚类规则的规则条件包括原入参的字段名及其对应的值的文本相似度、回放入参及其对应的值的文本相似度、失败节点的节点相似度和成功节点的节点相似度。
6.根据权利要求5所述的方法,其特征在于,通过迭代方式更新所述聚类规则的过程中,所述更新后的聚类规则还包括以下至少一种规则条件:
干扰字段及其对应的值、干扰节点、有序地经过若干个相同的成功节点和调用的方法。
7.根据权利要求1所述的方法,其特征在于,根据聚类结果定位出问题代码,包括:
对同一簇内的每条待定位测试用例标记相同的用例标签,所述用例标签用于指示本次聚类对应的聚类规则;
根据各条所述待定位测试用例的用例标签定位出问题代码。
8.一种定位问题代码的装置,其特征在于,包括:
获取模块,用于获取流量回放中各条对比失败的测试用例的用例信息;
迭代模块,用于基于初始的聚类规则,根据各条所述测试用例的用例信息,对各条所述测试用例进行聚类;根据每次聚类的结果,通过迭代方式更新所述聚类规则;
定位模块,用于基于更新后的聚类规则,根据各条对比失败的待定位测试用例的用例信息,对各条所述待定位测试用例进行聚类,根据聚类结果定位出问题代码。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
CN202010611266.5A 2020-06-30 2020-06-30 一种定位问题代码的方法和装置 Pending CN113760695A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010611266.5A CN113760695A (zh) 2020-06-30 2020-06-30 一种定位问题代码的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010611266.5A CN113760695A (zh) 2020-06-30 2020-06-30 一种定位问题代码的方法和装置

Publications (1)

Publication Number Publication Date
CN113760695A true CN113760695A (zh) 2021-12-07

Family

ID=78785458

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010611266.5A Pending CN113760695A (zh) 2020-06-30 2020-06-30 一种定位问题代码的方法和装置

Country Status (1)

Country Link
CN (1) CN113760695A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115037663A (zh) * 2022-05-26 2022-09-09 深圳前海微众银行股份有限公司 一种应用系统更新测试方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120259576A1 (en) * 2011-04-07 2012-10-11 Infosys Technologies, Ltd. System and method for efficient test case generation using input dependency information
CN102831055A (zh) * 2012-07-05 2012-12-19 陈振宇 基于加权属性的测试用例选择方法
US20150331787A1 (en) * 2014-05-15 2015-11-19 Fujitsu Limited Software verification
CN108415848A (zh) * 2018-05-14 2018-08-17 河南工业大学 一种软件错误定位方法及装置
CN110362484A (zh) * 2019-07-03 2019-10-22 北京航空航天大学 软件多故障的定位方法、装置、电子设备以及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120259576A1 (en) * 2011-04-07 2012-10-11 Infosys Technologies, Ltd. System and method for efficient test case generation using input dependency information
CN102831055A (zh) * 2012-07-05 2012-12-19 陈振宇 基于加权属性的测试用例选择方法
US20150331787A1 (en) * 2014-05-15 2015-11-19 Fujitsu Limited Software verification
CN108415848A (zh) * 2018-05-14 2018-08-17 河南工业大学 一种软件错误定位方法及装置
CN110362484A (zh) * 2019-07-03 2019-10-22 北京航空航天大学 软件多故障的定位方法、装置、电子设备以及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
曹鹤玲;姜淑娟;: "基于Chameleon聚类分析的多错误定位方法", 电子学报, no. 02, 15 February 2017 (2017-02-15) *
汪文靖;冯瑞;: "基于二分K-means的测试用例集约简方法", 计算机工程, no. 12, 15 December 2016 (2016-12-15) *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115037663A (zh) * 2022-05-26 2022-09-09 深圳前海微众银行股份有限公司 一种应用系统更新测试方法及装置
CN115037663B (zh) * 2022-05-26 2023-07-18 深圳前海微众银行股份有限公司 一种应用系统更新测试方法及装置

Similar Documents

Publication Publication Date Title
CN107809331B (zh) 识别异常流量的方法和装置
US20200286014A1 (en) Information updating method and device
CN111190888A (zh) 一种管理图数据库集群的方法和装置
CN111104479A (zh) 一种数据标注的方法及装置
CN110910178A (zh) 一种生成广告的方法和装置
CN109409419B (zh) 用于处理数据的方法和装置
CN112817562A (zh) 业务处理的方法和装置
CN114297278A (zh) 批量数据快速写入方法、系统和装置
CN112182138A (zh) 一种目录编制方法和装置
CN110866001A (zh) 确定待处理订单的方法和装置
CN111698326B (zh) 用于确定云服务资源的成本归属的方法和装置
CN113626223A (zh) 一种接口调用方法和装置
CN113760695A (zh) 一种定位问题代码的方法和装置
CN111339743A (zh) 一种账号生成的方法和装置
CN109214846B (zh) 信息存储方法和装置
CN111125163A (zh) 用于处理数据的方法和装置
CN112256566B (zh) 一种测试案例的保鲜方法和装置
CN111026629A (zh) 一种测试脚本自动生成的方法和装置
CN113312900A (zh) 数据校验的方法和装置
CN114066603A (zh) 贷后风险预警方法、装置、电子设备和计算机可读介质
CN113742321A (zh) 一种数据更新的方法和装置
CN109087097B (zh) 一种更新链码同一标识的方法和装置
CN107368597B (zh) 信息输出方法和装置
CN113762910A (zh) 一种单据监控方法和装置
CN111127077A (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