CN111949555B - 一种基于多维向量和规则脚本的随机测试方法及装置 - Google Patents

一种基于多维向量和规则脚本的随机测试方法及装置 Download PDF

Info

Publication number
CN111949555B
CN111949555B CN202010990057.6A CN202010990057A CN111949555B CN 111949555 B CN111949555 B CN 111949555B CN 202010990057 A CN202010990057 A CN 202010990057A CN 111949555 B CN111949555 B CN 111949555B
Authority
CN
China
Prior art keywords
software
execution result
state
state variable
sample
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.)
Active
Application number
CN202010990057.6A
Other languages
English (en)
Other versions
CN111949555A (zh
Inventor
李康康
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202010990057.6A priority Critical patent/CN111949555B/zh
Publication of CN111949555A publication Critical patent/CN111949555A/zh
Application granted granted Critical
Publication of CN111949555B publication Critical patent/CN111949555B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test 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),用于当前组样本测试用于当前组测试样本测试成功,以及当前组测试样本测试失败时,判断是否仍有待验证样本。
CN202010990057.6A 2020-09-18 2020-09-18 一种基于多维向量和规则脚本的随机测试方法及装置 Active CN111949555B (zh)

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 CN111949555A (zh) 2020-11-17
CN111949555B true 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)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105868106A (zh) * 2016-03-24 2016-08-17 飞依诺科技(苏州)有限公司 超声设备可靠性的测试方法及测试系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105046279B (zh) * 2015-08-07 2018-05-15 合肥工业大学 一种模拟电路故障模式分类方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105868106A (zh) * 2016-03-24 2016-08-17 飞依诺科技(苏州)有限公司 超声设备可靠性的测试方法及测试系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IP最小参数空间提取模型;徐春霞等;《现代电子技术》;20080601(第11期);全文 *

Also Published As

Publication number Publication date
CN111949555A (zh) 2020-11-17

Similar Documents

Publication Publication Date Title
CN107341098B (zh) 软件性能测试方法、平台、设备及存储介质
CN109739755B (zh) 一种基于程序追踪和混合执行的模糊测试系统
US8117598B2 (en) Method and apparatus to automatically identify specific code changes to probabilistically exclude from regression
US20090089755A1 (en) Method and Apparatus to Increase Efficiency of Automatic Regression In "Two Dimensions"
US20220182406A1 (en) Analysis apparatus, analysis system, analysis method, and non-transitory computer readable medium storing program
US10379990B2 (en) Multi-dimensional selective tracing
KR20190041912A (ko) 바이너리 기반 보안 취약점 탐색 시스템, 그 방법 및 프로그램
CN103455417B (zh) 一种基于马尔可夫模型的软件错误定位系统及错误定位方法
CN111949555B (zh) 一种基于多维向量和规则脚本的随机测试方法及装置
CN109933515B (zh) 一种回归测试用例集的优化方法和自动优化装置
Jia et al. Machine deserves better logging: A log enhancement approach for automatic fault diagnosis
CN116405412B (zh) 基于混沌工程故障模拟服务端集群有效性验证方法和系统
CN111382071A (zh) 一种用户行为数据测试方法及系统
CN114780967B (zh) 基于大数据漏洞挖掘的挖掘评估方法及ai漏洞挖掘系统
CN110795330A (zh) 一种Monkey压力测试的方法和装置
CN115658470A (zh) 面向分布式系统的失效恢复机制自动化测试方法及装置
Zhang et al. Autolog: facing log redundancy and insufficiency
CN109032932B (zh) 一种支持约束的组合测试故障定位方法
CN113032260A (zh) 基于组件化分布式系统的故障注入仿真测试方法及系统
CN110442508B (zh) 测试任务处理方法、装置、设备和介质
CN113704078A (zh) 构建调用链转换图及引导生成x.509证书变种方法
CN114968750A (zh) 基于人工智能的测试用例生成方法、装置、设备和介质
US10437710B2 (en) Code coverage testing utilizing test-to-file maps
CN115130111B (zh) 基于ai分析的系统运行漏洞修复方法及大数据服务系统
Sasmito White Box Testing with Basis Path Technique in the Demography Administration Website

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