一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

国产操作系统测试用例的复用方法和装置与流程

2022-07-13 11:48:31 来源:中国专利 TAG:


1.本发明涉及软件测试技术领域,具体来说,涉及一种国产操作系统测试用例的复用方法和装置。


背景技术:

2.为了保证国产操作系统的质量,军民领域均开展了大量的测试工作,已经积累了与国产操作系统相关的测试用例。但是,国产操作系统测试方案多是围绕各个项目定制的,根据经验和需求进行编写,有相当一部分用例只能在特定项目中使用,可重用性差;而且,主要依赖人工设计测试用例的方式不仅效率低,造成了历史测试经验的浪费,其他人也无法从已设计好的测试方案中学习到相关的经验和知识。为了节省测试成本,提高测试效率,测试用例复用的研究近年来变得越来越重要。目前常用的方法有以下几种:
3.(1)设计测试用例数据库,根据测试任务要求,将任务分解为对应的测试用例组信息,然后通过数据库查询功能查询当前的用例复用库,直接复用返回的测试用例;
4.(2)对测试用例进行分类,构建测试用例索引树为测试用例检索提供线索,利用测试用例索引树和树匹配模型思想进行测试用例检索。
5.(3)使用协同过滤推荐方法,通过分析用户群体,将相关项目推荐给具有相似特征和兴趣的用户。
6.(4)基于测试用例本体属性描述,使用基于用户复用行为的匹配度相似算法进行用例检索。
7.这些方法通过构建测试用例数据库、索引树、本体属性等方式对测试用例检索算法进行了改进,实现了测试用例的复用,但是大都从测试用例本身出发进行复用检索,没有充分考虑到测试用例作为测试方案的一部分和其他测试知识之间的关系属性。在面对具体项目随着测试对象、测试需求等测试知识发生改变时,实际应用效果往往不能达到预期。同时,由于现阶段软件测试用例库大多使用关系型数据库用来存储底层数据,随着测试项目数量的快速增长,传统的测试用例复用库设计架构自身存在的局限性愈加明显,已逐渐无法清晰表达不同项目之间测试知识关联关系。
8.知识图谱(knowledge graph)相关技术已被广泛应用于各专业领域,其在软件工程领域的典型应用包括构建领域知识库管理系统、设计和开发软件工程项目库,以及软件构建检索等。为了弥补传统软件测试知识管理工具的不足,进一步优化国产操作系统测试用例复用能力,本发明通过领域知识图谱的本体构建和知识抽取技术,将国产操作系统历史测试数据存储在知识图谱中,通过知识图谱实现对测试用例的复用。


技术实现要素:

9.为解决上述技术问题,本发明提出了一种国产操作系统测试用例复用方法,所述方法将国产操作系统历史测试数据存储在知识图谱中,通过知识图谱实现对测试用例的复用,其包括如下步骤:
10.步骤1:基于国产操作系统的历史测试文档中涉及的实体、所述实体的属性、所述实体之间的关联关系,建立测试知识图谱模型;
11.步骤2:按照所述测试知识图谱模型,抽取所述历史测试文档中涉及的所述实体、所述实体的属性、所述实体之间的关系;根据所述历史测试文档建立所述历史测试文档的子知识图谱;
12.步骤3:接收待测试项目的测试需求实体、实体的属性、实体间的关联关系,建立待测试项目的知识图谱;
13.步骤4:将所述待测试项目的知识图谱与所述历史测试文档的不同子知识图谱进行比较;
14.步骤5:根据比较结果输出复用测试用例集索引列表。
15.特别地,其中所述历史测试文档包括测试大纲和/或测试方案;所述实体包括被测对象,被测对象的版本,测试机构,测试类型,测试需求,测试方法,测试环境及测试用例、测试记录、问题报告单;所述实体之间的关联关系包括实体之间的从属关系,迭代关系及对应关系。
16.特别地,步骤2中建立不同的所述历史测试文档的不同的子知识图谱包括:以实体作为节点,以属性作为所述节点的键值,以实体之间的关联关系作为所述子知识图谱的边;所述抽取包括将实体、实体之间的关联关系、实体的属性三者按照三元组的形式保存。
17.特别地,所述步骤3中,抽取的所述历史测试文档包括结构化数据和/或半结构化数据;所述结构化的数据包括数据库中的规范数据,通过语义映射的方式实现三元组形式的保存;所述半结构化的数据包括文件形式的数据,通过正则表达式形成的模板进行匹配和识别,实现三元组的形式进行保存。
18.特别地,所述步骤4具体包括:
19.获取待测试项目主体的测试需求er和该被测对象的其他知识实体集合形成软件需求知识子图谱gr;
20.根据被测对象实体的测试需求er对应的表示被测对象和测试环境的属性键值对国产操系统测试知识图谱进行快速分区,提取待匹配计算的国产操系统测试知识图谱中的知识子图谱gr’;
21.设置判断阈值th,计算所述测试需求er与所述知识子图谱gr'中对应的各软件需求er'的属性相似度sim
attr
(vec(er),vec(er’));其中,vec(er)和 vec(er’)分别表示测试需求属性描述文本er和各软件需求属性描述文本er’的句子向量;并将大于阈值th的相似度,按照从大到小排序,得到测试需求实体列表lr={er'1,er'2,

,er'n},er'k(1≤k≤n)∈lr;
22.若所述测试需求列表lr不为空,则选取相似度值最大的er'k作为软件需求匹配结果,并以测试类型和测试方法为条件,筛选其关联的测试用例作为输出。
23.特别地,根据待测试项目的被测对象和测试环境的属性键值对知识图谱进行快速定位,提取待匹配计算知识子图谱具体包括:利用cbow连续词袋模型获得所述测试需求er与所述知识子图谱gr'中对应的各软件需求er'的语句中的所有词向量;再将语句中的所有词向量求均值后即得到该属性文本的句子向量 vec(er)和vec(er’);给定两个待匹配的测试需求实体er和er',两者具有相同的文本属性集合;通过计算er和er'测试需求属性描述
文本的句子向量vec(er) 和vec(er’)间的余弦值,得到向量之间的文本相似度
[0024][0025]
特别地,若所述测试需求列表lr为空,则判断需求er在知识图谱中无匹配需求,系统无对应复用用例输出。
[0026]
特别地,对输出的测试用例经实例化修改后,得到该项目的复用测试用例。
[0027]
本发明还提出了一种国产操作系统测试用例复用装置,该装置包括:建立测试知识图谱模型模块,用于基于国产操作系统的历史测试文档中涉及的实体、所述实体的属性、所述实体之间的关联关系,建立测试知识图谱模型;
[0028]
历史测试文档抽取模块,用于按照所述测试知识图谱模型,抽取所述历史测试文档中涉及的所述实体、所述实体的属性、所述实体之间的关系;根据所述历史测试文档建立所述历史测试文档的子知识图谱;
[0029]
建立测试项目知识图谱模块,用于接收待测试项目的测试需求实体、实体的属性、实体间的关联关系,建立待测试项目的知识图谱;
[0030]
测试项目图谱比较模块,用于将所述待测试项目的知识图谱与所述历史测试文档的不同子知识图谱进行比较;
[0031]
比较结果输出模块,用于根据比较结果输出复用测试用例集索引列表。
[0032]
有益效果:
[0033]
1、本发明通过领域知识图谱的本体构建和知识抽取技术,将国产操作系统历史测试数据存储在知识图谱中,通过知识图谱实现对测试用例的复用,可从已设计好的测试方案中学习到相关的经验和知识,节省了测试成本,提高测试效率。
[0034]
2、国产操作系统测试方案多是围绕各个项目定制的,测试领域技术人员能力水平不一,通过本专利的实施可以降低测试工作对测试技术人员的要求,提高系统测试质量。
附图说明
[0035]
图1为本发明提出的国产操作系统测试用例复用方法的流程框图;
[0036]
图2为本发明提出的国产操作系统测试领域本体模型。
具体实施方式
[0037]
以下结合附图对本发明的具体实施方式作出详细说明。
[0038]
本发明提出了一种国产操作系统测试用例复用方法,将国产操作系统历史测试数据存储在知识图谱中,通过知识图谱实现对测试用例的复用,其包括如下步骤,如图1所示。
[0039]
步骤1:基于国产操作系统的历史测试文档中涉及的实体、所述实体的属性、所述实体之间的关联关系,建立测试知识图谱模型;
[0040]
国产操作系统测试领域知识内容比较明确,关系相对清晰,在当前中文实体自动化构建技术还不成熟的情况下,结合软件测试领域的特点,通过本体学习和统计学习等方法得到历史测试大纲和测试方案的本体知识,采用自顶向下的模式开展图谱的本体设计。充分考虑系统与软件质量要求和测试用例复用设计的实际应用需求,根据国产操作系统测试大纲和测试方案的特性进行实体、关系、属性的选取与结构设计,其本体的实体-关系模
型如图2所示
[0041]
本体构建首先需要对测试领域的核心概念进行归纳,领域的核心概念对应的是本体中的实体(label)及其属性(attributes),每个核心概念对应着很多实例(entity),例如:“被测对象”作为实体就对应着“银河麒麟服务器操作系统”“银河麒麟桌面操作系统”“普华服务器操作系统”等实例,核心概念的归纳整理需要按照本体构建的两个基本原则,即本体中实体的设计应当秉承独立性和共享性原则。前者指的是这个实体可以独立存在,不依赖于特定的领域;后者指的是实体是可以共享的,即有复用的可能性和必要性。并且,本体中包含的实体数目应该遵循最小化原则,尽可能地去除冗余,最终确定了国产操作系统测试领域的核心概念,即图2中的11个实体及其属性。
[0042]
(1)被测对象:指测试任务中被测试的国产操作系统,包括中标麒麟、银河麒麟、普华、深度等国产操作系统。
[0043]
(2)版本:每一次测试任务针对本次测试对象都有其唯一的版本号,进行回归测试时被测对象不变,只改变版本号。
[0044]
(3)机构:机构分为研制单位和测试机构,研制单位一般为送测方,测试机构为测试方,包含地址、联系人、联系电话等属性。
[0045]
(4)测试需求:在实际测试过程中,测试大纲要求测试项对测试需求进行严格覆盖,测试项又被分解为多个测试用例,测试人员需要根据需求规格说明书编写测试用例,根据《中华人民共和国国家标准gb/t 25000.51-2016》及相关标准,对系统和软件的质量要求,可以将测试需求分为文档需求、功能需求、接口需求、性能效率需求、兼容性需求、易用性需求、可靠性需求、信息安全性需求、维护性需求、可移植性需求、有效性需求、效率需求、满意度需求、抗风险需求、周境覆盖需求、其他需求。
[0046]
(5)测试类型:根据不同的测试需求,采用相应的测试类型,包括文档审查、功能性测试、接口测试、性能效率测试、兼容性测试、易用性测试、可靠性测试、信息安全性测试、维护性测试、可移植性测试、有效性测试、效率测试、满意度测试、抗风险测试、周境覆盖测试等。
[0047]
(6)测试方法:测试方法主要分为三种,包括手工测试、自动化测试和其他测试。
[0048]
(7)测试环境:针对每一次测试任务,测试人员都会专门部署测试环境,主要包括硬件项、软件项、软件测试工具、数据源等。
[0049]
(8)测试项:测试项应该覆盖所有的需求类别,且测试项不应包含具体的测试数据,数据在用例中体现,包括测试项标识、测试项描述、测试过程描述、充分性要求、约束条件、终止要求、通过准则、优先级等。
[0050]
(9)测试用例:测试项分解为多个测试用例,测试用例的属性包括用例标识、测试项标识、用例初始化、前提和约束、终止条件、通过准则、设计人员、测试步骤、期望结果与评估标准等。
[0051]
(10)测试记录:测试用例产生测试记录,测试记录的属性包括测试人员、测试时间、执行结果、通过状态、问题标识。
[0052]
(11)问题报告单:测试记录会将出现的问题对应到问题报告单中,问题报告单的属性包括报告人、报告日期、问题类型、问题级别/问题严重登记、问题描述、回归测试结果、修复人、修复方案。
[0053]
第二步需要定义领域关系(relation)及其约束,关系是本体的核心基本要素,是对测试领域中的概念和实例之间的相互作用的描述,关系直接决定了本体知识图谱的知识丰富程度以及基于知识图谱构建的其他应用系统的功能范围。通过对历史数据的学习并且考虑到具体应用场景,确定了实体之间的18个关系,具体连接形式如图2所示。其中版本之间的“迭代”关系是指测试领域一般需要考虑到回归测试,在开发厂家修改了旧代码重新进行测试时只需迭代版本号,并不需要对被测对象进行改变。设置“需求追踪”“测试项追踪”“测试环境追踪”和“测试类型追踪”四个关系主要考虑到基于知识图谱进行测试用例复用。
[0054]
步骤2:按照所述测试知识图谱模型,抽取所述历史测试文档中涉及的所述实体、所述实体的属性、所述实体之间的关系;根据所述历史测试文档建立所述历史测试文档的子知识图谱;
[0055]
知识抽取的目的是根据不同的数据源、不同的数据格式,完成实体、属性、关系的抽取。这是知识图谱构建流程中非常关键的一环,知识抽取的质量决定了知识图谱的质量。实体之间的关系以及实体的属性值,都可以用三元组(主语、谓词、宾语)来表示,例如(测试用例、产生、测试记录)就是一个三元组,所以知识抽取又可以叫做三元组抽取。国产操作系统的测试数据分为结构化和半结构化数据,结构化数据一般指存在于数据库中的规范数据,测试用例一般存储在测试管理数据库的excel表格中,可以看作结构化数据,通过语义映射的方法即可转化为知识三元组的形式。与之对应的,针对半结构化文本,采用制定模板进行规则匹配的方法,从历史测试文件中得到知识三元组。
[0056]
国产操作系统的历史测试数据多为半结构化文本,主要来自于测试大纲、测试需求、测试方案等.doc/.docx测试文件。这些多单位提供的、数量庞大的文件,采用人工抽取的方法效率极低。为提升国产操作系统测试知识图谱构建效率,依据测试数据的特性借助python库的python-docx工具实现了测试知识的自动化抽取。python-docx是一个python库,用于创建和更改微软word文件,配合正则表达式对历史测试数据的表格、段落进行匹配,其中段落匹配一般针对操作系统概述这种成段落的文字,表格匹配包括相关机构、软件环境、测试用例、测试记录、问题报告单等这类表格形式的数据。
[0057]
步骤3:接收待测试项目的测试需求实体、实体的属性、实体间的关联关系,建立待测试项目的知识图谱;
[0058]
在软件测试中,测试需求被分解为多个测试项,而这些测试项又被分解为多个测试用例,因此,类似测试需求对应的测试用例具有一定的相关性,可以计算出与当前软件测试需求相似的历史软件需求,从知识图谱中对应的测试用例作为复用用例。随着历史数据的不断积累,知识库中同时存在大量相似的国产操作系统测试需求,则需要进行更多的择优处理。以测试需求知识为核心,构建包括待测项目测试需求及其关联实体的知识子图谱。
[0059]
步骤4:将所述待测试项目的知识图谱与所述历史测试文档的不同子知识图谱进行比较;
[0060]
将待测试项目的知识图谱与国产操作系统测试知识图谱网络中的各相似子图谱进行集体匹配,从而获得了更优的检索输出结果。具体算法如下:
[0061]
输入:待测项目的测试需求实体er和与它相关的被测对象、测试方法、测试类型和测试环境等知识实体集合形成软件需求知识子图谱gr。
[0062]
输出:复用测试用例集索引列表。
[0063]
(1)根据er的“被测对象”和“测试环境”属性键值,对国产操系统测试知识图谱进行快速分区,提取待匹配计算知识子图谱gr’。
[0064]
(2)设置判断阈值th,根据式(1)计算er与gr'中各软件需求er'的属性相似度,给定两个待匹配的测试需求实体er和er',两者具有相同的文本属性集合;考虑到现有国产操作系统测试知识图谱的规模和特点,选择了一种基于测试需求实体特征属性文本的cbow(continuous bag-of-words)连续词袋模型自然语言处理(natura llanguage processing,nlp)算法,快速开展测试需求实体属性文本相似度对比。cbow模型经过充分训练后,能够以指定的当前词及其上下文为输入,预测该词出现的概率。在利用python3.7进行算法编程实现时,选用gensim 库提供的word2vec工具包。
[0065]
对于输入语义文本,经语义关键词提取和英文缩略语翻译后,得到该语句的中文关键词序列,利用cbow模型的训练输出文件可以获得每个关键词的词向量值,再将句子中的所有词向量求均值后即得到该属性文本的句子向量vec(k);通过计算er和er'测试需求属性描述文本的句子向量vec(er)和vec(er’)间的余弦值,得到向量之间的文本相似度
[0066][0067]
并按照相似度从大到小检索出top-n且大于th的测试需求实体列表lr={er'1,er'2,

,er'n},er'k(1≤k≤n)∈lr。
[0068]
步骤5:根据比较结果输出复用测试用例集索引列表。
[0069]
(3)若lr不为空,选取相似度值最大的er'k作为软件需求匹配结果,并以测试类型和测试方法为条件,筛选其关联的测试用例作为输出。
[0070]
(4)若lr为空,则判断需求er在知识图谱中无匹配需求,系统无对应复用用例输出。
[0071]
(5)对输出的测试用例经实例化修改后,得到该项目的复用测试用例。
[0072]
本发明设计了国产操作系统测试领域本体模型,提出了知识抽取和测试用例复用的方法,实现了知识图谱的国产操作系统测试用例复用,可以有效提高测试用例复用质量,提高测试效率,并且帮助测试人员学习和设计测试用例。
[0073]
本发明还提出了一种国产操作系统测试用例复用装置,其特征在于,该装置包括:
[0074]
建立测试知识图谱模型模块,用于基于国产操作系统的历史测试文档中涉及的实体、所述实体的属性、所述实体之间的关联关系,建立测试知识图谱模型;
[0075]
历史测试文档抽取模块,用于按照所述测试知识图谱模型,抽取所述历史测试文档中涉及的所述实体、所述实体的属性、所述实体之间的关系;根据所述历史测试文档建立所述历史测试文档的子知识图谱;
[0076]
建立测试项目知识图谱模块,用于接收待测试项目的测试需求实体、实体的属性、实体间的关联关系,建立待测试项目的知识图谱;
[0077]
测试项目图谱比较模块,用于将所述待测试项目的知识图谱与所述历史测试文档的不同子知识图谱进行比较;
[0078]
比较结果输出模块,用于根据比较结果输出复用测试用例集索引列表。
[0079]
本装置与方法实施例一一对应,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
[0080]
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
[0081]
在本发明实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0082]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0083]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0084]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何在本发明揭露的技术范围内的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献