CN114327594A - 应用于分布式存储系统的测试用例选取方法、装置及介质 - Google Patents
应用于分布式存储系统的测试用例选取方法、装置及介质 Download PDFInfo
- Publication number
- CN114327594A CN114327594A CN202111596698.4A CN202111596698A CN114327594A CN 114327594 A CN114327594 A CN 114327594A CN 202111596698 A CN202111596698 A CN 202111596698A CN 114327594 A CN114327594 A CN 114327594A
- Authority
- CN
- China
- Prior art keywords
- test case
- test
- case
- software
- storage system
- 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
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及一种应用于分布式存储系统的测试用例选取方法、装置及介质,所述方法包括以下步骤:获取待测试版本软件代码相对于基准版本软件代码的代码变更函数列表;基于所述代码变更函数列表及软件信息生成版本变更信息;将所述版本变更信息作为一训练好的测试用例评分模型的输入,获得预设测试用例集中每条测试用例的置信度;将所述置信度大于置信度阈值的测试用例作为推荐用例;所述测试用例评分模型基于卷积神经网络构建,进行训练时采用的训练样本包括历史代码变更信息、测试用例的特征信息和测试用例所对应的历史缺陷信息。与现有技术相比,本发明具有能够有效地提高测试用例选择效率等优点。
Description
技术领域
本发明涉及软件测试技术领域,尤其是涉及一种应用于分布式存储系统的测试用例选取方法、装置及介质。
背景技术
软件测试是软件开发中的关键因素。为了保证全面完整地对待测试系统进行测试,测试类型通常可以分为:功能测试、可靠性测试、性能测试、安全测试等类型。而对于分布式存储系统而言,由于涉及到的系统复杂度较高,且对系统的数据一致性和高可用都存在着极高的要求。因此,每次版本的迭代都需要引入对已有功能的回归。
那么如何合理的确认回归测试的范围,如何在对质量提供保证的同时提高测试的效率,就成为测试人员的痛点和难点。就目前而言,测试用例的选取主要还是要靠测试人员的经验来确定。这样做存在以下缺点:
1、测试回归的范围主观因素很大,范围估计太小会有可能出现测试遗漏和软件质量问题,范围估计面太大会耗费过的时间从而降低测试效率.
2、测试用例选择是否合理也很大程度上依赖于测试人员本身的素质和对代码的了解。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种有效地提高测试用例选择效率的应用于分布式存储系统的测试用例选取方法、装置及介质,保证软件的质量并节省大量的软件测试时间。
本发明的目的可以通过以下技术方案来实现:
一种应用于分布式存储系统的测试用例选取方法,包括以下步骤:
获取待测试版本软件代码相对于基准版本软件代码的代码变更函数列表;
基于所述代码变更函数列表及软件信息生成版本变更信息;
将所述版本变更信息作为一训练好的测试用例评分模型的输入,获得预设测试用例集中每条测试用例的置信度;
将所述置信度大于置信度阈值的测试用例作为推荐用例;
所述测试用例评分模型基于卷积神经网络构建,进行训练时采用的训练样本包括历史代码变更信息、测试用例的特征信息和测试用例所对应的历史缺陷信息。
进一步地,所述软件信息包括文件ID、模块ID、CPU类型、网络类型和作者。
进一步地,所述测试用例评分模型基于所述版本变更信息获得软件变更特征,并获得所述预设测试用例集中每条测试的用例特征,基于所述软件变更特征和用例特征获得所述置信度。
进一步地,所述软件变更特征基于嵌入层获得,所述用例特征基于嵌入层和文本卷积网络获得。
进一步地,所述置信度为所述软件变更特征和用例特征的向量乘积。
进一步地,所述测试用例的特征信息包括用例ID、用例名和用例类型。
进一步地,所述历史缺陷信息包括测试用例ID、软件历史版本和缺陷等级。
进一步地,所述测试用例评分模型训练时,采用的损失函数为MSE函数或交叉熵函数。
本发明还提供一种应用于分布式存储系统的测试用例选取装置,包括:
一个或多个处理器;
存储器;和
被存储在存储器中的一个或多个程序,所述一个或多个程序包括用于执行如上所述应用于分布式存储系统的测试用例选取方法的指令。
本发明还提供一种计算机可读存储介质,包括供电子设备的一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括用于执行如上所述应用于分布式存储系统的测试用例选取方法的指令。
与现有技术相比,本发明具有以下有益效果:
(1)本发明根据被测软件系统的版本变更信息来选择需要测试的测试用例,能够避免全量回归所有的测试用例或者人为选择时带来的错选和漏选,当系统源代码发生变更后,本发明能够准确地判断当前使用的测试用例是否满足实际测试需求,降低了开发测试人员的工作量。
(2)在本发明中使用卷积神经网络作为测试用例选取的依据,提取软件版本变更的函数列表,并提取其相关特征,建立测试用例和变更函数之间对应关系,解决了更准确的构建测试用例和版本迭代的问题。
(3)本发明通过根据版本更新的函数信息查询推荐的测试用例,解决了源代码变更后需要全量回归已有测试用例的问题,避免了人力成本浪费。
(4)本发明避免了源代码变更后需要人为评估测试用例带来的风险,降低了对人为经验的依赖度,并提高了测试可靠度。
(5)本发明同时结合了国产化适配中CPU类型、网卡类型变更对测试带来的影响,能够更准确的缩小测试范围。
附图说明
图1为本发明的流程示意图;
图2为本发明的测试用例评分模型示意图;
图3为本发明的文本卷积网络示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
实施例
如图1所示,本实施例提供一种应用于分布式存储系统的测试用例选取方法,包括以下步骤:获取待测试版本软件代码相对于基准版本软件代码的代码变更函数列表;基于所述代码变更函数列表及软件信息生成版本变更信息,软件信息包括文件ID、模块ID、CPU类型、网络类型和作者等;将所述版本变更信息作为一训练好的测试用例评分模型的输入,获得预设测试用例集中每条测试用例的置信度,也就是计算每个发生代码变更的函数会对预设的测试用例的结果产生影响的概率,具体地,测试用例评分模型基于所述版本变更信息获得软件变更特征,并获得所述预设测试用例集中每条测试的用例特征,基于所述软件变更特征和用例特征获得所述置信度;将所述置信度大于置信度阈值的测试用例作为推荐用例。
测试用例评分模型是本发明方法的核心,其所述测试用例评分模型基于卷积神经网络构建,进行训练时采用的训练样本包括历史代码变更信息、测试用例的特征信息和测试用例所对应的历史缺陷信息。
测试用例评分模型的构建及训练过程如下:
1、获取数据
获取的数据包括历史软件版本更新数据、测试用例数据和历史缺陷数据。
历史软件版本更新数据分别有函数ID、文件ID、模块ID、CPU类型、网络类型和作者等字段。
数据中的格式:FunctionID::FileID::ModuleID::CPU::Network::AuthorID。
在本实施例中,函数ID、文件ID、模块ID、CPU类型、网络类型和作者都是类别字段。
测试用例数据分别有测试用例ID、测试用例标题和测试用例分类等字段。
数据中的格式:CaseID::Title:Genres。
在本实施例中,测试用例标题是文本,测试用例ID和测试用例分类是类别。
历史缺陷数据分别有测试用例ID、软件历史版本和缺陷等级等字段。
数据中的格式:FunctionID::CaseID::Rating
在本实施例中,Rating就是测试用例评分模型要学习的目标。
2、数据预处理
本实施例对不同字段的数据进行不同数据预处理具体为:
FunctionID、FileID、ModuleID和AuthorID不用变。
Gender字段:需要将‘F’和‘M’转换成0和1。
CPU字段:根据系统实际情况支持Intel、AMD、ARM三种类型的CPU,将其转成3个连续数字0~2。
Network字段:根据系统实际情况支持以太网、RDMA、RoCE三种类型的网络,将其转成3个连续数字0~2。
Genres字段:是分类字段,要转成数字。本发明中将测试用例分为功能测试、性能测试、可靠性测试、数据一致性测试、压力测试、安全测试、安装测试、升级测试,将其转换为0~7。
Title字段:处理方式跟Genres字段一样,首先创建文本到数字的字典,然后将Title中的描述转成数字的列表。
Genres和Title字段需要将长度统一,这样在神经网络中方便处理。空白部分用‘<PAD>’对应的数字填充。
当对文字进行转换时,可使用word2vec或者doc2vec来代表一个Token。如果一段文字包含有n个词,每个词有m维的词向量,那么我们可以构造出一个n*m的词向量矩阵,在NLP处理过程中,让过滤器宽度和矩阵宽度保持一致整行滑动。
3、模型设计及训练
通过研究数据集中的字段类型,我们发现有一些是类别字段,通常的处理是将这些字段转成one hot编码,但是像CaseID、FunctionID这样的字段就会变成非常的稀疏,输入的维度急剧膨胀,影响后续模型处理的准确性。本方法在预处理数据时将这些字段转成了数字,用这个数字当做嵌入矩阵的索引,在网络的第一层使用了嵌入层,维度是(N,32)和(N,16)。如图2所示,这样最后输出的变更函数特征维度相对比较高,也保证了能把每个变更函数所带有的特征充分携带并通过特征表达。
在嵌入层输出结果的基础上,通过2层全连接层实现。第一个全连接层把特征矩阵转成(N,128)的大小,再进行第二次全连接层,转成(N,200)的大小,这样最后输出的软件变更特征维度相对比较高,也保证了能把每个变更函数所带有的特征充分携带并通过特征表达。
测试用例名的处理比较特殊,没有使用循环神经网络,而是用了文本卷积网络。如图3所示,网络的第一层是词嵌入层,由每一个单词的嵌入向量组成的嵌入矩阵。下一层使用多个不同尺寸(窗口大小)的卷积核在嵌入矩阵上做卷积,窗口大小指的是每次卷积覆盖几个单词。这里跟对图像做卷积不太一样,图像的卷积通常用2x2、3x3、5x5之类的尺寸,而文本卷积要覆盖整个单词的嵌入向量,所以尺寸是(单词数,向量维度),比如每次滑动3个、4个或者5个单词。第三层网络是max pooling得到一个长向量,最后使用dropout做正则化,最终得到了测试用例名的特征。
从嵌入层索引出特征以后,将各特征传入全连接层,将输出再次传入全连接层,最终分别得到软件变更特征和测试用例特征两个特征向量。通过训练出软件变更特征和测试用例特征这两个特征,实现用例的推荐。在得到这两个特征以后,就可以选择任意的方式来拟合评分了。本实施例使用的方式如图2所示,将两个特征做向量乘法,将结果与真实评分做回归,采用MSE优化损失,也可以采用交叉熵函数来作为损失函数。
在利用训练数据和标签对模型进行训练,还包括:按照指定比例将多个指定格式数据划分为训练集和测试集;利用训练数据和标签对机器学习模型进行训练;利用测试数据和标签对机器学习模型进行测试是否达到标准。
在获得预设测试用例集中每条测试用例的置信度后,检查置信度是否高于预设阈值;若高于,则将目标测试用例作为推荐测试用例,若低于,则将目标测试用例作为非推荐测试用例。
对于不同类型的测试用例给予不同的阈值,比如数据一致性用例的阈值要低于高可用用例的阈值,高可用用例的阈值要高于功能性用例的阈值。这是因为在分布式存储系统中,测试优先级排序为数据一致性>高可用>功能。
上述方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
实施例2
本实施例提供一种应用于分布式存储系统的测试用例选取装置,包括一个或多个处理器、存储器和被存储在存储器中的一个或多个程序,所述一个或多个程序包括用于执行如实施例1所述应用于分布式存储系统的测试用例选取方法的指令。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (10)
1.一种应用于分布式存储系统的测试用例选取方法,其特征在于,包括以下步骤:
获取待测试版本软件代码相对于基准版本软件代码的代码变更函数列表;
基于所述代码变更函数列表及软件信息生成版本变更信息;
将所述版本变更信息作为一训练好的测试用例评分模型的输入,获得预设测试用例集中每条测试用例的置信度;
将所述置信度大于置信度阈值的测试用例作为推荐用例;
所述测试用例评分模型基于卷积神经网络构建,进行训练时采用的训练样本包括历史代码变更信息、测试用例的特征信息和测试用例所对应的历史缺陷信息。
2.根据权利要求1所述的应用于分布式存储系统的测试用例选取方法,其特征在于,所述软件信息包括文件ID、模块ID、CPU类型、网络类型和作者。
3.根据权利要求1所述的应用于分布式存储系统的测试用例选取方法,其特征在于,所述测试用例评分模型基于所述版本变更信息获得软件变更特征,并获得所述预设测试用例集中每条测试的用例特征,基于所述软件变更特征和用例特征获得所述置信度。
4.根据权利要求3所述的应用于分布式存储系统的测试用例选取方法,其特征在于,所述软件变更特征基于嵌入层获得,所述用例特征基于嵌入层和文本卷积网络获得。
5.根据权利要求3所述的应用于分布式存储系统的测试用例选取方法,其特征在于,所述置信度为所述软件变更特征和用例特征的向量乘积。
6.根据权利要求1所述的应用于分布式存储系统的测试用例选取方法,其特征在于,所述测试用例的特征信息包括用例ID、用例名和用例类型。
7.根据权利要求1所述的应用于分布式存储系统的测试用例选取方法,其特征在于,所述历史缺陷信息包括测试用例ID、软件历史版本和缺陷等级。
8.根据权利要求1所述的应用于分布式存储系统的测试用例选取方法,其特征在于,所述测试用例评分模型训练时,采用的损失函数为MSE函数或交叉熵函数。
9.一种应用于分布式存储系统的测试用例选取装置,其特征在于,包括:
一个或多个处理器;
存储器;和
被存储在存储器中的一个或多个程序,所述一个或多个程序包括用于执行如权利要求1-8任一所述应用于分布式存储系统的测试用例选取方法的指令。
10.一种计算机可读存储介质,其特征在于,包括供电子设备的一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括用于执行如权利要求1-8任一所述应用于分布式存储系统的测试用例选取方法的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111596698.4A CN114327594A (zh) | 2021-12-24 | 2021-12-24 | 应用于分布式存储系统的测试用例选取方法、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111596698.4A CN114327594A (zh) | 2021-12-24 | 2021-12-24 | 应用于分布式存储系统的测试用例选取方法、装置及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114327594A true CN114327594A (zh) | 2022-04-12 |
Family
ID=81012536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111596698.4A Pending CN114327594A (zh) | 2021-12-24 | 2021-12-24 | 应用于分布式存储系统的测试用例选取方法、装置及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114327594A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116303088A (zh) * | 2023-04-17 | 2023-06-23 | 南京航空航天大学 | 一种基于深度神经网络交叉熵损失的测试用例排序方法 |
-
2021
- 2021-12-24 CN CN202111596698.4A patent/CN114327594A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116303088A (zh) * | 2023-04-17 | 2023-06-23 | 南京航空航天大学 | 一种基于深度神经网络交叉熵损失的测试用例排序方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110188202B (zh) | 语义关系识别模型的训练方法、装置及终端 | |
CN109086654B (zh) | 手写模型训练方法、文本识别方法、装置、设备及介质 | |
CN111476256A (zh) | 基于半监督学习的模型训练方法、装置及电子设备 | |
CN110413786B (zh) | 基于网页文本分类的数据处理方法、智能终端及存储介质 | |
CN116629275B (zh) | 一种基于大数据的智能决策支持系统及方法 | |
CN109086265B (zh) | 一种语义训练方法、短文本中多语义词消歧方法 | |
CN113326380B (zh) | 基于深度神经网络的设备量测数据处理方法、系统及终端 | |
CN111126481A (zh) | 一种神经网络模型的训练方法及装置 | |
CN113706151A (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN112995690A (zh) | 直播内容品类识别方法、装置、电子设备和可读存储介质 | |
CN114327594A (zh) | 应用于分布式存储系统的测试用例选取方法、装置及介质 | |
CN109919214B (zh) | 一种神经网络模型的训练方法及训练装置 | |
CN113592008A (zh) | 一种基于自编码器的图神经网络机制解决小样本图像分类的系统、方法、设备及存储介质 | |
CN112989256B (zh) | 识别响应信息中web指纹的方法和装置 | |
CN112597764B (zh) | 文本分类方法及装置、存储介质、电子装置 | |
CN115080864A (zh) | 基于人工智能的产品推荐方法、装置、计算机设备及介质 | |
CN114218462A (zh) | 基于lstm的数据分类方法、装置、设备及存储介质 | |
CN113260044A (zh) | 基于双层字典学习的csi指纹定位方法、装置及设备 | |
CN110569331A (zh) | 一种基于上下文的关联性预测方法、装置及存储设备 | |
CN116977021B (zh) | 基于大数据的系统对接自动推单方法 | |
CN112749079A (zh) | 软件测试的缺陷分类方法、装置及计算设备 | |
CN115146596B (zh) | 召回文本的生成方法、装置、电子设备及存储介质 | |
CN112183714B (zh) | 基于人工神经网络的自动化数据切片 | |
CN116912921B (zh) | 表情识别方法、装置、电子设备及可读存储介质 | |
CN117611580B (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 |