CN115422371A - 一种基于软件测试知识图谱的检索方法 - Google Patents
一种基于软件测试知识图谱的检索方法 Download PDFInfo
- Publication number
- CN115422371A CN115422371A CN202211063828.2A CN202211063828A CN115422371A CN 115422371 A CN115422371 A CN 115422371A CN 202211063828 A CN202211063828 A CN 202211063828A CN 115422371 A CN115422371 A CN 115422371A
- Authority
- CN
- China
- Prior art keywords
- word
- knowledge
- retrieval
- words
- software
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
- G06F16/367—Ontology
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/216—Parsing using statistical methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/237—Lexical tools
- G06F40/247—Thesauruses; Synonyms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
Abstract
本发明涉及一种基于软件测试知识图谱的检索方法,属于知识图谱技术领域,解决了现有软件测试文档复用度低且无法智能化检索的问题。包括对用户输入的检索条件进行分词处理得到检索词;基于多级词库中的停用词库和同义词库,去除检索词中的停用词并获得剩余检索词中的同义词,加入检索词;依次在软件测试知识图谱中对检索词进行关键词匹配,获取关键词及与关键词关联的知识实体和同义词;与关键词关联的知识实体作为检索结果;根据关键词和同义词所属词库权重和位置权重,以及同义词的相似度,汇总每个检索结果的得分;基于软件测试模板,按照得分从高到低显示出检索结果对应的软件测试知识。实现了测试知识的智能化检索,提高了数据的综合利用率。
Description
技术领域
本发明涉及知识图谱技术领域,尤其涉及一种基于软件测试知识图谱的检索方法。
背景技术
软件测评不仅是保证软件质量的主要手段,也是软件试验鉴定工作的重要组成部分之一。提升软件产品测试智能化和标准化水平,是提高软件测试效率和质量进而增强软件试验鉴定能力的重要途径。在测试过程中积累的数据和经验也应该有一定的继承性。随着测试数据的逐年增多,但积累的数据往往得不到利用,一致处于沉睡状态,如何将历史测试用例转换为测试知识是目前亟需解决的问题。
知识图谱广泛应用于各个领域之中,各领域中的企业和单位开始结合知识图谱相关技术,抽取各自领域信息资源的知识实体和关系数据,构建各自领域的知识图谱,用于信息资源的检索和推荐,能够方便快速地获取相关知识,改进了信息资源的使用方法,提高了使用效率。
但现有知识图谱语料库来源单一,无法区分词的权重,检索智能化程度低,相关度不大的节点被检出,影响检索率;关键词提取不准确且缺少合理的更新机制。
发明内容
鉴于上述的分析,本发明实施例旨在提供一种基于软件测试知识图谱的检索方法,用以解决现有软件测试文档复用度低且无法智能化检索的问题。
本发明实施例提供了一种基于软件测试知识图谱的检索方法,包括以下步骤:
对用户输入的检索条件进行分词处理,得到检索词;基于多级词库中的停用词库和同义词库,去除检索词中的停用词,并获得剩余检索词中的同义词,加入检索词中;
依次在软件测试知识图谱中对检索词进行关键词匹配,获取关键词及与关键词关联的知识实体和同义词;与关键词关联的知识实体作为检索结果;
根据关键词和同义词所属词库权重和位置权重,以及同义词的相似度,汇总每个检索结果的得分;基于软件测试模板,按照得分从高到低显示出检索结果对应的软件测试知识。
基于上述方法的进一步改进,检索方法还包括:当检索结果数量小于第一数量阈值,或者得分超过分值阈值的检索结果数量小于第二数量阈值时,根据分词结果进行全文检索,得到补充结果及其得分,加入检索结果中。
基于上述方法的进一步改进,根据关键词和同义词所属词库权重和位置权重,以及同义词的相似度,汇总每个检索结果的得分,是以每个检索结果为中心节点,以关键词和同义词作为中心节点的环绕节点,且以2级路径为边界,计算出中心节点的环绕中心度,作为检索结果的得分。
基于上述方法的进一步改进,使用下式得到中心节点的环绕中心度:
CC(Np)=Dictp×Posp
C′C(Nq)=Dictq×Posq×simq
其中,g是与中心节点C存在直接关系的关键词数量,r是与C存在直接关系的关键词的同义词数量;Dictp是关键词Np所属词库的权重,Posp是关键词Np的位置权重,Dictq是同义词库的权重,Posq是同义词Nq的位置权重,simq为同义词的相似度。
基于上述方法的进一步改进,基于软件测试模板,按照得分从高到低显示出检索结果对应的软件测试知识,包括:
根据检索结果,获取对应的软件测试模板;
根据软件测试模板中绑定的字段,从检索结果对应的记录中获取字段内容,填充至软件测试模板中;如果字段内容中存在图片标识符,则从文件库中获取图片信息,插入到软件测试模板中,得到软件测试知识;以可视化化方式展示软件测试知识。
基于上述方法的进一步改进,软件测试知识图谱是基于软件测试模板,根据软件测试文档而构建,构建步骤如下:
基于软件测试模板,对接收到的软件测试文档进行预处理和分词处理,根据分词结果更新多级词库中的新词库,以及根据分词结果和文档所属研究方向,更新各类研究方向的IDF模型文件;解析预处理后的文档得到基础数据;
基于基础数据,定时抽取知识实体及其属性,并建立知识实体及其属性以及知识实体间的关系;
根据多级词库和各类研究方向的IDF模型文件,从知识实体的属性中提取关键词,建立关键词实体以及关键词实体与知识实体的关系,得到知识图谱。
基于上述方法的进一步改进,多级词库包括:一级标准词库、二级热词库、三级新词库、四级同义词库和五级停用词库;其中一级标准词库是通过分析领域标准和软件测试标准而预置;二级热词库是根据用户输入的检索条件,以及预置的次数阈值和时间阈值而动态更新;三级新词库是根据所有预处理成功的软件测试文档的分词结果而更新;四级同义词库和五级停用词库是根据用户维护而更新。
基于上述方法的进一步改进,根据分词结果和文档所属研究方向,更新各类研究方向的IDF模型文件:
基于停用词库,对每类研究方向下每个文档的分词结果去除停用词;
使用如下公式计算出每类研究方向中去除停用词后的分词结果中,每个词的逆文档频率,并将各个词和对应的逆文档频率组成各类研究方向的IDF模型文件:
其中,idfi,j为第i个词在第j类研究方向中的逆文档频率;TCi,j为第i个词在第j类研究方向的文档中的词频;MCi为第i个词在内置语料库中出现的次数。
基于上述方法的进一步改进,根据多级词库和各类研究方向的IDF模型文件,从知识实体的属性中提取关键词,包括:
将每个知识实体的属性组成当前文本,进行分词处理,将得到的分词结果去除停用词后得到待提取词语;
基于多级词库,识别出各个待提取词语所属词库,将属于一级标准词库或二级热词库的待提取词语,直接作为关键词,对剩余的每个待提取词语,执行如下步骤:
根据剩余的每个待提取词语在当前文本中出现的次数和在所有预处理成功的软件测试文档中出现的次数,得到剩余的每个待提取词语的TF词频;
根据知识实体所属的研究方向的IDF模型文件,获取剩余的每个待提取词语的IDF逆文档频率;
识别剩余的每个待提取词语来源的属性及属性对应的权重,并根据剩余的每个待提取词语所属词库,得到剩余的每个待提取词语的位置权重和词库权重;
根据TF词频、IDF逆文档频率、位置权重和词库权重的乘积,得到剩余的每个待提取词语的得分;
从高到低排序得分,根据预置个数,从剩余的待提取词语中提取得分靠前的预置个数的词语作为关键词。
基于上述方法的进一步改进,二级热词库是根据用户输入的检索条件,以及预置的次数阈值和时间阈值而动态更新,包括:
对用户输入的检索条件进行分词处理,将得到的分词结果去除停用词,并移除已在任一词库中的词语;
依次判断剩余词是否已存在于该用户的习惯词组缓存区中,如果已存在,则将该词的词频加1,若词频达到预置的次数阈值,则将该词加入二级热词库,并从该用户的习惯词组缓存区中移除该词;如果不存在,则将该词加入该用户的习惯词组缓存区中,更新时间;
根据该用户的习惯词组缓存区中各词的更新时间,与当前时间比较,将超过预置的时间阈值的词从该用户的习惯词组缓存区中移除。
与现有技术相比,本发明至少可实现如下有益效果之一:
1、基于关键词和同义词,综合考虑路径数量和路径权重,提出环绕中心度算法对知识进行检索和推荐,提高检索结果的关联度,以最大化利用沉睡的测试知识。
2、建立多级词库和各自的更新维护方法,提高分词准确率和检索命中率。
3、改进IDF计算方法,在对所有软件测试文档进行IDF模型训练时,针对不同研究方向生成IDF模型,在关键词提取的过程中,会提取文本对应的研究方向,使用对应方向的IDF模型进行关键词提取,以提高关键词提取的精确性。
4、采用模板自适应技术,在每次软件测试文档变更后仅需将新模板上传至服务器,即可根据测试文档统一建模语言自动将模板解析成对应的html,同时支持数据库字段动态绑定,整个过程无需对代码进行二次编写。
本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。
附图说明
附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
图1为本发明实施例中一种基于软件测试知识图谱的检索方法流程图;
图2为本发明实施例中根据检索条件得到的知识子图的示意图。
具体实施方式
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。
本发明的一个具体实施例,公开了一种基于软件测试知识图谱的检索方法,主要针对电子对抗装备软件测试数据资产不能有效利用的问题,在构建的软件测试知识图谱的基础上进行检索。如图1所示,包括以下步骤:
S11:对用户输入的检索条件进行分词处理,得到检索词;基于多级词库中的停用词库和同义词库,去除检索词中的停用词,并获得剩余检索词中的同义词,加入检索词中。
需要说明的是,为了兼顾检索命中率和电子对抗领域名词分词准确率,本实施例建立了多级词库。多级词库包括:一级标准词库、二级热词库、三级新词库、四级同义词库和五级停用词库;其中:
一级标准词库是通过分析领域标准和软件测试标准而预置,具体来说,由电子对抗装备软件测试领域的专家对电子对抗领域军用标准、工程标准、测评领域军用标准、测试文档体系模板进行分析,形成了2000词的电子对抗装备软件测试标准库,权重最高;
二级热词库是根据用户输入的检索条件,以及预置的次数阈值和时间阈值而动态更新,提高对网络热词的分词成功率;
三级新词库是对用户上传的软件测试文档进行预处理和分词处理后,从分词结果中获取新词而更新,即通过分词处理中的隐马尔科夫和维特比算法对软件测试文档进行无监督学习,其词库容量超过5000词,属于电子对抗装备软件测试领域词库,能显著提高分词准确率和对专业词语的分词成功率;
四级同义词库和五级停用词库是根据用户维护而更新,即由用户对一级标准词库、二级热词库和三级新词库中的词,自定义配置对应的多个同义词及相似度,提高检索命中率;自定义配置停用词,包括:无意义的助词、语气词和干扰词组,比如测试、环境等,提高分词效率。
需要说明的是,分词处理是利用隐马尔科夫模型,以字在词语中的位置作为状态,基于多级词库生成初始概率矩阵、状态转移矩阵和发射概率矩阵;将检索条件作为观测序列,并利用维特比算法得到的最优状态序列,根据最优状态序列输出分词结果。
分词处理时的语料库可以选择多级词库中的一级标准词库和二级热词库作为语料库,也可以将多级词库与网上通用语料库结合。以字在词语中的位置作为状态,包括:字在字数大于1的词语的起始位置B,字在字数大于1的词语的结束位置E,字在字数大于1的词语的中间位置M,字为单字词S。示例性地,“精忠报国”表示为BMME,“我”表示为S,“中国”表示为BE。由此可知,词语不可能以M和B开头,得到初始概率矩阵PI,示例性地,设置分别以BMES开头的初始概率矩阵PI=[0.7,0,0,0.3]。
根据马尔科夫假设,t+1时的状态仅仅取决于t时的状态,基于B后面只可能接M或者E,M后面只可能接M或者E,S后面只可能接S或者B,E后面只可能接S或者B,得到4×4的状态转移矩阵A,表示当前状态转移到下一个状态的概率矩阵。根据当前观测仅仅取决于当前状态,建立发射概率矩阵B为每个字在每个状态的概率。
初始状态概率矩阵PI,转移概率矩阵A,发射概率矩阵B都已经通过训练为已知,将输入文本作为观测序列,并利用维特比算法得到的最优状态序列(即概率最大),根据最优状态序列输出分词结果。
该分词处理方法可以复用,只需将上述分词处理中的检索条件换成其它场景下待分词的文本即可。比如用于构建知识图谱时,对软件测试文档的分词、对知识实体属性的分词。
由于在实际中文语言中存在大量的同义词,如果在检索结果中无法对同义词进行同步检索,其搜索命中率会大大降低。因此,本步骤中去除检索词中的停用词后,根据同义词库,获得剩余检索词中的同义词,加入检索词中,一起用于后续检索。
S12:依次在软件测试知识图谱中对检索词进行关键词匹配,获取关键词及与关键词关联的知识实体和同义词;与关键词关联的知识实体作为检索结果。
需要说明的是,软件测试知识图谱是基于软件测试模板,根据软件测试文档而构建。
具体来说,根据电子对抗装备软件测试在需求分析阶段、测试策划阶段、测试执行阶段产生的测试类相关数据的分析,以项目为维度,确定每个项目的软件测试知识包括:测试项、测试用例和测试缺陷。软件测试知识图谱是对电子对抗装备软件测试知识进行统一入库管理,采用统一建模语言进行预处理后,进行知识抽取、知识表示、知识融合而构建得到,将构建知识图谱作为步骤S10,细分为步骤S101-S103。
S101:基于软件测试模板,对接收到的软件测试文档进行预处理和分词处理,根据分词结果更新多级词库中的新词库,以及根据分词结果和文档所属研究方向,更新各类研究方向的IDF模型文件;解析预处理后的文档得到基础数据。
S102:基于基础数据,定时抽取知识实体及其属性,并建立知识实体及其属性以及知识实体间的关系。
S103:根据多级词库和各类研究方向的IDF模型文件,从知识实体的属性中提取关键词,建立关键词实体以及关键词实体与知识实体的关系,得到知识图谱。
在步骤S101中,在获取到软件测试知识的同时,进行分词处理,根据分词结果更新多级词库中的新词库,更新各类研究方向的IDF模型文件,最后将软件测试知识信息保存在数据库中,便于后续知识图谱的构建。
软件测试知识包括结构化和非结构化的数据,其中结构化的数据比较常规,通过系统接口、数据库同步或导入、导出等方式即可获取;而非结构化的软件测试知识一般存储在word文档中。在电子对抗领域,由于各军兵种、各测试单位对体系的理解不同,甚至同一个测评中心不同年份的测试体系文档模板也不尽相同,传统是建立不同的文档模板或者将模板转换为Json或xml进行知识提取和保存,一旦调整模板,就需要重写涉及模板变更的函数,包括文档抽取、文档校验、文档内容检索,甚至调整数据库的表字段,导致在每次变更后进行大量的编码工作。
本实施例采用了一种高度灵活的模板自适应技术,在每次测试类文档变更后,仅需将新模板上传至服务器,无需对代码进行二次编写,整个过程如下:
①上传并解析软件测试模板,将模板转化为html表格。
需要说明的是,软件测试模板中包括测评中心名称、文档类型、版本号、以及1个或多个表格;将上传的软件测试模板保存在文件库中,同时通过openxml技术对用户上传的软件测试模板解析,获取行列信息,创建html文件,根据软件测试模板判断是否需要合并单元格,如果需要,则通过CSS样式合并单元格,根据openxml获取单元格属性解析列宽,设置对应的CSS样式;根据行列信息和列宽生成html;同时根据模板类型获取对应的基础数据的字段列表,在html文件中,为表格中的每个单元格生成字段列表下拉框。
②建立软件测试模板与字段的映射关系,以及字段的约束条件。
通过人工绑定的方式,选择软件测试模板中每个单元格中的字段列表下拉框,绑定对应字段信息。需要说明的是,基础数据的字段信息中包括扩展字段,用于关联模板中新增加的信息。
考虑到电子对抗装备软件测试相关文档是由测试人员手工编辑完成,不可避免的会引入大量的错误,包括表格格式错误、缺陷标识不符合规范、唯一标识重复等,若文档抽取前不对文档进行校验,抽取后的数据将存在大量的脏数据,对后续缺陷关联关系的建立造成影响。因此必须为文档中的特殊字段建立约束条件,以便在抽取前对文档进行预处理,提高数据质量。
具体来说,对绑定的字段通过字段属性编辑界面设置约束条件,包括唯一约束和正则表达式条件;其中,唯一约束是对测试知识的标识、标题等非重复字段创建的约束,主要用于在抽取关系时,避免因文档错误导致的错误关系被建立。正则表达式是对所有字段的规则校验,必须满足正则表达式的字段才会被抽取,否则给出错误提示。
③上传待处理文档,根据软件测试模板对接收到的软件测试文档进行预处理。
根据模板类型上传1个或多个待处理文档,解析上传的软件测试文档,获取文档要素信息,包括:文档类型、文档所属研究方向、表格总行数、表格总列数和表格各单元格数据;根据文档对应的软件测试模板,依次校验表格总行数与总列数是否与软件测试模板一致;表格中各单元格数据是否满足软件测试模板中字段的约束条件(唯一约束或正则表达式条件),如果全部校验通过,则预处理成功,按文档所属研究方向进行分类存储;否则记录并反馈错误日志,预处理失败。
对于预处理识别的文件,根据OnlyOffice插件,用户对文档直接进行在线编辑后再次进行预处理操作。
将所有预处理成功的文档转换为文本后,作为输入文本采用上述隐马尔科夫和维特比算法进行分词处理,得到分词结果,将其中连续单字词SS对应的字组成新词,如果新词不存在于多级词库中的新词库中,则加入新词库。
示例性地,当得到的最优状态序列为BESSBE,则将SS对应的字组成新词。
接下来,根据分词结果和文档所属研究方向,更新各类研究方向的IDF模型文件,包括:
基于停用词库,对每类研究方向下每个文档的分词结果去除停用词;
使用如下公式计算出每类研究方向中去除停用词后的分词结果中,每个词的逆文档频率,并将各个词和对应的逆文档频率组成各类研究方向的IDF模型文件:
其中,idfi,j为第i个词在第j类研究方向中的逆文档频率;TCi,j为第i个词在第j类研究方向的文档中的词频;MCi为第i个词在内置语料库中出现的次数。
需要说明的是,内置语料库用于关键词提取,可以选择新时代人民日报分词语料库(NEPD)。
与现有技术相比,传统TF-IDF算法中IDF的计算方式采用:语料库中的文件总数/包含当前词的文件数,仅仅从文件粒度计算当前词语的逆向频率,未考虑到词频对逆向频率的影响。本实施例中认为词语在某特定类型的文本(某研究方向的文档)的词频较高,而在普通文本中的词频低,则认为词语对该特定类型的文本有很高的区分能力。因此在计算IDF时,加入了研究方向的类型概念,在应用于关键词提取时,使提取粒度更加精细,精确性更高。
需要说明的是,当接收到用户上传的软件测试文档,预处理成功后,就会对所有已预处理成功的文档进行分词,根据分词结果更新新词库,以及更新各类研究方向的IDF模型文件。当有多个用户同时上传,或者用户上传时,正在更新词库或IDF模型文件时,通过设置操作状态判断是否可进行更新操作,通过记录用户上传数量和上传时间,当词库和IDF模型文件更新完成后,根据最新的上传时间对之前已上传且预处理成功的所有文档再进行词库和模型文件的更新。
软件测试文档预处理成功后,将文档中的信息保存在数据库中,得到基础数据。该步骤与更新新词库和更新IDF模型文件无执行顺序限制,可以同步执行,也可以完成更新后执行。
考虑到软件测试文档中通常会有测试过程的图片,因此,对预处理后的文档进行图文分离,分别入库,包括:
获取预处理成功的文档的文档要素信息,判断其中是否存在图片信息,如果存在,提取图片信息,并为该图片分配唯一标识,在图片位置处插入标识符,将图片保存至文件库中,将文档要素信息,以及文档与图片的关联关系保存至基础数据库,生成基础数据,包括:项目、测试项、测试用例和测试缺陷。
示例性地,文件库为MiniIO。
通过以上步骤的处理,将非结构化的文档信息转换为结构化的数据提取至基础数据库中,将文档模板和文档中的图片信息保存至文件库中。
在步骤S102中,根据基础数据库,抽取出知识实体和属性,建立知识实体间的关系。由于在步骤S101中已将数据按照各类基础数据保存,而各类基础数据直接对应知识图谱中的各类知识实体,基础数据中相关字段信息直接映射为知识实体的属性,因此,知识实体和属性的抽取过程包括:
知识图谱库定时监控基础数据库的更新情况,从基础数据库中获取新保存的结构化数据,根据对应的知识实体类型,在图数据库中建立对应的知识实体节点,将结构化数据中的相关字段信息填充到知识实体节点的各属性中,知识实体节点包括:项目、测试项、测试用例和测试缺陷。
示例性地,知识图谱库监控到基础数据库中新增了一个测试缺陷,则在图数据库中建立一个测试缺陷的知识实体节点,以基础数据库中该测试缺陷的“测试缺陷标题”作为知识实体节点名称,其他字段信息,比如测试缺陷描述、测试人员、监测人员和问题原因作为知识实体节点的属性。
每个项目中测试项标识、缺陷标识、用例标识均唯一,在建立知识实体和属性时,根据属性中的关联标识,建立知识实体间的关系,包括:
根据测试项与项目间1对多的关系,在建立测试项知识实体时,获取测试项的项目标识,根据项目标识查询出对应的项目知识实体,建立测试项知识实体与项目知识实体的关系;
根据测试项与测试用例间1对多的关系,在建立测试用例知识实体时,获取测试用例关联的测试项标识,根据测试项标识查询对应的测试项知识实体,如果存在测试项知识实体,则建立测试用例知识实体与测试项知识实体的关系,否则,删除测试用例知识实体,取消关系建立;
根据测试用例与测试缺陷间多对多的关系,在建立测试缺陷知识实体时,获取测试缺陷关联的测试用例标识,根据测试用例标识查询对应的测试用例知识实体,如果存在测试用例实体,建立测试缺陷知识实体与测试用例知识实体的关系,否则,删除测试缺陷知识实体,取消关系建立。
在步骤S103中,为了实现对测试知识的精确检索,从知识实体的属性中提取关键词,并以此关键词建立关键词实体。每一个测试知识可以抽取多个关键词,关键词与知识实体间建立多对多的关系。
进一步地,知识实体的核心属性分为三类:标题、描述和内容,每一类权重不同,从不同类别中提取的关键词的位置权重就是关键词来源的属性类别权重,其中,标题包括:测试项标题、测试用例标题和测试缺陷标题;描述包括:测试项描述、测试项追踪、测试用例描述和测试缺陷描述;内容包括:测试项充分性、测试方法、测试用例输入/输出/预期结果、测试缺陷详细描述、问题原因和修改方式。
具体来说,根据多级词库和各研究方向的IDF模型文件,从知识实体的属性中提取关键词,包括:
1)将知识实体的属性组成当前文本,进行分词处理,将得到的分词结果去停用词后得到待提取词语;
2)基于多级词库,识别出各个待提取词语所属词库,将属于一级标准词库或二级热词库的待提取词语,直接作为关键词,对剩余的每个待提取词语,执行如下步骤:
①根据剩余的每个待提取词语在当前文本中出现的次数和在所有预处理成功的文档中出现的次数,得到剩余的待提取词语的TF词频;
需要说明的是,使用如下公式计算出TF词频(Term Frequency):
其中,nk,m为剩余的待提取词语tk在文本dm中出现的次数,∑lnk,l为剩余的待提取词语tk在所有预处理成功的文档中出现的次数之和。
②根据知识实体所属的研究方向的IDF模型文件,获取剩余的每个待提取词语的IDF逆文档频率;
需要说明的是,如果IDF模型文件正在更新中,则根据更新前的IDF模型文件获取对应词语的IDF逆文档频率。
③根据剩余的每个待提取词语来源的属性及属性对应的权重,并根据剩余的每个待提取词语所属词库,得到剩余的每个待提取词语的位置权重和词库权重;
需要说明的是,分词处理后得到的词,其所属词库和位置来源作为决定其重要程度的部分因素,本实施例中不同级别的词库和不同属性来源设置了默认值,并可实时调整。
示例性地,词库和属性位置的权重信息如表1所示。
表1权限分配示例表
词库 | 词库权重 | 标题权重 | 描述权重 | 内容权重 |
一级标准词库 | 0.5 | 1.0 | 0.5 | 0.1 |
二级热词库 | 0.3 | 0.5 | 0.25 | 0.05 |
三级新词库 | 0.1 | 0.1 | 0.05 | 0.01 |
四级同义词库 | 0.1 | 0.1 | 0.05 | 0.01 |
④根据TF词频、IDF逆文档频率、位置权重和词库权重的乘积,得到剩余的每个待提取词语的得分;
需要说明的是,通过TF词频、IDF逆文档频率、词库权重和位置权重这四个维度计算出的得分,即反映了关键词的重要程度,也反映了电子对抗领域特色,同时还考虑了关键词位置带来的影响。
⑤从高到低排序得分,根据预置个数,从剩余的待提取词语中提取得分靠前的预置个数的词语作为关键词。
将提取的关键词作为实体名称进行检索,如果不存在,则创建新的关键词实体节点,建立关键词实体节点与知识实体之间多对多的关系,如果已存在,进一步判断是否已存在该关键词实体节点与知识实体的关系,如果不存在关系,则建立两者之间多对多的关系。
基于上述步骤构建出知识图谱,包括:知识实体及其属性、知识实体间的关系、关键词实体,以及关键词与知识实体的关系。
优选地,基于同义词库,获取提取的关键词的同义词;将同义词作为实体名称进行检索,当同义词实体不存在时,建立同义词实体,以及关键词实体与同义词实体之间多对多的关系。
本实施例中电子对抗装备软件测试知识图谱库G=(E,R)表示为三元组的形式S={(h,r,t)}。每个三元组由一对实体h,t∈E和它们之间的直接关系r∈R组成。用(h,r,t)来表示实体对和它们之间的某条多步关系路径,其中p=(h,r1,r2,…rm,t)。(h,t)是起始/终点实体,r1,r2,…rm是路径上的关系,同时每个实体通过多个属性描述具体的特征。
将测试数据进行结构化处理后,虽然能够通过全文检索、精确查找等技术进行数据的检索利用,由于智能化程度低,需要查询条件与数据内容完全匹配、无法查询同义词、无法直接对长句进行检索分析,导致数据的检出率低、检索速度慢。步骤S101-步骤S103将结构化的测试知识转化为半结构化的图数据,以图的形式实现测试知识的智能化存储,提高数据的综合利用率。
基于构建出来的软件测试知识图谱,以步骤S11得到的检索词作为关键词实体名称与知识图谱中建立的关键词实体名称进行匹配,获取与检索词匹配的关键词,再获取与关键词关联的知识实体和同义词实体。其中与关键词关联的知识实体作为检索结果。
S13:根据关键词和同义词所属词库权重和位置权重,以及同义词的相似度,汇总每个检索结果的得分;基于软件测试模板,按照得分从高到低显示出检索结果对应的软件测试知识。
需要说明的是,根据关键词和同义词所属词库权重和位置权重,以及同义词的相似度,汇总每个检索结果的得分,是以每个检索结果为中心节点,以关键词和同义词作为中心节点的环绕节点,且以2级路径为边界,计算出中心节点的环绕中心度,作为检索结果的得分。
使用下式得到中心节点的环绕中心度:
CC(Np)=Dictp×Posp 公式(4)
C′C(Nq)=Dictq×Posq×simq 公式(5)
其中,g是与中心节点C存在直接关系的关键词数量,r是与C存在直接关系的关键词的同义词数量;Dictp是关键词Np所属词库的权重,Posp是关键词Np的位置权重,Dictq是同义词库的权重,Posq是同义词Nq的位置权重,simq为同义词的相似度。同义词的位置权重可以与所关联的关键词的位置权重相同,也可以自定义配置。
示例性地,当用户输入的检索条件是“信号截获处理”,匹配的关键词实体是信号、截获和处理,根据关键词实体得到与其关联的知识实体,如图2所示。在图2中实体节点之间的连线上标注了关键词所属的词库等级,以及位置来源。
根据环绕中心度算法,基于表1的权重,得到图2中三个测试项的环绕中心度分别为:
信号处理:
信号截获:
全脉冲采集:
由此可知,与检索条件相关度最大的测试项“信号截获”得分最高。
优选地,当检索结果数量小于第一数量阈值,或者得分超过分值阈值的检索结果数量小于第二数量阈值时,根据分词结果进行全文检索,得到补充结果及其得分,加入检索结果中。
示例性地,采用Elasticsearch用于全文检索。
进一步地,获得检索结果后,基于软件测试模板,按照得分从高到低显示出检索结果对应的软件测试知识,即对测试知识进行内容和格式的恢复,以直观的方式将结果反馈给最终用户。具体过程包括:
根据检索结果,获取对应的软件测试模板;
根据软件测试模板中绑定的字段,从检索结果对应的记录中获取字段内容,填充至软件测试模板中;如果字段内容中存在图片标识符,则从文件库中获取图片信息,插入到软件测试模板中,得到软件测试知识;
以可视化化方式展示软件测试知识。
优选地,从知识图谱库中,获取该检索结果关联的知识实体和关系,对检索结果进行全生命周期追溯。
在根据用户输入的检索条件进行检索的同时,进行二级热词库的更新,过程包括:
对用户输入的检索条件进行分词处理,将得到的分词结果去除停用词,并移除已在任一词库中的词语;
依次判断剩余词是否已存在于该用户的习惯词组缓存区中,如果已存在,则将该词的词频加1,若词频达到预置的次数阈值,则将该词加入二级热词库,并从该用户的习惯词组缓存区中移除该词;如果不存在,则将该词加入该用户的习惯词组缓存区中,更新时间;
根据该用户的习惯词组缓存区中各词的更新时间,与当前时间比较,将超过预置的时间阈值的词从该用户的习惯词组缓存区中移除。
示例性地,将超过3个月未更新的词从该用户的习惯词组缓存区中删除。
与现有技术相比,本实施例提供的一种基于软件测试的知识图谱构建方法,采用模板自适应技术,在每次软件测试文档变更后仅需将新模板上传至服务器,即可根据测试文档统一建模语言自动将模板解析成对应的html,同时支持数据库字段动态绑定,整个过程无需对代码进行二次编写;建立多级词库和各自的更新维护方法,提高分词准确率和检索命中率;改进IDF计算方法,在对所有软件测试文档进行IDF模型训练时,针对不同研究方向生成IDF模型,在关键词提取的过程中,会提取文本对应的研究方向,使用对应方向的IDF模型进行关键词提取,以提高关键词提取的精确性;基于关键词和同义词,综合考虑路径数量和路径权重,提出环绕中心度算法对知识进行检索和推荐,提高检索结果的关联度,以最大化利用沉睡的测试知识。
本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种基于软件测试知识图谱的检索方法,其特征在于,包括如下步骤:
对用户输入的检索条件进行分词处理,得到检索词;基于多级词库中的停用词库和同义词库,去除检索词中的停用词,并获得剩余检索词中的同义词,加入检索词中;
依次在软件测试知识图谱中对检索词进行关键词匹配,获取关键词及与关键词关联的知识实体和同义词;所述与关键词关联的知识实体作为检索结果;
根据关键词和同义词所属词库权重和位置权重,以及同义词的相似度,汇总每个检索结果的得分;基于软件测试模板,按照得分从高到低显示出检索结果对应的软件测试知识。
2.根据权利要求1所述的基于软件测试知识图谱的检索方法,其特征在于,所述检索方法还包括:当检索结果数量小于第一数量阈值,或者得分超过分值阈值的检索结果数量小于第二数量阈值时,根据分词结果进行全文检索,得到补充结果及其得分,加入检索结果中。
3.根据权利要求1或2所述的基于软件测试知识图谱的检索方法,其特征在于,所述根据关键词和同义词所属词库权重和位置权重,以及同义词的相似度,汇总每个检索结果的得分,是以每个检索结果为中心节点,以关键词和同义词作为中心节点的环绕节点,且以2级路径为边界,计算出中心节点的环绕中心度,作为检索结果的得分。
5.根据权利要求3所述的基于软件测试知识图谱的检索方法,其特征在于,所述基于软件测试模板,按照得分从高到低显示出检索结果对应的软件测试知识,包括:
根据检索结果,获取对应的软件测试模板;
根据软件测试模板中绑定的字段,从检索结果对应的记录中获取字段内容,填充至软件测试模板中;如果所述字段内容中存在图片标识符,则从文件库中获取图片信息,插入到软件测试模板中,得到软件测试知识;以可视化化方式展示软件测试知识。
6.根据权利要求1所述的基于软件测试知识图谱的检索方法,其特征在于,所述软件测试知识图谱是基于软件测试模板,根据软件测试文档而构建,构建步骤如下:
基于软件测试模板,对接收到的软件测试文档进行预处理和分词处理,根据分词结果更新多级词库中的新词库,以及根据分词结果和文档所属研究方向,更新各类研究方向的IDF模型文件;解析预处理后的文档得到基础数据;
基于基础数据,定时抽取知识实体及其属性,并建立知识实体及其属性以及知识实体间的关系;
根据多级词库和各类研究方向的IDF模型文件,从知识实体的属性中提取关键词,建立关键词实体以及关键词实体与知识实体的关系,得到知识图谱。
7.根据权利要求6所述的基于软件测试知识图谱的检索方法,其特征在于,所述多级词库包括:一级标准词库、二级热词库、三级新词库、四级同义词库和五级停用词库;其中一级标准词库是通过分析领域标准和软件测试标准而预置;二级热词库是根据用户输入的检索条件,以及预置的次数阈值和时间阈值而动态更新;三级新词库是根据所有预处理成功的软件测试文档的分词结果而更新;四级同义词库和五级停用词库是根据用户维护而更新。
9.根据权利要求8所述的基于软件测试知识图谱的检索方法,其特征在于,所述根据多级词库和各类研究方向的IDF模型文件,从知识实体的属性中提取关键词,包括:
将每个知识实体的属性组成当前文本,进行分词处理,将得到的分词结果去除停用词后得到待提取词语;
基于多级词库,识别出各个待提取词语所属词库,将属于一级标准词库或二级热词库的待提取词语,直接作为关键词,对剩余的每个待提取词语,执行如下步骤:
根据剩余的每个待提取词语在当前文本中出现的次数和在所有预处理成功的软件测试文档中出现的次数,得到剩余的每个待提取词语的TF词频;
根据知识实体所属的研究方向的IDF模型文件,获取剩余的每个待提取词语的IDF逆文档频率;
识别剩余的每个待提取词语来源的属性及属性对应的权重,并根据剩余的每个待提取词语所属词库,得到剩余的每个待提取词语的位置权重和词库权重;
根据TF词频、IDF逆文档频率、位置权重和词库权重的乘积,得到剩余的每个待提取词语的得分;
从高到低排序得分,根据预置个数,从剩余的待提取词语中提取得分靠前的预置个数的词语作为关键词。
10.根据权利要求6所述的基于软件测试知识图谱的检索方法,其特征在于,所述二级热词库是根据用户输入的检索条件,以及预置的次数阈值和时间阈值而动态更新,包括:
对用户输入的检索条件进行分词处理,将得到的分词结果去除停用词,并移除已在任一词库中的词语;
依次判断剩余词是否已存在于该用户的习惯词组缓存区中,如果已存在,则将该词的词频加1,若词频达到预置的次数阈值,则将该词加入二级热词库,并从该用户的习惯词组缓存区中移除该词;如果不存在,则将该词加入该用户的习惯词组缓存区中,更新时间;
根据该用户的习惯词组缓存区中各词的更新时间,与当前时间比较,将超过预置的时间阈值的词从该用户的习惯词组缓存区中移除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211063828.2A CN115422371A (zh) | 2022-09-01 | 2022-09-01 | 一种基于软件测试知识图谱的检索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211063828.2A CN115422371A (zh) | 2022-09-01 | 2022-09-01 | 一种基于软件测试知识图谱的检索方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115422371A true CN115422371A (zh) | 2022-12-02 |
Family
ID=84200941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211063828.2A Pending CN115422371A (zh) | 2022-09-01 | 2022-09-01 | 一种基于软件测试知识图谱的检索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115422371A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116401678A (zh) * | 2023-06-08 | 2023-07-07 | 中汽智联技术有限公司 | 一种汽车信息安全测试用例的构建和提取方法 |
CN117313111A (zh) * | 2023-11-30 | 2023-12-29 | 中汽智联技术有限公司 | 一种基于汽车信息安全测试用例的标注与索引方法和系统 |
-
2022
- 2022-09-01 CN CN202211063828.2A patent/CN115422371A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116401678A (zh) * | 2023-06-08 | 2023-07-07 | 中汽智联技术有限公司 | 一种汽车信息安全测试用例的构建和提取方法 |
CN116401678B (zh) * | 2023-06-08 | 2023-09-01 | 中汽智联技术有限公司 | 一种汽车信息安全测试用例的构建和提取方法 |
CN117313111A (zh) * | 2023-11-30 | 2023-12-29 | 中汽智联技术有限公司 | 一种基于汽车信息安全测试用例的标注与索引方法和系统 |
CN117313111B (zh) * | 2023-11-30 | 2024-04-09 | 中汽智联技术有限公司 | 一种基于汽车信息安全测试用例的标注与索引方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11106664B2 (en) | Systems and methods for generating a contextually and conversationally correct response to a query | |
CN110442760B (zh) | 一种问答检索系统的同义词挖掘方法及装置 | |
CN105373365B (zh) | 用于管理关于近似串匹配的档案的方法和系统 | |
US8229883B2 (en) | Graph based re-composition of document fragments for name entity recognition under exploitation of enterprise databases | |
WO2021068683A1 (zh) | 正则表达式生成方法、装置、服务器及计算机可读存储介质 | |
CN115422371A (zh) | 一种基于软件测试知识图谱的检索方法 | |
CN115422372A (zh) | 一种基于软件测试的知识图谱构建方法和系统 | |
CN112632228A (zh) | 一种基于文本挖掘的辅助评标方法及系统 | |
CN113962293B (zh) | 一种基于LightGBM分类与表示学习的姓名消歧方法和系统 | |
WO2023035330A1 (zh) | 一种长文本事件抽取方法、装置、计算机设备及存储介质 | |
EP3864566A1 (en) | Method of training a natural language search system, search system and corresponding use | |
KR20160149050A (ko) | 텍스트 마이닝을 활용한 순수 기업 선정 장치 및 방법 | |
CN111241410A (zh) | 一种行业新闻推荐方法及终端 | |
CN115186654A (zh) | 一种公文文本摘要生成方法 | |
CN114238653A (zh) | 一种编程教育知识图谱构建、补全与智能问答的方法 | |
CN116049376B (zh) | 一种信创知识检索回复的方法、装置和系统 | |
Talburt et al. | A practical guide to entity resolution with OYSTER | |
CN116628173A (zh) | 一种基于关键字提取的智能客服信息生成系统及生成方法 | |
CN111753514A (zh) | 一种专利申请文本的自动生成方法和装置 | |
CN113392189B (zh) | 基于自动分词的新闻文本处理方法 | |
CN112613318B (zh) | 实体名称归一化系统及其方法、计算机可读介质 | |
CN116628188A (zh) | 一种基于地产行业的录音文本标签体系构建方法及系统 | |
CN114265935A (zh) | 一种基于文本挖掘的科技项目立项管理辅助决策方法及系统 | |
CN117194410B (zh) | 一种人工智能语言模型生成业务报表的方法及系统 | |
CN117291192B (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 |