一种测试用例聚类分析方法及系统与流程

文档序号:12464233阅读:152来源:国知局
一种测试用例聚类分析方法及系统与流程

本发明涉及一种软件测试技术领域,尤其涉及一种测试用例聚类分析方法及系统。



背景技术:

在日常软件测试工作中,通常会遇到软件需求功能基本不变,但软件代码经常小幅度高频次修改;针对这样的软件,在测试过程中,测试用例输入变量具有高度的重复性,有人提出将测试用例操作步骤分解成对输入变量的赋值的基本操作单元,并将基本操作单元随机组合生成测试用例,但这一方法存在弊端,由于是使用随机组合,并没有与软件功能建立一一对应的关系,这样虽然在测试用例生成阶段实现了自动化,但在实际测试过程中,还是需要人工建立测试用例与软件功能的对应关系,才能获得与软件功能对应一致的测试用例,导致了测试执行阶段还是基于人工的方式,降低了整个测试过程的自动化和智能化程度,没有完全提升测试效率。



技术实现要素:

本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种智能化程度高、可自动分析测试用例的测试功能、大幅度提高软件测试效率、降低软件测试人力成本的测试用例聚类分析方法及系统。

为解决上述技术问题,本发明提出的技术方案为:一种测试用例聚类分析方法,包括如下步骤:

S1.将测试用例标准化为对变量的赋值操作,确定标准化向量结构,根据标准化向量结构生成标准化测试用例向量;

S2.根据所述标准化向量结构和需要的测试功能构建基于神经网络的测试用例功能分析模型;

S3.从所述测试用例向量中选择训练样本,并分析确定训练样本所覆盖的测试功能;

S4.以所述训练样本作为所述测试用例功能分析模型的输入参数,以所述训练样本所覆盖的测试功能确定测试用例功能分析模型的输出期望,对所述测试用例功能分析模型进行训练;

S5.以其余非训练样本的测试用例向量为所述测试用例功能分析模型的输入参数,通过测试用例功能分析模型确定测试用例向量的测试功能。

作为本发明的进一步改进,所述标准化向量结构描述为可表征全部测试用例中所包含的全部变量,包括变量的初始值和赋值过程的一组向量的结构。

作为本发明的进一步改进,所述标准化测试用例向量描述为表征某个测试用例中所包含变量的初始值、赋值过程的一组向量。

作为本发明的进一步改进,步骤S2中所述测试用例功能分析模型描述为包括输入层、隐含层和输出层的模型;其中,输入层节点与所述标准化向量结构中的各元素固定对应,输出层节点与所述测试功能固定对应。

作为本发明的进一步改进,所述测试用例功能分析模型的每个输入层节点与每个隐含层节点之间定义有第一权值,每个隐含层节点均定义有第一阀值;每个隐含层节点与每个输出层节点之间定义有第二权值,每个输出层节点均定义有第二阀值;每个输入层节点与每个隐含层节点之间定义有第一传递函数;每个隐含层节点与每个输出层节点之间定义有第二传递函数。

作为本发明的进一步改进,所述第一权值和第二权值的初始值为在预设范围内的随机数。

作为本发明的进一步改进,所述预设范围为-0.05至0.05。

作为本发明的进一步改进,所述测试用例功能分析模型定义预测误差为输出层节点的输出期望与输出层节点的输出值之差;输出层节点的输出期望为根据所选择的训练样本是否具有该输出层节点对应的测试功能所确定的预设值。

作为本发明的进一步改进,所述步骤S4的具体步骤包括:对于每个训练样本,根据训练样本的测试功能确定所述测试用例功能分析模型的输出层节点的输出期望;对所述训练样本的标准化测试用例向量中各元素的值进行归一化处理后作为测试用例功能分析模型的输入层节点参数,计算输出层节点的输出值;并根据预测误差修正所述测试用例功能分析模型的第一权值、第一阀值、第二权值和第二阀值;循环计算直到所述测试用例功能分析模型的预测误差小于预设的误差限值,或者循环计算次数大于预设的循环限值。

作为本发明的进一步改进,所述步骤S5的具体步骤包括:对所述非训练样本测试用例的标准化测试用例向量进行归一化处理后作为测试用例功能分析模型的输入层节点参数,计算输出层节点的输出值,当该输出值大于预设的第一功能确认门槛值时,判断该测试用例具有该输出层节点对应的测试功能;当该输出值小于预设的第二功能确认门槛值时,判断该测试用值不具有该输出层节点对应的测试功能。

一种测试用例聚类分析系统,包括:

测试用例标准化模块:用于将测试用例标准化为对变量的赋值操作,确定标准化向量结构,根据标准化向量结构生成标准化测试用例向量;

测试用例功能分析模型构建模块:用于根据所述标准化向量结构和需要的测试功能构建基于神经网络的测试用例功能分析模型;

模型训练模块:用于从所述测试用例向量中选择训练样本,并分析确定训练样本所覆盖的测试功能;并以所述训练样本作为所述测试用例功能分析模型的输入参数,以所述训练样本所覆盖的测试功能确定测试用例功能分析模型的输出期望,对所述测试用例功能分析模型进行训练;

测试用例功能分析模型:以其余非训练样本的测试用例向量为所述测试用例功能分析模型的输入参数,通过测试用例功能分析模型确定测试用例向量的测试功能。

与现有技术相比,本发明的优点在于:

1、本发明针对将测试过程中对变量的基本操作单元进行随机组合生成的测试用例进行智能分析,利用神经网络技术建立测试用例与软件功能的对应关系,进一步提升了测试过程的智能化程度,有效的提高了软件测试效率,降低了人力成本。

附图说明

图1为本发明具体实施例流程示意图。

图2为本发明测试用例对变量赋值时序示意图。

图3为本发明具体实施例一测试用例功能分析模型示意图。

图4为本发明具体实施例二测试用例功能分析模型示意图。

具体实施方式

以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。

实施例一:

如图1所示,本实施例的测试用例聚类分析方法,其步骤为:S1.将测试用例标准化为对变量的赋值操作,确定标准化向量结构,根据标准化向量结构生成标准化测试用例向量;S2.根据所述标准化向量结构和需要的测试功能构建基于神经网络的测试用例功能分析模型;S3.从所述测试用例向量中选择训练样本,并分析确定训练样本所覆盖的测试功能;S4.以所述训练样本作为所述测试用例功能分析模型的输入参数,以所述训练样本所覆盖的测试功能确定测试用例功能分析模型的输出期望,对所述测试用例功能分析模型进行训练;S5.以其余非训练样本的测试用例向量为所述测试用例功能分析模型的输入参数,通过测试用例功能分析模型确定测试用例向量的测试功能。

在本实施例中,所述标准化向量结构描述为可表征全部测试用例中所包含的全部变量,包括变量的初始值和赋值过程的一组向量的结构。所述标准化测试用例向量描述为表征某个测试用例中所包含变量的初始值、赋值过程的一组向量。

在本实施例中,设针对某个被测试软件,具有测试用例1至测试用例m共m个测试用例,将m个测试用例分别标准化为对变量的赋值操作,分别确定每个测试用例包含的变量以及对变量的赋值操作过程。通过将m个测试用例分别标准化后,可以确定m个测试用例中共包含n个不同的变量,变量1至变量n。那么,将全部测试用例标准化为对变量的赋值操作后,可以确定测试用例的标准化向量结构为:初始值向量赋值向量赋值操作时间向量其中,k为全部测试用例中,对同一变量进行赋值的最大次数,n为全部测试用例中不同变量的总数,初始值向量、赋值向量和赋值操作时间向量是将单个测试用例标准化所确定的向量。

在本实施例中,对于每一个变量,提取初始值向量和赋值向量中的最大值和最小值,分别生成最大值向量最小值向量提取幅值操作时间向量中的最大值,分别生成赋值操作时间最大值向量和赋值操作时间最小值向量

在本实施例中,仅仅以测试用例1和测试用例2为例进行说明。设测试用例1包括2个变量,变量1和变量2,其初始值分别为C1_1、C2_1。其执行过程如图2所示,测试用例1在t0时刻开始执行,在ta1时刻对变量1进行赋值操作,变量1=A1_1,在ta2时刻再次对变量1进行赋值操作,变量1=A1_2,在ta3时刻对变量2进行赋值操作,变量2=A2_1。测试用例2包括2个变量,分别为变量2和变量3,其初始值分别为C2_2、C3_2,并且在测试用例2的执行过程中,在tb1时刻对变量2进行赋值操作,变量2=B1_1,在tb2时刻对变量2进行赋值操作,变量2=B1_2,在tb3时刻对变量3进行赋值操作,变量3=B2_1。通过以上标准化过程,可确定全部测试用例中,不同变量的总数为3,在同一测试用例中对同一变量进行赋值的最大次数为2,最大值向量最小值向量赋值操作时间最大值向量赋值操作时间最小值向量其中,max()为取最大值,min()为取最小值。对于测试用例1,初始值向量为赋值向量为赋值操作时间向量由于测试用例1中不包括变量3,所以初始值向量、赋值向量和赋值操作时间向量中变量3的位置取0。且变量2只进行了一次赋值操作,所以赋值向量T2和赋值操作时间向量T2中变量2的位置取0。同样可生成测试用例2的初始值向量赋值向量为赋值操作时间向量

在本实施例中,如图3所示,根据标准化向量结构构建基于神经网络的测试用例功能分析模型,该测试用例功能分析模型描述为包括输入层、隐含层和输出层的模型;其中,输入层节点与所述标准化向量结构中的各元素固定对应,输出层节点与所述测试功能固定对应。该测试功能为满足被测软件进行测试的全部测试功能,即全部测试用例所覆盖的测试功能的全集。初始值向量、赋值向量和赋值操作时间向量中的元素与测试用例功能分析模型的输入层节点一一对应。输出层节点与测试用例所覆盖的测试功能一一对应。本实施例中,假设全部测试用例所覆盖的测试功能包括功能1、……、功能10,共10个功能,则输出层节点的数量为10个,每个输出层节点1至输出层节点10依次分别对应功能1至功能10。在本实施例中,隐含层节点的数量根据输入层节点数量计算确定,l=log2(N)=log2((2k+1)n),l为隐含层节点数量,N为输入层节点数量,k为全部测试用例中,对同一变量进行赋值的最大次数,n为全部测试用例中不同变量的总数。

在本实施例中,所述测试用例功能分析模型的每个输入层节点与每个隐含层节点之间定义有第一权值ωij,每个隐含层节点均定义有第一阀值aj;每个隐含层节点与每个输出层节点之间定义有第二权值ψjg,每个输出层节点均定义有第二阀值bg;每个输入层节点与每个隐含层节点之间定义有第一传递函数;每个隐含层节点与每个输出层节点之间定义有第二传递函数。其中,i为输入层节点的序号,j为隐含层节点的序号,g为输出层节点的序号。在本实施例中,第一权值ωij和第二权值ψjg的初始值为在预设范围内的随机数。本实施例中该预设范围为-0.05至0.05。

在本实施例中,第一传递函数如式(1)所示:

式(1)中,Hj为隐含层节点j的值,N为输入层节点的个数,ωij为输入层节点i到隐含层节点j的第一权值,xi为输入层节点i的值,aj为隐含层节点j第一阀值,l为隐含层节点的数量。根据第一传递函数,可由输入层节点的值计算得到隐含层节点的值。

在本实施例中,第二传递函数如式(2)所示:

式(2)中,Og为输出层节点g的值,Hj为隐含层节点j的值,f为输出层节点个数,ψjg为隐含层节点j到输出层节点g的第二权值,bg为第二阀值,l为隐含层节点的数量。根据第二传递函数,可由隐含层节点的值计算得到输出层节点的值。

在本实施例中,第一阀值aj和第二阀值bg的初始值均取0.02。

在本实施例中,所述测试用例功能分析模型定义预测误差为输出层节点的输出期望与输出层节点的输出值之差;输出层节点的输出期望为根据所选择的训练样本是否具有该输出层节点对应的测试功能所确定的预设值。

在本实施例中,对于测试功能确定的测试用例,以该测试用例作为该测试用例功能分析模型的输入时,根据该测试用例的测试功能确定输出层节点的输出期望。在本实施例中,测试用例具有某功能时,则与该功能对应的输出层节点的输出期望为1,否则输出期望为0。如对于本实施例中的测试用例1,当选定测试用例1为测试样本时,需要预先分析确定测试用例1所覆盖的测试功能。在本实施例中,假设测试用例1所覆盖的测试功能为功能1。则以测试用例1的标准化测试用例向量为输入时,设定与功能1对应的输出层节点1的输出期望为1,其余各输出层节点的输出期望为0。在本实施例中,预测误差如式(3)所示:

eg=Yg-Og (3)

式(3)中,eg为输出层节点g的预测误差,Yg为输出层节点g的输出期望,Og为输出层节点g的值。

在本实施例中,所述步骤S4的具体步骤为:对于每个训练样本,根据训练样本的测试功能确定所述测试用例功能分析模型的输出层节点的输出期望;对所述训练样本的标准化测试用例向量中各元素的值进行归一化处理后作为测试用例功能分析模型的输入层节点参数,计算输出层节点的输出值;并根据预测误差修正所述测试用例功能分析模型的第一权值ωij、第一阀值aj、第二权值ψjg和第二阀值bg;循环计算直到所述测试用例功能分析模型的预测误差小于预设的误差限值,或者循环计算次数大于预设的循环限值。

在本实施例中,归一化处理如式(4)所示:

xi′=(xi-xmin)/(xmax-xmin) (4)

式(4)中,xi′为归一化后的元素值,xi为需要进行归一化的元素值,xmax为该元素对应的最大值,xmin为该元素对应的最小值。在本实施例中,对于值类型的初始值向量和赋值向量,通过最大值向量和最小值向量计算归一化后的值,对于时间类型的赋值操作时间向量,通过赋值操作时间最大值向量和赋值操作时间最小值向量计算归一化后的值。

在本实施例中,以测试用例1为样本对训练过程进行说明。根据测试用例1的测试功能,定义与该测试功能对应的输出层节点的输出期望为1,其余输出层节点的输出期望为0。对测试用例1的各元素进行归一化处理,并赋值给测试用例功能分析模型中对应的输入层节点,通过输入层节点与隐含层节点之间的第一传递函数计算隐含层节点的值,再通过隐含层节点与输出层节点之间的第二传递函数计算输出层节点的值。再通过式(3)计算各输出层节点的预测误差,如果预测误差小于预设的误差限值,或者当前循环次数已达预设的循环限值,则结果对测试用例1的训练。否则,根据预测误差修正第一权值ωij、第一阀值aj、第二权值ψjg和第二阀值bg,再次计算输出层节点的值。

在本实施例中,第一权值ωij修正公式如式(5)所示,

式(5)中,ωij为输入层节点i到隐含层节点j的第一权值,η为预设的学习速率,Hj为隐含层节点j的值,xi为输入层节点i的值,ψjg为隐含层节点j到输出层节点g的第二权值,f为输出层节点个数,eg为输出层节点g的预测误差。

第二权值ψjg修正公式如式(6)所示,

ψjg=ψjg+ηegHj (6)

式(6)中,ψjg为隐含层节点j到输出层节点g的第二权值,η为预设的学习速率,Hj为隐含层节点j的值,eg为输出层节点g的预测误差。

第一阀值aj修正公式如式(7)所示,

式(7)中,aj为隐含层节点j的第一阀值,η为预设的学习速率,Hj为隐含层节点j的值,ψjg为隐含层节点j到输出层节点g的第二权值,f为输出层节点个数,eg为输出层节点g的预测误差。

第二阀值bg修正公式如式(8)所示,

bg=bg+eg (8)

式(8)中,bg为输出层节点g的第二阀值,eg为输出层节点g的预测误差。

在本实施例中,预设的学习速率η的取值为0.3。

在本实施例中,对全部选定的训练样本训练完成后,即完成对测试用例功能分析模型的训练,通过该测试用例功能分析模型即可分析其余测试用例的测试功能。步骤S5的具体步骤为:对所述非训练样本测试用例的标准化测试用例向量进行归一化处理后作为测试用例功能分析模型的输入层节点参数,计算输出层节点的输出值,当该输出值大于预设的第一功能确认门槛值时,判断该测试用例具有该输出层节点对应的测试功能;当该输出值小于预设的第二功能确认门槛值时,判断该测试用值不具有该输出层节点对应的测试功能。在本实施例中,第一功能确认门槛值为0.85,第二功能确认门槛值为0.25。

本实施例的测试用例聚类分析系统,包括:测试用例标准化模块:用于将测试用例标准化为对变量的赋值操作,确定标准化向量结构,根据标准化向量结构生成标准化测试用例向量;测试用例功能分析模型构建模块:用于根据所述标准化向量结构和需要的测试功能构建基于神经网络的测试用例功能分析模型;模型训练模块:用于从所述测试用例向量中选择训练样本,并分析确定训练样本所覆盖的测试功能;并以所述训练样本作为所述测试用例功能分析模型的输入参数,以所述训练样本所覆盖的测试功能确定测试用例功能分析模型的输出期望,对所述测试用例功能分析模型进行训练;测试用例功能分析模型:以其余非训练样本的测试用例向量为所述测试用例功能分析模型的输入参数,通过测试用例功能分析模型确定测试用例向量的测试功能。

实施例二:

本实施例与实施例一基本相同,不同之处在于测试用例功能分析模型的输入层,如图4所示,即用于构建测试用例功能分析模型的标准化向量结构不仅包括变量的初始值和赋值过程的一组向量的结构,还包括最大值向量和最小值向量。在对测试用例功能分析模型进行训练,以及通过测试用例功能分析模型分析测试用例的功能时,将变量的初始值、赋值向量、赋值操作时间向量、最大值向量和最小值向量归一化,作为输入层节点的值输入测试用例功能分析模型。则在本实施例中,输入层节点的数量为N=(3+2k)n,隐含层节点的数量为l=log2(N)=log2((3+2k)n)。

上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1