CN109542785B - 一种无效bug确定方法和装置 - Google Patents
一种无效bug确定方法和装置 Download PDFInfo
- Publication number
- CN109542785B CN109542785B CN201811377919.7A CN201811377919A CN109542785B CN 109542785 B CN109542785 B CN 109542785B CN 201811377919 A CN201811377919 A CN 201811377919A CN 109542785 B CN109542785 B CN 109542785B
- Authority
- CN
- China
- Prior art keywords
- bug
- invalid
- character string
- processed
- historical
- 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.)
- Active
Links
Images
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/362—Software debugging
- G06F11/366—Software debugging using diagnostics
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)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种无效bug确定方法和装置。方法包括:确定与待处理bug关联的历史无效bug;确定参考字符串和对比字符串之间的匹配度,所述参考字符串和所述对比字符串分别为所述待处理bug和所述历史无效bug的标题字符串;若所述匹配度达到预定无效阈值,则确定所述待处理bug为无效bug。本申请通过字符串的匹配,以准确查找出无效bug,避免历史无效bug的重复提交。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种无效bug确定方法和装置。
背景技术
漏洞Bug测试是指测试软件程序的漏洞,以完善软件程序的过程。
目前的bug测试方案,一般是将测试出的bug写入测试报告中,并提供给客户。但由于测试出的bug中可能存在相当一部分的重复bug、不可重现bug等无效bug,导致测试报告不够精简,对客户不友好。
因此,需要更加有效的无效bug提交方案。
发明内容
本说明书实施例提供一种无效bug确定方法,用于避免提交历史无效bug。
本说明书实施例还提供一种无效bug确定方法,包括:
确定与待处理bug关联的历史无效bug;
确定参考字符串和对比字符串之间的匹配度,所述参考字符串为所述待处理bug的标题字符串,所述对比字符串为所述历史无效bug的标题字符串;
若所述匹配度达到预定无效阈值,则确定所述待处理bug为无效bug。
可选的,所述待处理bug和所述历史无效bug为同一对象的bug。
可选的,所述同一对象为同一用户账号、同一软件测试项目、同一软件测试任务中的任意一种。
可选的,确定与待处理bug关联的历史无效bug包括:
确定所述待处理bug所属的模块;
从历史无效bug集中筛选出同属于所述模块的历史无效bug。
可选的,确定与待处理bug关联的历史无效bug包括:
将历史无效bug集中的历史无效bug关联的关键字与所述待处理bug的标题字符串进行匹配;
从所述历史无效bug集中,选出关键字与所述待处理bug的标题字符串相匹配的历史无效bug;
从所述相匹配的历史无效bug中,选出与所述待处理bug属于同一模块的历史无效bug。
可选的,将历史无效bug集中的历史无效bug关联的关键字与所述待处理bug的标题字符串进行匹配包括:
将所述历史无效bug集中的历史无效bug关联的关键字作为通配符,与所述待处理bug的标题字符串进行全量对比。
可选的,确定参考字符串和对比字符串之间的匹配度包括:
确定所述参考字符串和所述对比字符串中相匹配的字符数量;
基于所述相匹配的字符数量和所述参考字符串的字符总数量,或者基于所述相匹配的字符数量和所述对比字符串的字符总数量,确定所述参考字符串与所述对比字符串的匹配度。
可选的,确定所述参考字符串和所述对比字符串中相匹配的字符数量包括:
依次将所述参考字符串中的每个字符与所述对比字符串中的所有字符进行对比,确定相匹配的字符数量。
可选的,确定所述参考字符串和所述对比字符串中相匹配的字符数量包括:
将所述参考字符串中的首位字符与所述对比字符串中的字符进行逐字对比,得到与所述首位字符相匹配的首位匹配字符;
依次对比所述首位字符和所述首位匹配字符的后续字符,直至匹配出不相匹配的字符;
将所述参考字符串中未参与匹配的首位字符与所述对比字符串中未参与匹配的字符进行逐字对比;
重复执行上述步骤,直至完成对所述参考字符串中的所有字符的匹配,并统计所述参考字符串和所述对比字符串中相匹配的字符数量。
本说明书实施例还提供一种无效bug确定装置,包括:
第一确定模块,用于确定与待处理bug关联的历史无效bug;
第二确定模块,用于确定参考字符串和对比字符串之间的匹配度,所述参考字符串为所述待处理bug的标题字符串,所述对比字符串为所述历史无效bug的标题字符串;
第三确定模块,用于若所述匹配度达到预定无效阈值,则确定所述待处理bug为无效bug。
可选的,所述待处理bug和所述历史无效bug为同一对象的bug。
可选的,所述同一对象为同一用户账号、同一软件测试项目、同一软件测试任务中的任意一种。
可选的,第一确定模块,具体用于:
确定所述待处理bug所属的模块;从历史无效bug集中筛选出同属于所述模块的历史无效bug。
可选的,第一确定模块,具体用于:
将历史无效bug集中的历史无效bug关联的关键字与所述待处理bug的标题字符串进行匹配;从所述历史无效bug集中,选出关键字与所述待处理bug的标题字符串相匹配的历史无效bug;从所述相匹配的历史无效bug中,选出与所述待处理bug属于同一模块的历史无效bug。
可选的,第一确定模块,具体用于:
将所述历史无效bug集中的历史无效bug关联的关键字作为通配符,与所述待处理bug的标题字符串进行全量对比。
可选的,第二确定模块,具体用于:
确定所述参考字符串和所述对比字符串中相匹配的字符数量;基于所述相匹配的字符数量和所述参考字符串的字符总数量,或者基于所述相匹配的字符数量和所述对比字符串的字符总数量,确定所述参考字符串与所述对比字符串的匹配度。
可选的,第二确定模块,具体用于:
依次将所述参考字符串中的每个字符与所述对比字符串中的所有字符进行对比,确定相匹配的字符数量。
可选的,第二确定模块,具体用于:
将所述参考字符串中的首位字符与所述对比字符串中的字符进行逐字对比,得到与所述首位字符相匹配的首位匹配字符;依次对比所述首位字符和所述首位匹配字符的后续字符,直至匹配出不相匹配的字符;将所述参考字符串中未参与匹配的首位字符与所述对比字符串中未参与匹配的字符进行逐字对比;重复执行上述步骤,直至完成对所述参考字符串中的所有字符的匹配,并统计所述参考字符串和所述对比字符串中相匹配的字符数量。
本说明书实施例还提供一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如上述的无效bug确定方法的步骤。
本说明书实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的无效bug确定方法的步骤。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
通过将待处理bug与历史无效bug进行字符串的匹配,以确定两者的标题字符串的匹配度,进而基于匹配度确定该待处理bug是否为无效bug,以为生成测试报告提供支持。与现有技术相比,能够精确确定测试过程中出现的无效bug,避免将无效bug提供给客户,以提升客户满意度。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本说明书提供的一种应用场景的示意图;
图2为本说明书一实施例提供的一种无效bug确定方法的流程示意图;
图3为本说明书一实施例提供的步骤220的另一种实现方式的流程示意图;
图4为本说明书一实施例提供的步骤S1的一种实现方式的流程示意图;
图5为本说明书另一实施例提供的一种无效bug确定方法的流程示意图;
图6为本说明书一实施例提供的一种无效bug确定装置的结构示意图;
图7为本说明书一实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
正如背景技术部分陈述的,对于测试出的bug,目前的bug系统一般是将其放入测试报告中并提供给客户。但是,测试出的bug中可能存在相当一部分的无效bug,例如:设计需求设计的bug、重复的bug、无法复现的bug等等,若将这部分无效bug加入到测试报告中,则会显得测试报告比较臃肿,并影响客户满意度。
基于此,本发明提供一种无效bug确定方法,通过将测试出的bug与历史无效bug进行字符串的匹配,以确定两者的匹配度,进而确定测试出的bug中的无效bug,并将该部分无效bug剔除,以精简测试报告,提高客户满意度。
其中,bug是指在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷;测试报告是指把软件测试的过程和结果写成的文档,用于对发现的问题和缺陷进行分析,为纠正软件的存在的质量问题提供依据,同时为软件验收和交付打下基础;字符串匹配是指字符串维度的匹配。
下面参见图1对本发明的应用场景进行示例性说明:
获取在软件测试过程中出现的bug;在将该bug写入测试报告之前,将该bug作为待处理bug进行无效bug筛选处理,以确定该bug是无效bug还是有效bug;若是前者,则将其标记为无效bug并剔除;若是后者,则将其写入测试报告并提交。
其中,软件测试是指在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程;当然,本发明适用的场景还可以包括:bug探索、测试用例等等。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图2为本说明书一实施例提供的一种无效bug确定方法的流程示意图,参见图2,该方法具体可以包括如下步骤:
步骤220、确定与待处理bug关联的历史无效bug;
其中,待处理bug和历史无效bug可以为同一对象的bug,例如:同一用户账户下的bug、同一软件测试项目下的bug、同一软件测试任务下的bug等等;用户账号、软件测试项目和软件测试任务之间的关系为一用户账户下可以有一个或多个软件测试项目,一软件测试项目下可以有一个或多个软件测试任务。
需要说明的是,步骤220的第一种实现方式可以为:
确定所述待处理bug所属的模块;从历史无效bug集中筛选出同属于所述模块的历史无效bug。
其中,历史无效bug集中存储的bug信息参见下表1:
表1
基于此,步骤220具体可以示例为:
假设待处理bug所属的模块为‘首页’,则可先从历史无效bug集中选出同属于‘首页’的历史无效bug;或者,假设待处理bug属于客户33755、任务111、‘首页’模块,则可从历史无效bug集中选出同一客户、同一任务的、‘首页’模块的历史无效bug。
参见图3,步骤220的第二种实现方式可以为:
步骤320、将历史无效bug集中的历史无效bug关联的关键字与所述待处理bug的标题字符串进行匹配;
其中,关键字为确定出现bug后,为bug预配置的关键字字段,优选为每个bug配置一个关键字;例如:崩溃、卡死、异常等等。
步骤340、从所述历史无效bug集中选出关键字与所述待处理bug的标题字符串相匹配的历史无效bug;具体可以示例为:
假设待处理bug的标题为‘打开app崩溃’,则将其与历史无效bug的崩溃、卡死、异常等关键字进行一一匹配,以查找出含有与‘打开app崩溃’相匹配的关键字的历史无效bug。
其中,匹配规则可以为:将所述历史无效bug集中的历史无效bug关联的关键字作为通配符,与所述待处理bug的标题字符串进行全量对比。即,将关键字划分为一个一个的字符,并将每个字符分别与标题字符串中的所有字符进行对比。
由此,基于关键字匹配可筛选出相当一部分与待处理bug无关的历史无效bug,以有效降低后续匹配所需处理的数据量,提高整体匹配效率。
步骤360、从所述相匹配的历史无效bug中选出与所述待处理bug属于同一模块的历史无效bug。
其实现方式与步骤220的第一种实现方式较为相似,故,此处不再对其进行展开说明。
步骤240、确定参考字符串和对比字符串之间的匹配度,所述参考字符串为所述待处理bug的标题字符串,所述对比字符串为所述历史无效bug的标题字符串;
其中,标题字符串是指标题对应的字符串,例如:标题‘打开app崩溃’其对应的字符串为‘打’‘开’‘a’‘p’‘p’‘崩’‘溃’。
基于此,步骤240的第一种实现方式可以为:
步骤S1、确定所述参考字符串和所述对比字符串中相匹配的字符数量;其一种实现方式可以为:
依次将所述参考字符串中的每个字符与所述对比字符串中的所有字符进行对比,确定相匹配的字符数量。具体可以示例为:
假设参考字符串为‘打开app崩溃’,则将该‘打’‘开’‘a’‘p’‘p’‘崩’‘溃’中每个字符与表1示出的每个历史无效bug的对比字符串中的所有字符进行匹配,以确定每个对比字符串中存在的与‘打’‘开’‘a’‘p’‘p’‘崩’‘溃’相匹配的字符的数量;例如:对于对比字符串‘打开app闪退’,其中存在‘打’‘开’‘a’‘p’‘p’5个相匹配的字符。
参见图4,其另一种实现方式可以为:
步骤420、将所述参考字符串中的首位字符与所述对比字符串中的字符进行逐字对比,得到与所述首位字符相匹配的首位匹配字符;
步骤440、依次对比所述首位字符和所述首位匹配字符的后续字符,直至匹配出不相匹配的字符;
步骤460、将所述参考字符串中未参与匹配的首位字符与所述对比字符串中未参与匹配的字符进行逐字对比;
步骤480、重复执行上述步骤,直至完成对所述参考字符串中的所有字符的匹配,并统计所述参考字符串和所述对比字符串中相匹配的字符数量。
对于步骤420至步骤480,其具体可以示例为:
假设参考字符串为‘打开app之后app闪退了’,则将首位字符‘打’依次与某一对比字符串中的字符进行对比,若查找到相匹配的字符(记为首位匹配字符),则将首位字符的下一位‘开’依次与首位匹配字符后面的字符进行对比,以此类推,直至参考字符串中存在与对比字符串中的未参与匹配的字符不匹配的字符;若未查找到相匹配的字符,则将第二位字符‘开’依次与该对比字符串中的字符进行对比,以此类推,直至参考字符串中的每个字符均参与匹配。
步骤S2、基于所述相匹配的字符数量和所述参考字符串的字符总数量,或者,基于所述相匹配的字符数量和所述对比字符串的字符总数量,确定所述参考字符串与所述对比字符串的匹配度。其具体可以示例为:
假设参考字符串‘打开app崩溃’的字符总数量7,对比字符串‘打开app之后app闪退了’的字符总数量13,两者相匹配的字符数量为5个,则两者的匹配度为相匹配的字符数量和两者之一的字符总数量的比例,即,5/7或者5/13。
步骤260、若所述匹配度达到预定无效阈值,则确定所述待处理bug为无效bug。
其中,预定无效阈值可以为基于专家经验确定的,也可以为基于模型训练出的。
可选的,若所述匹配度小于等于所述预定无效阈值,则确定所述待处理bug为有效bug。
可见,本实施例通过将待处理bug与历史无效bug进行字符串的匹配,以确定两者的标题字符串的匹配度,进而基于匹配度确定该待处理bug是否为无效bug,以为生成测试报告提供支持。与现有技术相比,能够精确确定测试过程中出现的无效bug,避免将无效bug提供给客户,以提升客户满意度。
图5为本说明书另一实施例提供的一种无效bug确定方法的流程示意图,参见图5,该方法具体可以包括如下步骤:
步骤502、预处理步骤
(1)、从数据库筛选出客户id(customer_id),客户项目id(product_id),历史任务id(task_id),历史无效bug标题(title)等信息,建立bug信息表,参见表1;
(2)、为每个bug设置关键字(key1),如崩溃,卡死,异常等,并建立bug和关键字之间的关联关系。
其中,每个bug一般设置一个关键字,而且,关键字字段非必选,仅仅作为优先匹配,提升效率使用。
步骤504、确定所述待处理bug的基本信息;
其中,基本信息包括:客户项目id、任务id、所属模块等等。
步骤506、对历史无效bug的关键字与待处理bug的标题进行匹配;
其中,参与匹配的历史无效bug可以与待处理bug属于同一对象,例如:同一任务的历史无效bug,同一项目的历史无效bug等等。
基于此,若存在关键字与标题相匹配的历史无效bug,则筛选出该部分历史无效bug,并基于该部分历史无效bug执行步骤508;若不存在关键字与标题相匹配的历史无效bug,则直接执行步骤508;
基于步骤506的关键字匹配,能够节约部分算法时间以及成本;对于历史无效bug较多的用户,可以有效降低服务器性能消耗以及提高算法效率。
另外,需要说明的是,关键字匹配为选择性执行的步骤,可不执行而直接执行步骤508的模块匹配。
步骤508、模块匹配
其中,模块通常是指提测的app的功能改版模块,假设该app包括3个模块:首页,发现,我的。
假设待处理bug为首页中测试出的bug,则查找出首页出现的历史无效bug;或者,从步骤506筛选出的历史无效bug中查找出首页出现的历史无效bug。查找规则可以为:
以模块字符串‘首页’为通配符,与各历史无效bug的模块字符串进行匹配,得到匹配结果是否通过。
基于此模块匹配,能够进一步降低需要匹配的历史无效bug的数量,以及降低服务器性能消耗。
步骤510、标题字符串匹配
假设待处理bug为任务111中出现在首页模块的bug,则基于上述步骤502至步骤508,查找出的属于同一对象(任务111)和同一模块(首页)的历史无效bug,可参见下表2:
表2
针对该示例,标题字符串匹配的步骤可以为:
(1)、将待处理bug的标题中的首位字符‘打’与历史无效bug的标题中的首位字符进行比对;
假设待处理bug的标题为:打开app之后app闪退了;
基于比较结果,确定与编号为19和20的历史无效bug的标题的首位字符‘打’相匹配(记为第1种情况);与编号为21和22的历史无效bug的标题的首位字符‘A’不匹配(记为第2种情况);
(2)、对于第1种情况,接着比对下一个字符‘开’,还是相同,则继续比对下一个字符,直至比对到‘之’,与编号19和20的对应位置的字符‘闪’和‘崩’不匹配;
(3)、待处理bug的标题中已匹配的字符不再参与匹配,与后面未匹配的进行拆分,从‘之’之后继续逐字与历史无效bug的所有字符进行比对,得出‘后’也不存在与之对应的字符,进而从‘后’之后继续逐字与历史无效bug的所有字符进行比对,直至对比完成待处理bug的标题的每一个字符,确定待处理bug分别与编号19、20的历史无效bug的相匹配的字符的数量;
(4)、对于第2种情况,接着将首位字符‘打’依次与后续字符进行对比,得出没有与‘打’相匹配的字符;
(5)、接收将下一位字符‘开’依次与编号21和22的历史无效bug的字符进行比对,得出没有与‘开’相匹配的字符,以此类推,比对出第3个字符‘A’与编号21和22的历史无效bug的首位字符相匹配,并基于对第1种情况的处理方式,继续进行后续字符的比对,直至对比完成待处理bug的标题的每一个字符,并确定待处理bug分别与编号21、220的历史无效bug的相匹配的字符的数量;
(6)、匹配度=相匹配的字符数/总的字符数
其中,总字符数可以为与待处理bug对比的一历史无效bug的标题的总的字符数量,也可以为待处理bug的标题的总的字符数量。
基于此,可确定待处理bug与编号20的bug之间的匹配度最高。
步骤512、判断匹配度是否超限,并基于判断结果进行处理;具体可以示例为:
若匹配度=100%,不允许提交bug
若匹配度>=70%,建议自查是否重复并修改
若匹配度<=70%,可以提交;
其中,70%为可灵活配置的阈值,此处仅为示例。
可见,本实施例针对现有技术中将历史无效bug提供给客户的情况,通过标题字符串的匹配,确定待处理bug与历史无效bug之间的匹配度,以在测试者提交bug的时候,基于匹配度给予相应地不允许提交、可以提交等提示信息,大幅降低历史无效bug提交的可能性,提升客户满意度。
另外,对于上述方法实施方式,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施方式并不受所描述的动作顺序的限制,因为依据本发明实施方式,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施方式均属于优选实施方式,所涉及的动作并不一定是本发明实施方式所必须的。
图6为本说明书一实施例提供的一种无效bug确定装置的结构示意图,参见图6,该装置具体可以包括:第一确定模块61、第二确定模块62和第三确定模块63,其中:
第一确定模块61,用于确定与待处理bug关联的历史无效bug;
第二确定模块62,用于确定参考字符串和对比字符串之间的匹配度,所述参考字符串为所述待处理bug的标题字符串,所述对比字符串为所述历史无效bug的标题字符串;
第三确定模块63,用于若所述匹配度达到预定无效阈值,则确定所述待处理bug为无效bug。
可选的,所述待处理bug和所述历史无效bug为同一对象的bug。
可选的,所述同一对象为同一用户账号、同一软件测试项目、同一软件测试任务中的任意一种。
可选的,第一确定模块61,具体用于:
确定所述待处理bug所属的模块;从历史无效bug集中筛选出同属于所述模块的历史无效bug。
可选的,第一确定模块61,具体用于:
将历史无效bug集中的历史无效bug关联的关键字与所述待处理bug的标题字符串进行匹配;从所述历史无效bug集中选出关键字与所述待处理bug的标题字符串相匹配的历史无效bug;从所述相匹配的历史无效bug中选出与所述待处理bug属于同一模块的历史无效bug。
可选的,第一确定模块61,具体用于:
将所述历史无效bug集中的历史无效bug关联的关键字作为通配符,与所述待处理bug的标题字符串进行全量对比。
可选的,第二确定模块62,具体用于:
确定所述参考字符串和所述对比字符串中相匹配的字符数量;基于所述相匹配的字符数量和所述参考字符串的字符总数量,或者基于所述相匹配的字符数量和所述对比字符串的字符总数量,确定所述参考字符串与所述对比字符串的匹配度。
可选的,第二确定模块62,具体用于:
依次将所述参考字符串中的每个字符与所述对比字符串中的所有字符进行对比,确定相匹配的字符数量。
可选的,第二确定模块62,具体用于:
将所述参考字符串中的首位字符与所述对比字符串中的字符进行逐字对比,得到与所述首位字符相匹配的首位匹配字符;依次对比所述首位字符和所述首位匹配字符的后续字符,直至匹配出不相匹配的字符;将所述参考字符串中未参与匹配的首位字符与所述对比字符串中未参与匹配的字符进行逐字对比;重复执行上述步骤,直至完成对所述参考字符串中的所有字符的匹配,并统计所述参考字符串和所述对比字符串中相匹配的字符数量。
可见,本实施例通过将待处理bug与历史无效bug进行字符串的匹配,以确定两者的标题字符串的匹配度,进而基于匹配度确定该待处理bug是否为无效bug,以为生成测试报告提供支持。与现有技术相比,能够精确确定测试过程中出现的无效bug,避免将无效bug提供给客户,以提升客户满意度。
另外,对于上述装置实施方式而言,由于其与方法实施方式基本相似,所以描述的比较简单,相关之处参见方法实施方式的部分说明即可。而且,应当注意的是,在本发明的装置的各个部件中,根据其要实现的功能而对其中的部件进行了逻辑划分,但是,本发明不受限于此,可以根据需要对各个部件进行重新划分或者组合。
图7为本说明书一实施例提供的一种电子设备的结构示意图,参见图7,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成无效bug确定装置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
网络接口、处理器和存储器可以通过总线系统相互连接。总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器可能包含高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器。
处理器,用于执行所述存储器存放的程序,并具体执行:
确定与待处理bug关联的历史无效bug;
确定参考字符串和对比字符串之间的匹配度,所述参考字符串和所述对比字符串分别为所述待处理bug和所述历史无效bug的标题字符串;
若所述匹配度达到预定无效阈值,则确定所述待处理bug为无效bug。
上述如本申请图6所示实施例揭示的无效bug确定装置或管理者(Master)节点执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
无效bug确定装置还可执行图2-5的方法,并实现管理者节点执行的方法。
基于相同的发明创造,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行图2-5对应的实施例提供的无效bug确定方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (8)
1.一种无效bug确定方法,其特征在于,包括:
确定与待处理bug关联的历史无效bug;
确定参考字符串和对比字符串之间的匹配度,所述参考字符串为所述待处理bug的标题字符串,所述对比字符串为所述历史无效bug的标题字符串;
若所述匹配度达到预定无效阈值,则确定所述待处理bug为无效bug;
其中,确定与待处理bug关联的历史无效bug包括:
将历史无效bug集中的历史无效bug关联的关键字与所述待处理bug的标题字符串进行匹配;
从所述历史无效bug集中,选出关键字与所述待处理bug的标题字符串相匹配的历史无效bug;
从所述相匹配的历史无效bug中,选出与所述待处理bug属于同一模块的历史无效bug。
2.根据权利要求1所述的方法,其特征在于,所述待处理bug和所述历史无效bug为同一对象的bug。
3.根据权利要求2所述的方法,其特征在于,所述同一对象为同一用户账号、同一软件测试项目、同一软件测试任务中的任意一种。
4.根据权利要求1所述的方法,其特征在于,将历史无效bug集中的历史无效bug关联的关键字与所述待处理bug的标题字符串进行匹配包括:
将所述历史无效bug集中的历史无效bug关联的关键字作为通配符,与所述待处理bug的标题字符串进行全量对比。
5.根据权利要求1所述的方法,其特征在于,确定参考字符串和对比字符串之间的匹配度包括:
确定所述参考字符串和所述对比字符串中相匹配的字符数量;
基于所述相匹配的字符数量和所述参考字符串的字符总数量,或者基于所述相匹配的字符数量和所述对比字符串的字符总数量,确定所述参考字符串与所述对比字符串的匹配度。
6.根据权利要求5所述的方法,其特征在于,确定所述参考字符串和所述对比字符串中相匹配的字符数量包括:
依次将所述参考字符串中的每个字符与所述对比字符串中的所有字符进行对比,确定相匹配的字符数量。
7.根据权利要求5所述的方法,其特征在于,确定所述参考字符串和所述对比字符串中相匹配的字符数量包括:
将所述参考字符串中的首位字符与所述对比字符串中的字符进行逐字对比,得到与所述首位字符相匹配的首位匹配字符;
依次对比所述首位字符和所述首位匹配字符的后续字符,直至匹配出不相匹配的字符;
将所述参考字符串中未参与匹配的首位字符与所述对比字符串中未参与匹配的字符进行逐字对比;
重复执行上述步骤,直至完成对所述参考字符串中的所有字符的匹配,并统计所述参考字符串和所述对比字符串中相匹配的字符数量。
8.一种无效bug确定装置,其特征在于,包括:
第一确定模块,用于确定与待处理bug关联的历史无效bug;
第二确定模块,用于确定参考字符串和对比字符串之间的匹配度,所述参考字符串为所述待处理bug的标题字符串,所述对比字符串为所述历史无效bug的标题字符串;
第三确定模块,用于若所述匹配度达到预定无效阈值,则确定所述待处理bug为无效bug;
其中,第一确定模块,具体用于:
将历史无效bug集中的历史无效bug关联的关键字与所述待处理bug的标题字符串进行匹配;
从所述历史无效bug集中,选出关键字与所述待处理bug的标题字符串相匹配的历史无效bug;
从所述相匹配的历史无效bug中,选出与所述待处理bug属于同一模块的历史无效bug。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811377919.7A CN109542785B (zh) | 2018-11-19 | 2018-11-19 | 一种无效bug确定方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811377919.7A CN109542785B (zh) | 2018-11-19 | 2018-11-19 | 一种无效bug确定方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109542785A CN109542785A (zh) | 2019-03-29 |
CN109542785B true CN109542785B (zh) | 2021-07-27 |
Family
ID=65848482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811377919.7A Active CN109542785B (zh) | 2018-11-19 | 2018-11-19 | 一种无效bug确定方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109542785B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990289B (zh) * | 2019-12-12 | 2023-05-16 | 锐捷网络股份有限公司 | 一种自动提交bug的方法、装置、电子设备及存储介质 |
CN111124912B (zh) * | 2019-12-23 | 2023-06-30 | 个体化细胞治疗技术国家地方联合工程实验室(深圳) | 一种软件开发项目的质量评估方法及装置 |
CN111831869B (zh) * | 2020-06-30 | 2023-11-03 | 深圳价值在线信息科技股份有限公司 | 一种字符串的查重方法、装置、终端设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106021504A (zh) * | 2016-05-20 | 2016-10-12 | 深圳Tcl数字技术有限公司 | 字符串模糊匹配方法及装置 |
CN106202203A (zh) * | 2016-06-23 | 2016-12-07 | 扬州大学 | 基于终身主题模型的bug知识库的建立方法 |
CN106656924A (zh) * | 2015-10-30 | 2017-05-10 | 北京神州泰岳软件股份有限公司 | 一种设备安全漏洞的处理方法和装置 |
CN107729258A (zh) * | 2017-11-30 | 2018-02-23 | 扬州大学 | 一种面向软件版本问题的程序故障定位方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180246803A1 (en) * | 2017-02-28 | 2018-08-30 | Ca, Inc. | Targeted software testing |
-
2018
- 2018-11-19 CN CN201811377919.7A patent/CN109542785B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106656924A (zh) * | 2015-10-30 | 2017-05-10 | 北京神州泰岳软件股份有限公司 | 一种设备安全漏洞的处理方法和装置 |
CN106021504A (zh) * | 2016-05-20 | 2016-10-12 | 深圳Tcl数字技术有限公司 | 字符串模糊匹配方法及装置 |
CN106202203A (zh) * | 2016-06-23 | 2016-12-07 | 扬州大学 | 基于终身主题模型的bug知识库的建立方法 |
CN107729258A (zh) * | 2017-11-30 | 2018-02-23 | 扬州大学 | 一种面向软件版本问题的程序故障定位方法 |
Non-Patent Citations (1)
Title |
---|
基于同源性分析的嵌入式设备固件漏洞检测;李登;《计算机工程》;20171231;第43卷(第1期);第72-78页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109542785A (zh) | 2019-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111104392B (zh) | 一种数据库迁移方法、装置、电子设备及存储介质 | |
CN109542785B (zh) | 一种无效bug确定方法和装置 | |
WO2015176431A1 (zh) | 一种测试数据的生成方法及装置 | |
CN110474900B (zh) | 一种游戏协议测试方法及装置 | |
CN109033150A (zh) | 敏感词验证方法、装置、计算机设备及存储介质 | |
US9870314B1 (en) | Update testing by build introspection | |
CN111615688A (zh) | 一种断言验证代码绑定方法及装置 | |
US11086906B2 (en) | System and method for reconciliation of data in multiple systems using permutation matching | |
KR20230130089A (ko) | 취약한 소프트웨어 패키지의 선택 및 발견을 위한 시스템및 방법 | |
CN115509904A (zh) | 一种接口测试用例的断言生成方法及装置 | |
CN112948473A (zh) | 数据仓库的数据处理方法、装置、系统及存储介质 | |
CN110428156B (zh) | 用于业务数据校验的方法、装置及电子设备 | |
US10114951B2 (en) | Virus signature matching method and apparatus | |
CN111984666A (zh) | 数据库访问方法、装置、计算机可读存储介质和计算机设备 | |
US20210286706A1 (en) | Graph-based method for inductive bug localization | |
CN109376285B (zh) | 基于json格式的数据排序验证方法、电子设备及介质 | |
CN109598478B (zh) | 一种风测结果描述文案的生成方法、装置及电子设备 | |
CN107092671B (zh) | 一种元信息管理的方法及设备 | |
CN115757172A (zh) | 测试执行方法、装置、存储介质及计算机设备 | |
CN114996151A (zh) | 接口测试方法、装置、电子设备及可读存储介质 | |
CN114707180A (zh) | 日志脱敏方法和装置 | |
CN112783775A (zh) | 特殊字符输入测试方法及装置 | |
CN112631905A (zh) | 执行过程数据管理方法、装置、计算机设备及存储介质 | |
CN107682224B (zh) | 一种网络web页面的测试方法及装置 | |
US8359456B2 (en) | Generating random addresses for verification of distributed computerized devices |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210817 Address after: 100016 no.4301, No.52 Jiuxianqiao hospital, Chaoyang District, Beijing Patentee after: BEIJING TESTIN INFORMATION TECHNOLOGY Co.,Ltd. Address before: 100041 room 9579, building 3, 3 Xijing Road, Badachu hi tech park, Shijingshan District, Beijing Patentee before: BEIJING TESTIN NETWORK TECHNOLOGY Co.,Ltd. |