一种基于贪心算法的自动化测试用例选择方法

文档序号:6635251阅读:1453来源:国知局
一种基于贪心算法的自动化测试用例选择方法
【专利摘要】本发明公开了一种基于贪心算法的自动化测试用例选择方法,在设计、编写系统测试用例时,将系统测试用例与需求分解表中的需求关联,依据系统测试用例与需求分解表的关联数据,创建系统测试用例-需求对应矩阵;使用贪心算法的思想,逐步选择系统测试用例中覆盖需求最多的用例作为自动化测试用例。本发明克服了传统自动化测试用例选择效率低、遗漏或者冗余、缺乏科学依据等缺点,利用贪心算法的局部最优达到全局最优的理念,提高自动化测试用例选择的科学性、高效性和可靠性。
【专利说明】
一种基于贪心算法的自动化测试用例选择方法

【技术领域】
[0001]本发明涉及软件自动化测试领域,具体涉及一种基于贪心算法的自动化测试用例选择方法。

【背景技术】
[0002]软件测试是软件工程的重要环节,它直接关系到软件的质量、开发进度和项目成本。随着软件技术和编码技术的巨大发展,软件设计和编码的效率得到了极大的提高。软件测试的工作量相比以前却并未减少。相反的,在整个软件开发的生命周期中,软件测试工作所占的比例不断提高。而统计表明,回归测试所占的成本达到整个测试成本的一半以上。软件自动化回归测试的出现和发展使得软件测试进入一个崭新的时期。
[0003]自动化测试用例是软件回归自动化测试是否成功的关键因素之一。目前一般的做法是由软件测试工程师手工从系统测试用例中挑选自动化测试用例,效率较低,遗漏需求、且缺乏科学依据。
[0004]贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。


【发明内容】

[0005]本发明要解决的技术问题是:传统自动化测试用例选择效率低、遗漏或者冗余、缺乏科学依据等缺点,利用贪心算法的局部最优达到全局最优的理念,本发明提出一种基于贪心算法的自动化测试用例选择方法,提高自动化测试用例选择的科学性、高效性和可靠性。
[0006]本发明所采用的技术方案为:
一种基于贪心算法的自动化测试用例选择方法,在设计、编写系统测试用例时,将系统测试用例与需求分解表中的需求关联,依据系统测试用例与需求分解表的关联数据,创建系统测试用例-需求对应矩阵;使用贪心算法的思想,逐步选择系统测试用例中覆盖需求最多的用例作为自动化测试用例。
[0007]为了提高效率,将贪心算法程序化,将选择自动化测试用例的过程自动化,自动逐步挑选最多覆盖和未覆盖需求的系统测试用例,剔除冗余系统测试用例,从而挑选出最少的自动化测试用例集。
[0008]所述方法步骤如下:
A)软件系统测试用例设计、编写时,要求与需求分解表对应,此操作可以借助成熟的软件测试管理工具QC实现;
B)建立系统测试用例与分解需求的对应矩阵,a(0)…a(n)为需求,b(O)-b (m)为系统测试用例,当第i个用例覆盖了第j个需求的时候,b(i)a(j)=l,反之记录b(i)a(j)=0 ; c)比较用例覆盖的需求数,挑选覆盖最多需求的测试用例作为自动化测试用例,然后剔除被挑选的用例及被覆盖到的需求,重复建立系统测试用例-需求对应矩阵,逐步选择当前覆盖需求最多的用例,直至所有的需求被覆盖;
D)将贪心算法程序化,自动实现自动化测试用力的选择,提升测试效率。
[0009]所述贪心算法的步骤如下:
O计算用例覆盖的需求数,求最大值
sum[i]=a[i] [0]+a[i] [I]+…+a[i] [j-Ι]只计数值为 I 的数值,比较 sum ,记录 i ;
2)将覆盖到的需求j对应的a[0...1] [j]赋值为-1 ;
3)重复步骤I),直至所有的sum[i]=0。
[0010]直至所有的sum[i]=0的时候,输出的所有i值即对应了覆盖了所有需求的测试用例,由此,可以确定自动化测试的测试用例,代替了手工挑选自动化测试用例的传统方式,提高了自动化测试的效率和可靠性。
[0011]本发明有益效果:本发明克服了传统自动化测试用例选择效率低、遗漏或者冗余、缺乏科学依据等缺点,利用贪心算法的局部最优达到全局最优的理念,提高自动化测试用例选择的科学性、高效性和可靠性。

【专利附图】

【附图说明】
[0012]图1为本发明系统测试用例-需求对应矩阵;
图2为本发明贪心算法建模流程图。

【具体实施方式】
[0013]下面根据说明书附图,结合具体实施例,对本发明进一步说明:
一种基于贪心算法的自动化测试用例选择方法,在设计、编写系统测试用例时,将系统测试用例与需求分解表中的需求关联,依据系统测试用例与需求分解表的关联数据,创建系统测试用例-需求对应矩阵;使用贪心算法的思想,逐步选择系统测试用例中覆盖需求最多的用例作为自动化测试用例。
[0014]为了提高效率,将贪心算法程序化,将选择自动化测试用例的过程自动化,自动逐步挑选最多覆盖和未覆盖需求的系统测试用例,剔除冗余系统测试用例,从而挑选出最少的自动化测试用例集。
[0015]所述方法步骤如下:
A)软件系统测试用例设计、编写时,要求与需求分解表对应,此操作可以借助成熟的软件测试管理工具QC实现;
如图1所示,B)建立系统测试用例与分解需求的对应矩阵,a (O)…a (η)为需求,b(0)...b(m)为系统测试用例,当第i个用例覆盖了第j个需求的时候,b(i)a(j)=l,反之记录b(i)a(j)=0 ;
O比较用例覆盖的需求数,挑选覆盖最多需求的测试用例作为自动化测试用例,然后剔除被挑选的用例及被覆盖到的需求,重复建立系统测试用例-需求对应矩阵,逐步选择当前覆盖需求最多的用例,直至所有的需求被覆盖;
D)将贪心算法程序化,自动实现自动化测试用力的选择,提升测试效率。
[0016]如图2所示,所述贪心算法的步骤如下:
O计算用例覆盖的需求数,求最大值
sum[i]=a[i] [0]+a[i] [I]+…+a[i] [j-Ι]只计数值为 I 的数值,比较 sum ,记录 i ;
2)将覆盖到的需求j对应的a[0...1] [j]赋值为-1 ;
3)重复步骤I),直至所有的sum[i]=0。
[0017]直至所有的sum[i]=0的时候,输出的所有i值即对应了覆盖了所有需求的测试用例,由此,可以确定自动化测试的测试用例,代替了手工挑选自动化测试用例的传统方式,提高了自动化测试的效率和可靠性。
【权利要求】
1.一种基于贪心算法的自动化测试用例选择方法,其特征在于:在设计、编写系统测试用例时,将系统测试用例与需求分解表中的需求关联,依据系统测试用例与需求分解表的关联数据,创建系统测试用例-需求对应矩阵;使用贪心算法的思想,逐步选择系统测试用例中覆盖需求最多的用例作为自动化测试用例。
2.根据权利要求1所述的一种基于贪心算法的自动化测试用例选择方法,其特征在于:将贪心算法程序化,将选择自动化测试用例的过程自动化,自动逐步挑选最多覆盖和未覆盖需求的系统测试用例,剔除冗余系统测试用例,从而挑选出最少的自动化测试用例集。
3.根据权利要求2所述的一种基于贪心算法的自动化测试用例选择方法,其特征在于,所述方法步骤如下: A)软件系统测试用例设计、编写时,要求与需求分解表对应; B)建立系统测试用例与分解需求的对应矩阵,a(0)…a(n)为需求,b(O)-b (m)为系统测试用例,当第i个用例覆盖了第j个需求的时候,b(i)a(j)=l,反之记录b(i)a(j)=0 ; C)比较用例覆盖的需求数,挑选覆盖最多需求的测试用例作为自动化测试用例,然后剔除被挑选的用例及被覆盖到的需求,重复建立系统测试用例-需求对应矩阵,逐步选择当前覆盖需求最多的用例,直至所有的需求被覆盖; D)将贪心算法程序化,自动实现自动化测试用力的选择,提升测试效率。
4.根据权利要求1、2或3所述的一种基于贪心算法的自动化测试用例选择方法,其特征在于,所述贪心算法的步骤如下: O计算用例覆盖的需求数,求最大值 sum[i]=a[i] [0]+a[i] [I]+…+a[i] [j-Ι]只计数值为 I 的数值,比较 sum ,记录 i ; 2)将覆盖到的需求j对应的a[0...1] [j]赋值为-1 ; 3)重复步骤I),直至所有的sum[i]=0。
【文档编号】G06F11/36GK104391790SQ201410673332
【公开日】2015年3月4日 申请日期:2014年11月21日 优先权日:2014年11月21日
【发明者】赵霞, 孙言弟, 张新玲 申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1