CN111949555A - 一种基于多维向量和规则脚本的随机测试方法及装置 - Google Patents
一种基于多维向量和规则脚本的随机测试方法及装置 Download PDFInfo
- Publication number
- CN111949555A CN111949555A CN202010990057.6A CN202010990057A CN111949555A CN 111949555 A CN111949555 A CN 111949555A CN 202010990057 A CN202010990057 A CN 202010990057A CN 111949555 A CN111949555 A CN 111949555A
- Authority
- CN
- China
- Prior art keywords
- software
- state
- execution result
- state variable
- function
- 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.)
- Granted
Links
- 239000013598 vector Substances 0.000 title claims abstract description 49
- 238000013515 script Methods 0.000 title claims abstract description 22
- 238000010998 test method Methods 0.000 title claims abstract description 8
- 238000012360 testing method Methods 0.000 claims abstract description 75
- 238000000034 method Methods 0.000 abstract description 8
- 238000006467 substitution reaction Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
-
- 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
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- 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
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
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)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种基于多维向量和规则脚本的随机测试方法及装置,所述方法包括如下步骤:S1.基于软件的操作种类及软件的最大操作步数生成多维向量,将多维向量划分为若干子空间,在每个子空间内随机选取样本,生成随机样本;S2.设定软件的状态变量,状态函数以及结果函数;S3.从随机样本中选择一组待验证样本,并将软件的状态变量恢复为初始值,通过结果函数预测期望的软件执行结果;S4.依次执行待验证样本中的操作,获取实际软件执行结果,将实际软件执行结果与预测期望的软件执行结果比对,在比对一致时,通过状态函数更新状态变量,以及在比对不一致,标记测试样本。
Description
技术领域
本发明属于软件测试技术领域,具体涉及一种基于多维向量和规则脚本的随机测试方法及装置。
背景技术
软件的各步操作之间往往相互依赖,操作的执行结果受前一步操作的影响,如单独执行操作A结果正常,但先执行操作B和C后再次执行操作A,则可能出现异常结果。或者多次重复执行操作A后出现异常结果。大型软件往往操作步骤较多,各个操作之间存在直接或间接的影响,操作间可能的排列组合数量繁多,人工测试不仅工作量巨大,且所选的测试样本往往难以覆盖各种可能的情况,无法对软件进行全面系统的测试,导致测试通过后仍存在遗漏问题。
现有的随机测试工具,往往仅是简单的在软件页面上随机点击,无法有针对性的选择操作,无法覆盖多操作混合重复执行的场景,且经过一系列复杂操作后出现的bug,也不能很好的对操作追根溯源,难以有效解决上述问题。
此为现有技术的不足,因此,针对现有技术中的上述缺陷,提供一种基于多维向量和规则脚本的随机测试方法及装置,是非常有必要的。
发明内容
针对现有技术的上述大型软件操作步骤多,操作步骤间相互影响,且排列组合数量繁多,人工测试不仅工作量巨大,现有的随机测试工具无法有针对性的选择操作,无法覆盖多操作混合重复执行的场景的缺陷,本发明提供一种基于多维向量和规则脚本的随机测试方法及装置,以解决上述技术问题。
第一方面,本发明提供一种基于多维向量和规则脚本的随机测试方法,包括如下步骤:
S 1.基于软件的操作种类及软件的最大操作步数生成多维向量,将多维向量划分为若干子空间,在每个子空间内随机选取样本,生成随机样本;
S2.设定软件的状态变量为对应软件操作引起数量变化的变量,设定状态函数为根据软件操作之前的状态变量的值、操作种类及执行结果计算操作后软件的状态变量的值,设定结果函数为根据操作之前的状态变量的值及操作种类预测期望的执行结果;
S3.从随机样本中选择一组待验证样本,并将软件的状态变量恢复为初始值,通过结果函数预测期望的软件执行结果;
S4.依次执行待验证样本中的操作,获取实际软件执行结果,将实际软件执行结果与预测期望的软件执行结果比对,在比对一致时,通过状态函数更新状态变量,以及在比对不一致,标记测试样本。
进一步地,步骤S1具体步骤如下:
S 11.获取软件的操作种类M,并设置软件的最大操作步数i;
S 12.设定每种测试样本为一个N维向量(x1,x2,x3,…,xN),其中,x1代表第一步操作,x2代表第二步操作,x3代表第三步操作,…,xN代表第N步操作,且xi的取值范围为大于等于0,小于等于M;
S 13.将测试样本在N维空间的取值范围内划分为L组子空间,并在每个子空间内随机选取等量的样本,生成随机样本。
进一步地,步骤S2具体步骤如下:
S21.设定软件的状态变量为描述软件当前状态的参数(si,1,si,2,…si,K),其中K为状态变量的个数,下标为i的状态变量反映第i步操作后的软件状态;
S22.设定状态函数是根据第i步状态变量的值和第i+1步操作及其执行结果,计算第i+1步状态变量的值:
(si+1,1,si+1,2,…si+1,K)=f状态(si,1,si,2,…si,K,xi+1,Ri+1)
式中f状态表示状态函数,(si,1,si,2,…si,K)表示执行第i步操作后的状态变量,xi+1表示第i+1步操作,Ri+1表示第i+1步操作的实际软件执行结果;
S23.设定结果函数根据第i步状态变量的值和第i+1步操作,计算第i+1步操作执行后,期望的软件执行结果:
Ri+1=f结果(si,1,si,2,…si,K,xi+1)
式中f结果表示结果函数,(si,1,si,2,…si,K)表示执行第i步操作后的状态变量,xi+1表示第i+1步操作,Ri+1表示第i+1步操作后期望的软件执行结果。
进一步地,步骤S3具体步骤如下:
S31.从随机样本中选择一组待验证样本(x1,x2,…,xN);
S32.将软件的状态变量(si,1,si,2,…si,K)中i设置为O,使得软件的状态变量恢复为初始值(s0,1,s0,2,…s0,K);
S33.通过结果函数预测期望的软件执行结果Ri+1=f结果(si,1,si,2,…si,K,xi+1)。
进一步地,步骤S4具体步骤如下:
S41.执行选择的待验证样本中xi,得到实际软件执行结果,将实际软件执行结果与Ri+1比对,判断是否相同;
若是,进入步骤S42;
若否,判定测试失败,并标记该组样本,进入步骤S46;
S42.判断i是否小于N;
若是,进入步骤S43;
若否,进入步骤S45;
S43.通过状态函数更新软件的状态变量,(si+1,1,si+1,2,…si+1,K)=f状态(si,1,si,2,…si,K,xi+1,Ri+1);
S44.令i=i+1,返回步骤S33;
S45.判定测试成功;
S46.判断是否仍有待验证样本;
若是,返回步骤S31;
若否,结束.
第二方面,本发明提供一种基于多维向量和规则脚本的随机测试装置,包括:
随机样本生成模块,用于基于软件的操作种类及软件的最大操作步数生成多维向量,将多维向量划分为若干子空间,在每个子空间内随机选取样本,生成随机样本;
变量及函数设定模块,用于设定软件的状态变量为对应软件操作引起数量变化的变量,设定状态函数为根据软件操作之前的状态变量的值、操作种类及执行结果计算操作后软件的状态变量的值,设定结果函数为根据操作之前的状态变量的值及操作种类预测期望的执行结果;
软件执行结果预测模块,用于从随机样本中选择一组待验证样本,并将软件的状态变量恢复为初始值,通过结果函数预测期望的软件执行结果;
实际软件执行结果比对模块,用于依次执行待验证样本中的操作,获取实际软件执行结果,将实际软件执行结果与预测期望的软件执行结果比对,在比对一致时,通过状态函数更新状态变量,以及在比对不一致,标记测试样本。
进一步地,随机样本生成模块包括:
软件操作种类及步数设置单元,用于获取软件的操作种类M,并设置软件的最大操作步数i;
N维向量生成单元,用于设定每种测试样本为一个N维向量(x1,x2,x3,…,xN),其中,x1代表第一步操作,x2代表第二步操作,x3代表第三步操作,…,xN代表第N步操作,且xi的取值范围为大于等于0,小于等于M;
随机样本生成单元,用于将测试样本在N维空间的取值范围内划分为L组子空间,并在每个子空间内随机选取等量的样本,生成随机样本。
进一步地,变量及函数设定模块包括:
软件的状态变量设定单元,用于设定软件的状态变量为描述软件当前状态的参数(si,1,si,2,…si,K),其中K为状态变量的个数,下标为i的状态变量反映第i步操作后的软件状态;
状态函数设定单元,用于设定状态函数是根据第i步状态变量的值和第i+1步操作及其执行结果,计算第i+1步状态变量的值:
(si+1,1,si+1,2,…si+1,K)=f状态(si,1,si,2,…si,K,xi+1,Ri+1)
式中f状态表示状态函数,(si,1,si,2,…si,K)表示执行第i步操作后的状态变量,xi+1表示第i+1步操作,Ri+1表示第i+1步操作的实际软件执行结果;
结果函数设定单元,用于设定结果函数根据第i步状态变量的值和第i+1步操作,计算第i+1步操作执行后,期望的软件执行结果:
Ri+1=f结果(si,1,si,2,…si,K,xi+1)
式中f结果表示结果函数,(si,1,si,2,…si,K)表示执行第i步操作后的状态变量,xi+1表示第i+1步操作,Ri+1表示第i+1步操作后期望的软件执行结果。
进一步地,软件执行结果预测模块包括:
待验证样本选择单元,用于从随机样本中选择一组待验证样本(x1,x2,…,xN);
状态变量初始化单元,用于将软件的状态变量(si,1,si,2,…si,K)中i设置为O,使得软件的状态变量恢复为初始值(s0,1,s0,2,…s0,K);
执行结果预测单元,用于通过结果函数预测期望的软件执行结果Ri+1=f结果(si,1,si,2,…si,K,xi+1)。
进一步地,实际软件执行结果比对模块包括:
执行结果比对单元,用于执行选择的待验证样本中xi,得到实际软件执行结果,将实际软件执行结果与Ri+1比对,判断是否相同;
样本标记单元,用于实际软件执行结果与Ri+1比对不一致时,判定测试失败,并标记该组样本;
当前测试样本执行判断单元,用于实际软件执行结果与Ri+1比对一致时,判断i是否小于N;
状态变量更新单元,用于当前组测试样本未执行完毕时,通过状态函数更新软件的状态变量,(si+1,1,si+1,2,…si+1,K)=f状态(si,1,si,2,…si,K,xi+1,Ri+1);
当前样本下一步操作定位单元,用于令i=i+1;
测试成功判定单元,用于当前组测试样本执行完毕时,判定测试成功;
待验证样本判断单元,用于当前组样本测试用于当前组测试样本测试成功,以及当前组测试样本测试失败时,判断是否仍有待验证样本。
本发明的有益效果在于,
本发明提供的基于多维向量和规则脚本的随机测试方法及装置,将软件每种操作种类的操作转化为多维向量,并通过在多维空间内随机以及均匀的取点,保证测试样本的代表性,可覆盖重复混合步骤执行场景;通过结果函数和状态函数结合对每组测试样本的执行结果进行检测,自动化测试手段释放人力,提升测试效率,同时,根据测试结果,可对测试失败的样本进行标记,可以有效对操作步骤跟踪,简化重现步骤。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的方法流程示意图一;
图2是本发明的方法流程示意图二;
图3是本发明的系统示意图;
图中,1-随机样本生成模块;1.1-软件操作种类及步数设置单元;1.2-N维向量生成单元;1.3-随机样本生成单元;2-变量及函数设定模块;2.1-软件的状态变量设定单元;2.2-状态函数设定单元;2.3-结果函数设定单元;3-软件执行结果预测模块;3.1-待验证样本选择单元;3.2-状态变量初始化单元;3.3-执行结果预测单元;4-实际软件执行结果比对模块;4.1-执行结果比对单元;4.2-样本标记单元;4.3-当前测试样本执行判断单元;4.4-状态变量更新单元;4.5-当前样本下一步操作定位单元;4.6-测试成功判定单元;4.7-待验证样本判断单元。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
实施例1:
如图1所示,本发明提供一种基于多维向量和规则脚本的随机测试方法,包括如下步骤:
S 1.基于软件的操作种类及软件的最大操作步数生成多维向量,将多维向量划分为若干子空间,在每个子空间内随机选取样本,生成随机样本;
S2.设定软件的状态变量为对应软件操作引起数量变化的变量,设定状态函数为根据软件操作之前的状态变量的值、操作种类及执行结果计算操作后软件的状态变量的值,设定结果函数为根据操作之前的状态变量的值及操作种类预测期望的执行结果;
S3.从随机样本中选择一组待验证样本,并将软件的状态变量恢复为初始值,通过结果函数预测期望的软件执行结果;
S4.依次执行待验证样本中的操作,获取实际软件执行结果,将实际软件执行结果与预测期望的软件执行结果比对,在比对一致时,通过状态函数更新状态变量,以及在比对不一致,标记测试样本。
实施例2:
如图2所示,本发明提供一种基于多维向量和规则脚本的随机测试方法,包括如下步骤:
S 1.基于软件的操作种类及软件的最大操作步数生成多维向量,将多维向量划分为若干子空间,在每个子空间内随机选取样本,生成随机样本;具体步骤如下:
S 11.获取软件的操作种类M,并设置软件的最大操作步数i;以云主机为例,软件的操作中了包括云主机的新增、修改、删除以及查询4种可能操作;
S 12.设定每种测试样本为一个N维向量(x1,x2,x3,…,xN),其中,x1代表第一步操作,x2代表第二步操作,x3代表第三步操作,…,xN代表第N步操作,且xi的取值范围为大于等于0,小于等于M;
S 13.将测试样本在N维空间的取值范围内划分为L组子空间,并在每个子空间内随机选取等量的样本,生成随机样本;
S2.设定软件的状态变量为对应软件操作引起数量变化的变量,设定状态函数为根据软件操作之前的状态变量的值、操作种类及执行结果计算操作后软件的状态变量的值,设定结果函数为根据操作之前的状态变量的值及操作种类预测期望的执行结果;具体步骤如下:
S21.设定软件的状态变量为描述软件当前状态的参数(si,1,si,2,…si,K),其中K为状态变量的个数,下标为i的状态变量反映第i步操作后的软件状态;以云平台为例,云平台执行“虚拟机增删”和“网络增删”的操作,则虚拟机数量和网络数量则是软件的状态变量,S11为执行第一步后虚拟机数量,S12为执行第一步后网络数量;
S22.设定状态函数是根据第i步状态变量的值和第i+1步操作及其执行结果,计算第i+1步状态变量的值:
(si+1,1,si+1,2,…si+1,K)=f状态(si,1,si,2,…si,K,xi+1,Ri+1)
式中f状态表示状态函数,(si,1,si,2,…si,K)表示执行第i步操作后的状态变量,xi+1表示第i+1步操作,Ri+1表示第i+1步操作的实际软件执行结果;以云平台为例,执行“创建虚拟机”操作,若执行结果为“成功”,则软件状态变量“虚拟机数量”的值增加1,若执行结果为“失败”,则软件的状态变量“虚拟机数量”的值不变;
S23.设定结果函数根据第i步状态变量的值和第i+1步操作,计算第i+1步操作执行后,期望的软件执行结果:
Ri+1=f结果(si,1,si,2,…si,K,xi+1)
式中f结果表示结果函数,(si,1,si,2,…si,K)表示执行第i步操作后的状态变量,xi+1表示第i+1步操作,Ri+1表示第i+1步操作后期望的软件执行结果;以虚拟机管理软件为例,当软件状态变量“虚拟机数量”的值大于0时,执行“删除虚拟机”操作,则期望的软件执行结果为“成功”,当软件的状态变量“虚拟机数量”的值等于0时,执行“删除虚拟机”操作,则期望的软件执行结果为“失败”;
S3.从随机样本中选择一组待验证样本,并将软件的状态变量恢复为初始值,通过结果函数预测期望的软件执行结果;具体步骤如下:
S31.从随机样本中选择一组待验证样本(x1,x2,…,xN);
S32.将软件的状态变量(si,1,si,2,…si,K)中i设置为O,使得软件的状态变量恢复为初始值(s0,1,s0,2,…s0,K);
S33.通过结果函数预测期望的软件执行结果Ri+1=f结果(si,1,si,2,…si,K,xi+1);
S4.依次执行待验证样本中的操作,获取实际软件执行结果,将实际软件执行结果与预测期望的软件执行结果比对,在比对一致时,通过状态函数更新状态变量,以及在比对不一致,标记测试样本;具体步骤如下:
S41.执行选择的待验证样本中xi,得到实际软件执行结果,将实际软件执行结果与Ri+1比对,判断是否相同;
若是,进入步骤S42;
若否,判定测试失败,并标记该组样本,进入步骤S46;
S42.判断i是否小于N;
若是,进入步骤S43;
若否,进入步骤S45;
S43.通过状态函数更新软件的状态变量,(si+1,1,si+1,2,…si+1,K)=f状态(si,1,si,2,…si,K,xi+1,Ri+1);
S44.令i=i+1,返回步骤S33;
S45.判定测试成功;
S46.判断是否仍有待验证样本;
若是,返回步骤S31;
若否,结束。
根据测试结果,不但可对测试失败的样本进行标记,可以有效对操作步骤跟踪,简化重现步骤,还可重点模块、缺陷密集模块、缺陷重现率低的模块单独生成测试样本,重点覆盖。
实施例3:
如图3所示,本发明提供一种基于多维向量和规则脚本的随机测试装置,包括:
随机样本生成模块1,用于基于软件的操作种类及软件的最大操作步数生成多维向量,将多维向量划分为若干子空间,在每个子空间内随机选取样本,生成随机样本;随机样本生成模块1包括:
软件操作种类及步数设置单元1.1,用于获取软件的操作种类M,并设置软件的最大操作步数i;
N维向量生成单元1.2,用于设定每种测试样本为一个N维向量(x1,x2,x3,…,xN),其中,x1代表第一步操作,x2代表第二步操作,x3代表第三步操作,…,xN代表第N步操作,且xi的取值范围为大于等于0,小于等于M;
随机样本生成单元1.3,用于将测试样本在N维空间的取值范围内划分为L组子空间,并在每个子空间内随机选取等量的样本,生成随机样本;
变量及函数设定模块2,用于设定软件的状态变量为对应软件操作引起数量变化的变量,设定状态函数为根据软件操作之前的状态变量的值、操作种类及执行结果计算操作后软件的状态变量的值,设定结果函数为根据操作之前的状态变量的值及操作种类预测期望的执行结果;变量及函数设定模块2包括:
软件的状态变量设定单元2.1,用于设定软件的状态变量为描述软件当前状态的参数(si,1,si,2,…si,K),其中K为状态变量的个数,下标为i的状态变量反映第i步操作后的软件状态;
状态函数设定单元2.2,用于设定状态函数是根据第i步状态变量的值和第i+1步操作及其执行结果,计算第i+1步状态变量的值:
(si+1,1,si+1,2,…si+1,K)=f状态(si,1,si,2,…si,K,xi+1,Ri+1)
式中f状态表示状态函数,(si,1,si,2,…si,K)表示执行第i步操作后的状态变量,xi+1表示第i+1步操作,Ri+1表示第i+1步操作的实际软件执行结果;
结果函数设定单元2.3,用于设定结果函数根据第i步状态变量的值和第i+1步操作,计算第i+1步操作执行后,期望的软件执行结果:
Ri+1=f结果(si,1,si,2,…si,K,xi+1)
式中f结果表示结果函数,(si,1,si,2,…si,K)表示执行第i步操作后的状态变量,xi+1表示第i+1步操作,Ri+1表示第i+1步操作后期望的软件执行结果;
软件执行结果预测模块3,用于从随机样本中选择一组待验证样本,并将软件的状态变量恢复为初始值,通过结果函数预测期望的软件执行结果;软件执行结果预测模块3包括:
待验证样本选择单元3.1,用于从随机样本中选择一组待验证样本(x1,x2,…,xN);
状态变量初始化单元3.2,用于将软件的状态变量(si,1,si,2,…si,K)中i设置为O,使得软件的状态变量恢复为初始值(s0,1,s0,2,…s0,K);
执行结果预测单元3.3,用于通过结果函数预测期望的软件执行结果Ri+1=f结果(si,1,si,2,…si,K,xi+1);
实际软件执行结果比对模块4,用于依次执行待验证样本中的操作,获取实际软件执行结果,将实际软件执行结果与预测期望的软件执行结果比对,在比对一致时,通过状态函数更新状态变量,以及在比对不一致,标记测试样本;实际软件执行结果比对模块4包括:
执行结果比对单元4.1,用于执行选择的待验证样本中xi,得到实际软件执行结果,将实际软件执行结果与Ri+1比对,判断是否相同;
样本标记单元4.2,用于实际软件执行结果与Ri+1比对不一致时,判定测试失败,并标记该组样本;
当前测试样本执行判断单元4.3,用于实际软件执行结果与Ri+1比对一致时,判断i是否小于N;
状态变量更新单元4.4,用于当前组测试样本未执行完毕时,通过状态函数更新软件的状态变量,(si+1,1,si+1,2,…si+1,K)=f状态(si,1,si,2,…si,K,xi+1,Ri+1);
当前样本下一步操作定位单元4.5,用于令i=i+1;
测试成功判定单元4.6,用于当前组测试样本执行完毕时,判定测试成功;
待验证样本判断单元4.7,用于当前组样本测试用于当前组测试样本测试成功,以及当前组测试样本测试失败时,判断是否仍有待验证样本。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种基于多维向量和规则脚本的随机测试方法,其特征在于,包括如下步骤:
S1.基于软件的操作种类及软件的最大操作步数生成多维向量,将多维向量划分为若干子空间,在每个子空间内随机选取样本,生成随机样本;
S2.设定软件的状态变量为对应软件操作引起数量变化的变量,设定状态函数为根据软件操作之前的状态变量的值、操作种类及执行结果计算操作后软件的状态变量的值,设定结果函数为根据操作之前的状态变量的值及操作种类预测期望的执行结果;
S3.从随机样本中选择一组待验证样本,并将软件的状态变量恢复为初始值,通过结果函数预测期望的软件执行结果;
S4.依次执行待验证样本中的操作,获取实际软件执行结果,将实际软件执行结果与预测期望的软件执行结果比对,在比对一致时,通过状态函数更新状态变量,以及在比对不一致,标记测试样本。
2.如权利要求1所述的基于多维向量和规则脚本的随机测试方法,其特征在于,步骤S1具体步骤如下:
S11.获取软件的操作种类M,并设置软件的最大操作步数i;
S12.设定每种测试样本为一个N维向量(x1,x2,x3,…,xN),其中,x1代表第一步操作,x2代表第二步操作,x3代表第三步操作,…,xN代表第N步操作,且xi的取值范围为大于等于0,小于等于M;
S13.将测试样本在N维空间的取值范围内划分为L组子空间,并在每个子空间内随机选取等量的样本,生成随机样本。
3.如权利要求2所述的基于多维向量和规则脚本的随机测试方法,其特征在于,步骤S2具体步骤如下:
S21.设定软件的状态变量为描述软件当前状态的参数(si,1,si,2,…si,K),其中K为状态变量的个数,下标为i的状态变量反映第i步操作后的软件状态;
S22.设定状态函数是根据第i步状态变量的值和第i+1步操作及其执行结果,计算第i+1步状态变量的值:
(si+1,1,si+1,2,…si+1,K)=f状态(si,1,si,2,…si,K,xi+1,Ri+1)
式中f状态表示状态函数,(si,1,si,2,…si,K)表示执行第i步操作后的状态变量,xi+1表示第i+1步操作,Ri+1表示第i+1步操作的实际软件执行结果;
S23.设定结果函数根据第i步状态变量的值和第i+1步操作,计算第i+1步操作执行后,期望的软件执行结果:
Ri+1=f结果(si,1,si,2,…si,K,xi+1)
式中f结果表示结果函数,(si,1,si,2,…si,K)表示执行第i步操作后的状态变量,xi+1表示第i+1步操作,Ri+1表示第i+1步操作后期望的软件执行结果。
4.如权利要求3所述的基于多维向量和规则脚本的随机测试方法,其特征在于,步骤S3具体步骤如下:
S31.从随机样本中选择一组待验证样本(x1,x2,…,xN);
S32.将软件的状态变量(si,1,si,2,…si,K)中i设置为O,使得软件的状态变量恢复为初始值(s0,1,s0,2,…s0,K);
S33.通过结果函数预测期望的软件执行结果Ri+1=f结果(si,1,si,2,…si,K,xi+1)。
5.如权利要求1所述的基于多维向量和规则脚本的随机测试方法,其特征在于,步骤S4具体步骤如下:
S41.执行选择的待验证样本中xi,得到实际软件执行结果,将实际软件执行结果与Ri+1比对,判断是否相同;
若是,进入步骤S42;
若否,判定测试失败,并标记该组样本,进入步骤S46;
S42.判断i是否小于N;
若是,进入步骤S43;
若否,进入步骤S45;
S43.通过状态函数更新软件的状态变量,(si+1,1,si+1,2,…si+1,K)=f状态(si,1,si,2,…si,K,xi+1,Ri+1);
S44.令i=i+1,返回步骤S33;
S45.判定测试成功;
S46.判断是否仍有待验证样本;
若是,返回步骤S31;
若否,结束。
6.一种基于多维向量和规则脚本的随机测试装置,其特征在于,包括:
随机样本生成模块(1),用于基于软件的操作种类及软件的最大操作步数生成多维向量,将多维向量划分为若干子空间,在每个子空间内随机选取样本,生成随机样本;
变量及函数设定模块(2),用于设定软件的状态变量为对应软件操作引起数量变化的变量,设定状态函数为根据软件操作之前的状态变量的值、操作种类及执行结果计算操作后软件的状态变量的值,设定结果函数为根据操作之前的状态变量的值及操作种类预测期望的执行结果;
软件执行结果预测模块(3),用于从随机样本中选择一组待验证样本,并将软件的状态变量恢复为初始值,通过结果函数预测期望的软件执行结果;
实际软件执行结果比对模块(4),用于依次执行待验证样本中的操作,获取实际软件执行结果,将实际软件执行结果与预测期望的软件执行结果比对,在比对一致时,通过状态函数更新状态变量,以及在比对不一致,标记测试样本。
7.如权利要求6所述的基于多维向量和规则脚本的随机测试装置,其特征在于,随机样本生成模块(1)包括:
软件操作种类及步数设置单元(1.1),用于获取软件的操作种类M,并设置软件的最大操作步数i;
N维向量生成单元(1.2),用于设定每种测试样本为一个N维向量(x1,x2,x3,…,xN),其中,x1代表第一步操作,x2代表第二步操作,x3代表第三步操作,…,xN代表第N步操作,且xi的取值范围为大于等于0,小于等于M;
随机样本生成单元(1.3),用于将测试样本在N维空间的取值范围内划分为L组子空间,并在每个子空间内随机选取等量的样本,生成随机样本。
8.如权利要求7所述的基于多维向量和规则脚本的随机测试装置,其特征在于,变量及函数设定模块(2)包括:
软件的状态变量设定单元(2.1),用于设定软件的状态变量为描述软件当前状态的参数(si,1,si,2,…si,K),其中K为状态变量的个数,下标为i的状态变量反映第i步操作后的软件状态;
状态函数设定单元(2.2),用于设定状态函数是根据第i步状态变量的值和第i+1步操作及其执行结果,计算第i+1步状态变量的值:
(si+1,1,si+1,2,…si+1,K)=f状态(si,1,si,2,…si,K,xi+1,Ri+1)
式中f状态表示状态函数,(si,1,si,2,…si,K)表示执行第i步操作后的状态变量,xi+1表示第i+1步操作,Ri+1表示第i+1步操作的实际软件执行结果;
结果函数设定单元(2.3),用于设定结果函数根据第i步状态变量的值和第i+1步操作,计算第i+1步操作执行后,期望的软件执行结果:
Ri+1=f结果(si,1,si,2,…si,K,xi+1)
式中f结果表示结果函数,(si,1,si,2,…si,K)表示执行第i步操作后的状态变量,xi+1表示第i+1步操作,Ri+1表示第i+1步操作后期望的软件执行结果。
9.如权利要求8所述的基于多维向量和规则脚本的随机测试装置,其特征在于,软件执行结果预测模块(3)包括:
待验证样本选择单元(3.1),用于从随机样本中选择一组待验证样本(x1,x2,…,xN);
状态变量初始化单元(3.2),用于将软件的状态变量(si,1,si,2,…si,K)中i设置为O,使得软件的状态变量恢复为初始值(s0,1,s0,2,…s0,K);
执行结果预测单元(3.3),用于通过结果函数预测期望的软件执行结果Ri+1=f结果(si,1,si,2,…si,K,xi+1)。
10.如权利要求9所述的基于多维向量和规则脚本的随机测试装置,其特征在于,实际软件执行结果比对模块(4)包括:
执行结果比对单元(4.1),用于执行选择的待验证样本中xi,得到实际软件执行结果,将实际软件执行结果与Ri+1比对,判断是否相同;
样本标记单元(4.2),用于实际软件执行结果与Ri+1比对不一致时,判定测试失败,并标记该组样本;
当前测试样本执行判断单元(4.3),用于实际软件执行结果与Ri+1比对一致时,判断i是否小于N;
状态变量更新单元(4.4),用于当前组测试样本未执行完毕时,通过状态函数更新软件的状态变量,(si+1,1,si+1,2,…si+1,K)=f状态(si,1,si,2,…si,K,xi+1,Ri+1);
当前样本下一步操作定位单元(4.5),用于令i=i+1;
测试成功判定单元(4.6),用于当前组测试样本执行完毕时,判定测试成功;
待验证样本判断单元(4.7),用于当前组样本测试用于当前组测试样本测试成功,以及当前组测试样本测试失败时,判断是否仍有待验证样本。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010990057.6A CN111949555B (zh) | 2020-09-18 | 2020-09-18 | 一种基于多维向量和规则脚本的随机测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010990057.6A CN111949555B (zh) | 2020-09-18 | 2020-09-18 | 一种基于多维向量和规则脚本的随机测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111949555A true CN111949555A (zh) | 2020-11-17 |
CN111949555B CN111949555B (zh) | 2022-07-19 |
Family
ID=73356231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010990057.6A Active CN111949555B (zh) | 2020-09-18 | 2020-09-18 | 一种基于多维向量和规则脚本的随机测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111949555B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230367699A1 (en) * | 2022-05-13 | 2023-11-16 | Microsoft Technology Licensing, Llc | Automated software testing |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105868106A (zh) * | 2016-03-24 | 2016-08-17 | 飞依诺科技(苏州)有限公司 | 超声设备可靠性的测试方法及测试系统 |
US20180039865A1 (en) * | 2015-08-07 | 2018-02-08 | Hefei University Of Technology | Analog circuit fault mode classification method |
-
2020
- 2020-09-18 CN CN202010990057.6A patent/CN111949555B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180039865A1 (en) * | 2015-08-07 | 2018-02-08 | Hefei University Of Technology | Analog circuit fault mode classification method |
CN105868106A (zh) * | 2016-03-24 | 2016-08-17 | 飞依诺科技(苏州)有限公司 | 超声设备可靠性的测试方法及测试系统 |
Non-Patent Citations (1)
Title |
---|
徐春霞等: "IP最小参数空间提取模型", 《现代电子技术》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230367699A1 (en) * | 2022-05-13 | 2023-11-16 | Microsoft Technology Licensing, Llc | Automated software testing |
US12066920B2 (en) | 2022-05-13 | 2024-08-20 | Microsoft Technology Licensing, Llc | Automated software testing with reinforcement learning |
Also Published As
Publication number | Publication date |
---|---|
CN111949555B (zh) | 2022-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101981028B1 (ko) | 바이너리 기반 보안 취약점 탐색 시스템, 그 방법 및 프로그램 | |
US10379990B2 (en) | Multi-dimensional selective tracing | |
CN106874763B (zh) | 模拟用户行为的安卓软件恶意行为触发系统及方法 | |
CN118093434B (zh) | 一种智能化信息系统性能评估与测试方法及系统 | |
CN109933515B (zh) | 一种回归测试用例集的优化方法和自动优化装置 | |
CN116594801A (zh) | 一种大数据云计算的故障分析系统 | |
CN105204986A (zh) | 产品的自动化测试方法、服务器及移动设备 | |
CN111859047A (zh) | 一种故障解决方法及装置 | |
CN102750223A (zh) | 一种基于面向对象程序切片谱的错误定位方法 | |
CN111949555B (zh) | 一种基于多维向量和规则脚本的随机测试方法及装置 | |
CN116886329A (zh) | 一种面向工控系统安全的量化指标优化方法 | |
CN109558328A (zh) | 一种代码覆盖率的测试方法、系统、装置及可读存储介质 | |
Jia et al. | Machine deserves better logging: a log enhancement approach for automatic fault diagnosis | |
CN114417348A (zh) | 多目标导向模糊测试方法及系统 | |
Wetzig et al. | Unsupervised anomaly alerting for iot-gateway monitoring using adaptive thresholds and half-space trees | |
CN111651346B (zh) | 前端组件的测试方法、装置、存储介质及计算机设备 | |
CN117215959A (zh) | 软件测试方法、装置、设备及存储介质 | |
CN108768748A (zh) | 一种用于电力通信服务的故障诊断方法、装置及存储介质 | |
CN116228045B (zh) | 基于性能退化的产品可靠性薄弱环节评估方法和装置 | |
CN117714351A (zh) | 一种网络协议模糊测试方法、系统、设备及介质 | |
CN114968750A (zh) | 基于人工智能的测试用例生成方法、装置、设备和介质 | |
CN114780967B (zh) | 基于大数据漏洞挖掘的挖掘评估方法及ai漏洞挖掘系统 | |
CN110795330A (zh) | 一种Monkey压力测试的方法和装置 | |
Gutiérrez-Madroñal et al. | Combining Evolutionary Mutation Testing with Random Selection | |
Rhee et al. | Software system performance debugging with kernel events feature guidance |
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 |