CN113238954B - 一种软件测试用例的递归生成方法 - Google Patents
一种软件测试用例的递归生成方法 Download PDFInfo
- Publication number
- CN113238954B CN113238954B CN202110576410.0A CN202110576410A CN113238954B CN 113238954 B CN113238954 B CN 113238954B CN 202110576410 A CN202110576410 A CN 202110576410A CN 113238954 B CN113238954 B CN 113238954B
- Authority
- CN
- China
- Prior art keywords
- coverage
- array
- row
- software
- matrix
- 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
Links
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/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/3676—Test management for coverage analysis
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
本发明公开了一种软件测试用例的递归生成方法,涉及软件测试技术领域;首先获取待测软件环境参数及各类软件的可选配置,将测试用例转化为覆盖阵列,用小阶数结构递归生成大阶数的覆盖阵列,将生成的覆盖阵列转化为实际的软件测试用例方案,即用递归方法来生成覆盖强度为2的测试用例集。本发明方法不直接构造大阶数的覆盖阵列,而在已有的小阶数覆盖阵列的基础上,递归生成大阶数的覆盖阵列,同时可以继承已有测试,提高测试效率,减少资源浪费。
Description
技术领域
本发明属于软件测试技术领域,尤其涉及一种软件测试用例的递归生成方法。
背景技术
随着计算机软硬件系统功能日益强大,为了能够安全、高质量地配置软硬件系统,满足众多软件的同时运行,软件测试成为保证这些系统质量和效率的关键手段,也是系统开发的一个重要而且昂贵的环节。
由于多数软件系统的故障是参数相互作用引起的,测试要求对于系统任何一对输入参数,它们每一个有效值组合必须被至少一个测试案例所覆盖,于是问题转化为寻找一个尽可能小的测试案例集合,使所有的参数配对组合都能被这个集合所覆盖,从而高效地测试各软硬件之间的相互作用对系统产生的影响,这就是覆盖阵列法。
浏览器 | 网页服务器 | 支付系统 | 数据库 |
Firefox | WebSphere | MasterCard | SQLServer |
Chrome | Apache | Visa | Oracle |
Opera | .NET | UnionPay | MySQL |
如上表所示,在一个有四因素的测试系统中,每个因素有3个可选值,如果仅考虑任意两个因素之间的制约关系,完全测试该系统需要进行81个测试用例。而应用2-组合测试,则只需下表中的9个测试用例。
序号 | 浏览器 | 网页服务器 | 支付系统 | 数据库 |
1 | Firefox | WebSphere | MasterCard | SQLServer |
2 | Firefox | .NET | UnionPay | Oracle |
3 | Firefox | Apache | Visa | MySQL |
4 | Chrome | WebSphere | UnionPay | MySQL |
5 | Chrome | Apache | MasterCard | Oracle |
6 | Chrome | .NET | Visa | SQLServer |
7 | Opera | WebSphere | Visa | Oracle |
8 | Opera | .NET | MasterCard | MySQL |
9 | Opera | Apache | UnionPay | SQLServer |
一般地,设有k类软件,每一类中有v种可能的配置,定义覆盖阵列CA(t,k,v)为一个N×k的矩阵,每一行代表一次实验,要求满足任取t列,均能覆盖所有的的配对。满足要求的最小的N代表测试次数最少,测试效率最高,即为最优解,然而求最优解是一个NP困难问题。
关于覆盖阵列的构造,主要有两类方法,一类应用组合设计法构造特殊参数的一类覆盖阵列,此方法仅在特殊的参数设定下能构造较好的阵列,不能推广到一般参数;另一类是计算机算法搜索,此方法较少考虑数学结构,其可以给出一般参数下的可行解,但耗时巨大,在计算时间有限的的情况下可行解的质量往往难以保证。
由于实际问题往往多是考虑两因素之间的相互影响情况,即t=2的情况,所以考虑覆盖阵列CA(2,k,v)的构造。另一经常发生的场景是,前期已利用CA(2,k,v)进行了测试,然而由于新软件的设计开发,每一类软件的可选项可能会从v种配置变为v+m种配置,常规的做法是重新设计CA(2,k,v+m),重新进行完整的测试。此做法存在两个缺点:
1.重新进行完整测试使得已有的测试结果不能继承,造成资源的浪费;
2.构造大阶数覆盖阵列是困难的,即在Zv+m上直接构造CA(2,k,v+m)是困难的。
发明内容
本发明所要解决的技术问题是,不直接构造大阶数的覆盖阵列,而在已有的小阶数覆盖阵列的基础上,递归生成大阶数的覆盖阵列,同时可以继承已有测试,提高测试效率,减少资源浪费。
本发明为解决上述技术问题采用以下技术方案:
一种软件测试用例的递归生成方法,包含以下步骤:
步骤1、获取待测软件环境参数及各类软件的可选配置,构造测试用例的小阶数覆盖阵列CA(2,k,v);其中k表示k类软件,v表示v种配置;
步骤2、每类软件的可选项从v种配置变为v+m种配置时,在覆盖阵列CA(2,k,v)构造的基础上,递归构造出覆盖阵列CA(2,k,v+m);
步骤3、将步骤2生成的覆盖阵列转化为实际的软件测试用例方案。
作为优选,在覆盖阵列CA(2,k,v)构造的基础上,递归构造出覆盖阵列CA(2,k,v+m),具体如下:
定义集合S={v,v+1,…,v+m-1},将扩展至在集合{x,y}上构造覆盖阵列CA(2,k,2),其中x∈Zv,y∈S,并对其进行变量替换,使其首行取值全为x,得到m*v个矩阵,将所得的新矩阵记为Mx,y;
在集合S上构造覆盖阵列CA(2,k,m),并对其进行变量替换,使其首行取值全为v,将所得的新矩阵记为MS;
将矩阵Mv,Mx,y,MS均删去首行后合并,并去除恒等行,得到覆盖阵列CA(2,k,v+m)。
作为优选,对覆盖阵列CA(2,k,v)进行变量替换,得到新矩阵Mv方法如下:
作为优选,矩阵Mx,y生成方法为:
通过组合设计方法求出构造CA(2,k,2)的最优解,列出{0,1}上的首行全零的覆盖阵列CA(2,k,2);
作为优选,矩阵MS生成方法为:
通过组合设计或搜索算法求出小阶数覆盖阵列CA(2,k,m);
本发明采用以上技术方案与现有技术相比,具有以下技术效果:
本发明提出的软件测试用例的递归生成方法,不直接构造大阶数的覆盖阵列,而在已有的小阶数覆盖阵列的基础上,递归生成大阶数的覆盖阵列,比直接构造大阶数覆盖阵列难度小,效率高;同时可以继承已有测试,提高测试效率,减少资源浪费。
附图说明
图1是本发明的主流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例构造的测试用例中,共有k类因素,每类因素由v种选择增加至v+m种选择,由CA(2,k,v)递归构造出CA(2,k,v+m)。
如图1所示,本发明所述的一种软件测试用例的递归生成方法,包含以下步骤:
步骤1、获取待测软件环境参数及各类软件的可选配置,将测试用例的生成问题转化为覆盖阵列的构造问题;
步骤2、每类软件的可选项从v种配置变为v+m种配置时,在覆盖阵列CA(2,k,v)构造的基础上,递归构造出覆盖阵列CA(2,k,v+m);具体如下:
1)在集合构造的覆盖阵列CA(2,k,v),设CA(2,k,v)首行元素分别为x1,x2,…,xk,对每一列元素分别进行变量替换:i=1,2,…,k,所得的阵列仍为覆盖阵列,且满足首行全零,将所得的新矩阵记为Mv,行数为N1;
2)定义集合S={v,v+1,…,v+m-1},将扩展至在集合{x,y}上构造覆盖阵列CA(2,k,2),其中x∈Zv,y∈S,并对其进行变量替换,使其首行取值全为x,得到m*v个矩阵,矩阵行数均为N2,将所得的新矩阵记为Mx,y;分别为
M0,v,M1,v,…Mv-1,v,M0,v+1,…,Mv-1,v+1,……,M0,v+m-1,…,Mv-1,v+m-1;
矩阵Mx,y生成方法具体为:
由于CA(2,k,2)的构造在组合设计中是一个已经完全解决的问题,其存在最优解,通过组合设计方法求出构造CA(2,k,2)的最优解,列出{0,1}上的首行全零的覆盖阵列CA(2,k,2);做变量替换即得到集合{x,y}上的覆盖阵列CA(2,k,2),且满足首行全为x;
其中每个矩阵Mx,y首行以外的N2-1行,覆盖了除{(x,x)}以外的配置组合;
新得到的M0,v仍然覆盖{(0,0),(0,v),(v,0),(v,v)}的所有组合,而首行以外的N2-1行,覆盖了{00,0v,v0}配置组合;
4)在集合S上构造覆盖阵列CA(2,k,m),并对其进行变量替换,使其首行取值全为v,将所得的新矩阵记为MS,行数为N3;矩阵MS生成方法具体为:
通过组合设计或搜索算法求出小阶数覆盖阵列CA(2,k,m);设所得的CA(2,k,m)首行元素分别为x1,x2,…,xk,对每一列元素分别进行变量代换:i=1,2,…,k,所得的阵列仍为覆盖阵列,且满足首行取值全为v;
阵列CA(2,k,m)实现了S×S的所有序对的组合测试,且首行以外的N3-1行覆盖了除{vv}以外的所有配置组合;
5)将矩阵Mv,所有的Mx,y,以及MS均删去首行后合并,并去除可能的恒等行,得到覆盖阵列CA(2,k,v+m),行数不超过N1-1+mv(N2-1)+N3-1;
步骤3、将步骤2生成的覆盖阵列转化为实际的软件测试用例方案。
实例
假设现有一个四因素的软件系统需要测试其两两之间的影响,每个因素有三个可选项,如下表所示:
浏览器 | 网页服务器 | 支付系统 | 数据库 |
Firefox | WebSphere | MasterCard | SQLServer |
Chrome | Apache | Visa | Oracle |
Opera | .NET | UnionPay | MySQL |
其第一行表示(Firefox,WebSphere,MasterCard,SQLServer)的测试组合,第二行表示(Firefox,Apache,Visa,Oracle)的测试组合,依此类推,9次实验可以完成该项测试。
若由于软件系统的不断开发,每个因素新增加两个可选项,仍需要进行两两测试,用本发明中的递归构造方法,可以方便快捷地继承已有数据CA(2,4,3),生成新的覆盖阵列CA(2,4,5),从而得到新的测试方案,比直接构造CA(2,4,5)进行测试的方法,构造简单效率高。
若m=2,要得到覆盖阵列CA(2,k,v+m),可先构造覆盖阵列CA(2,k,2),即CA(2,4,2),经典的组合构造可得如下阵列:
对于集合上的任一元素x,以及集合S={v,v+1,…,v+m-1}中的任一元素y,构造在集合{x,y}上的覆盖阵列CA(2,k,2),并对其进行变量替换,使其首行取值全为x,可得如下行数为N2=5的矩阵Mx,y:
将矩阵M0,3进行变量替换(0,3互换),使其首行取值全为3,并用新得的矩阵替换原矩阵为M03;更新后的M03为:
在集合{3,4}上构造覆盖阵列CA(2,k,2),并对其进行变量替换,使其首行取值全为3,记所得的矩阵为MS,矩阵行数均为N3=5行;
将矩阵M00、所有的Mx,y、以及MS均去首行之后合并,并去除可能的恒等行,则得到覆盖阵列CA(2,k,v+m),即CA(2,4,5),行数不超过
N1-1+mv(N2-1)+N3-1=8+3×2×4+4=36.
将此覆盖阵列返回到实际的软件测试用例,则其第一行表示(Firefox,Apache,Visa,Oracle)的测试组合,第二行表示(Firefox,NET,UnionPay,MySQL)的测试组合,依此类推,最后一行表示(IE,Tomcat,JCB,FoxPro)的测试组合,进行36次实验,可以实现所有两两因素之间的匹配测试。
最后应说明的几点是:首先,在本申请的描述中,需要说明的是,除非另有规定和限定,术语“安装”、“相连”、“连接”应做广义理解,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变,则相对位置关系可能发生改变;
其次:本发明公开实施例附图中,只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计,在不冲突情况下,本发明同一实施例及不同实施例可以相互组合;
最后:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种软件测试用例的递归生成方法,其特征在于,该方法包含以下步骤:
步骤1、获取待测软件环境参数及各类软件的可选配置,将测试用例转化为小阶数覆盖阵列CA(2,k,v),即,通过数学构造或者计算机搜索方法在集合上构造出小阶数覆盖阵列CA(2,k,v),其中k表示k类软件,v表示v种配置;
步骤2、每类软件的可选项从v种配置变为v+m种配置时,在覆盖阵列CA(2,k,v)构造的基础上,递归构造出覆盖阵列CA(2,k,v+m),具体如下:
定义集合S={v,v+1,…,v+m-1},将扩展至在集合{x,y}上构造覆盖阵列CA(2,k,2),其中x∈Zv,y∈S,并对其进行变量替换,使其首行取值全为x,得到m*v个矩阵,将所得的新矩阵记为Mx,y;
在集合S上构造覆盖阵列CA(2,k,m),并对其进行变量替换,使其首行取值全为v,将所得的新矩阵记为MS;
将矩阵Mv,Mx,y,MS均删去首行后合并,并去除恒等行,得到覆盖阵列CA(2,k,v+m);
步骤3、将步骤2生成的覆盖阵列转化为实际的软件测试用例方案。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110576410.0A CN113238954B (zh) | 2021-05-26 | 2021-05-26 | 一种软件测试用例的递归生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110576410.0A CN113238954B (zh) | 2021-05-26 | 2021-05-26 | 一种软件测试用例的递归生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113238954A CN113238954A (zh) | 2021-08-10 |
CN113238954B true CN113238954B (zh) | 2023-05-09 |
Family
ID=77138884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110576410.0A Active CN113238954B (zh) | 2021-05-26 | 2021-05-26 | 一种软件测试用例的递归生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113238954B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114579435B (zh) * | 2022-02-23 | 2024-05-28 | 南京信息工程大学 | 一种软件测试用例的生成方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109902007A (zh) * | 2019-02-21 | 2019-06-18 | 南京信息工程大学 | 一种基于点染色模型的测试用例生成方法 |
CN112799961A (zh) * | 2021-02-25 | 2021-05-14 | 南京邮电大学 | 基于贪婪算法和搜索算法的组合测试用例生成算法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060010426A1 (en) * | 2004-07-09 | 2006-01-12 | Smartware Technologies, Inc. | System and method for generating optimized test cases using constraints based upon system requirements |
-
2021
- 2021-05-26 CN CN202110576410.0A patent/CN113238954B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109902007A (zh) * | 2019-02-21 | 2019-06-18 | 南京信息工程大学 | 一种基于点染色模型的测试用例生成方法 |
CN112799961A (zh) * | 2021-02-25 | 2021-05-14 | 南京邮电大学 | 基于贪婪算法和搜索算法的组合测试用例生成算法 |
Non-Patent Citations (1)
Title |
---|
DEO A Dynamic Event Order Strategy for t-way Sequence Covering Array Test Data Generation;Mohammed Issam Younis;《Baghdad Science Journal》;第17卷(第2期);575-582 * |
Also Published As
Publication number | Publication date |
---|---|
CN113238954A (zh) | 2021-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kang et al. | Inexact accelerated augmented Lagrangian methods | |
Bilbao et al. | Higher-order accurate two-step finite difference schemes for the many-dimensional wave equation | |
CN113238954B (zh) | 一种软件测试用例的递归生成方法 | |
De Domenico et al. | Layer aggregation and reducibility of multilayer interconnected networks | |
JP2020087127A (ja) | グラフ構造を有するデータのエンコードに関するプログラム、情報処理方法及び情報処理システム | |
CN114037082A (zh) | 量子计算任务处理方法、系统及计算机设备 | |
Wang et al. | Accelerated inexact matrix completion algorithm via closed-form q-thresholding (q= 1/2, 2/3) operator | |
Zhou et al. | Multi-task Learning with Adaptive Global Temporal Structure for Predicting Alzheimer's Disease Progression | |
Nobile et al. | Non-intrusive double-greedy parametric model reduction by interpolation of frequency-domain rational surrogates | |
Chicharro et al. | King‐type derivative‐free iterative families: real and memory dynamics | |
Balogh et al. | Optimal design accounting for uncertainty in loading amplitudes: A numerical investigation | |
Shi et al. | Cluster sampling for Morris method made easy | |
US10635771B2 (en) | Method for parasitic-aware capacitor sizing and layout generation | |
JP2008171385A (ja) | 電磁界解析プログラム | |
Peter | A Wasserstein GAN for Joint Learning of Inpainting and Spatial Optimisation | |
Kumar et al. | Accurate parameterization of the kinetic energy functional for calculations using exact-exchange | |
Cannistraci et al. | Latent geometry inspired graph dissimilarities enhance affinity propagation community detection in complex networks | |
Barkalov et al. | Optimizing the Combined Automation Scheme in the ASIS Basis | |
Guo et al. | Ordinal factorization machine with hierarchical sparsity | |
JP2009025962A (ja) | 連立一次方程式求解方法及び装置 | |
Cordero et al. | Behind Jarratt’s Steps: Is Jarratt’s Scheme the Best Version of Itself? | |
US20220382741A1 (en) | Graph embeddings via node-property-aware fast random projection | |
Abeynanda et al. | On the primal feasibility in dual decomposition methods under additive and bounded errors | |
CN117952024B (zh) | 异构数据融合的固体发动机先验模型构建方法及应用 | |
Concas et al. | The seriation problem in the presence of a double Fiedler value |
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 |