测试用例实现方法及软件测试方法

文档序号:6385043阅读:248来源:国知局
专利名称:测试用例实现方法及软件测试方法
技术领域
本发明涉及测试技术,尤指一种测试用例实现方法及软件测试方法。
背景技术
广义的软件测试包括了软件生产全过程的测试,包括对用户需求、概要设计的测试,例如产品是否符合用户需求,是否符合用户的使用习惯等。
狭义的软件测试可以归纳为对模型Y=F(X1,X2,...)的测试。所述模型中X1、X2、...是被测系统输入变量,F表示对输入变量X1、X2、...进行处理变换,得到的输出为Y。
样本是指一个输入变量的一个确定的值,如X11、X12是变量X1的两个样本,输入样本是指所有变量确定值的组合,如(X11,X21,...)是一个输入样本,一个测试用例是指一个确定的输入样本及其对应的预期输出结果,测试一个软件,需要一组足够数量的测试用例。
在测试时按照测试用例中指定的输入样本激励被测系统得到实际输出结果,若实际输出结果与测试用例的预期输出结果相符则表示此次测试通过,若不相符则表示此次测试不通过,被测软件实体在此情况下存在错误。
随着软件复杂度的增加,软件测试过程中需设计的测试用例数量大大增加,由于在实际情况中不可能进行穷举测试,所以实际测试中所使用的测试输入样本集合总是穷举测试输入样本集合的一个子集。测试输入样本的分布情况直接决定了测试所能发现的问题,也决定了最终的测试质量和效果。测试用例设计就是在给定的输入域中对各个变量的输入进行合理组合,以得到合理分布的测试输入样本集合,以保障最终的测试效果。
现有技术中主要采用以下方法设计软件测试用例并根据相应软件测试用例进行软件测试其一,测试人员根据自己的经验对输入样本进行组合得到软件测试用例并根据相应软件测试用例进行软件测试例如,对于输入域

表一 Y=F(X1,X2)的输入域表测试人员既可能得到输入组合(X11,X21)、(X12,X22)、(X13,X23),也可能得到其它输入组合。采用这种方式,测试人员根据自己的经验对样本进行组合得到的结果因人而异,因此,难以保证测试所覆盖的范围,测试质量得不到保证。
其二,采用完全组合方式对输入样本进行组合得到软件测试用例并根据相应软件测试用例进行软件测试这种方式把所有变量的所有样本进行组合,它保证任一变量的任一样本与其它变量的所有样本都有机会组合,根据这种组合方式,表一所表示的输入域存在9个输入样本,分别是(X11,X21)、(X11,X22)、(X11,X23)、(X12,X21)、(X12,X22)、(X12,X23)、(X13,X21)、(X13,X22)、(X13,X23)完全组合事实上导致穷举测试,这种测试常常造成大量的测试用例,不可接受的测试周期和测试成本。
其三,采用正交设计法对输入样本进行组合得到软件测试用例并根据相应软件测试用例进行软件测试采用正交设计法,首先根据变量个数以及每个变量的样本数计算相应的正交设计表,然后用实际样本替换正交设计表中的数据,得到正交组合表,再按照该表进行测试。
对于表一的输入域的两个变量,根据正交设计法组合可得到9个输入样本,分别是(X11,X21)、(X11,X22)、(X11,X23)、(X12,X21)、(X12,X22)、(X12,X23)、
(X13,X21)、(X13,X22)、(X13,X23)采用正交设计法对样本进行组合依据合适的正交表组合样本,通过该方法得到的最小输入样本数为样本数的平方,在一些情况下这么多的测试用例仍然是不可接受的。同时,由于正交设计法强调“均匀分散,整齐可比”的特性,降低了通过正交设计法得到的输入组合的均匀性,从而导致测试覆盖率的降低。

发明内容
本发明解决的技术问题是提供一种测试覆盖范围广、同时所需测试用例少的测试用例实现方法及软件测试方法,采用上述方法,可有效降低软件测试成本和周期。
为解决上述问题,本发明提供的一种测试用例实现方法,包括以下步骤a)根据被测软件系统输入域变量获取相应的均匀设计表;b)根据获取的均匀设计表设计软件测试用例。
其中,所述步骤a)具体包括a1)确定被测软件系统输入域变量个数及每个变量的样本数;a2)根据所述软件系统输入域变量个数及每个变量的样本数查询并获取相应的均匀设计表。
进一步,所述步骤b)具体包括用输入域变量的实际样本替换获取的均匀设计表中的形式参数;以所述替换后的均匀设计表中输入域变量的输入组合设计软件测试用例。
相应的,本发明提供的一种软件测试方法,包括以下步骤1)根据被测软件系统输入域变量获取相应的均匀设计表;2)根据获取的均匀设计表设计软件测试用例;3)利用所述设计的软件测试用例对被测软件系统进行测试。
其中,所述步骤1)具体包括11)确定被测软件系统输入域变量个数及每个变量的样本数;
12)根据所述软件系统输入域变量个数及每个变量的样本数查询并获取相应的均匀设计表。
进一步,所述步骤2)具体包括用输入域变量的实际样本替换获取的均匀设计表中的形式参数;以所述替换后的均匀设计表中输入域变量的输入组合设计软件测试用例。
与现有技术相比,本发明具有以下优点本发明采用均匀设计法进行软件测试用例设计,由于均匀设计法能从全面试验点中挑选出部分代表性的试验点,这些试验点在试验范围内充分均匀分散,但仍能反映体系的主要特征,因而大大减少了试验次数,相比现有技术测试人员根据经验进行组合或者对输入变量进行完全组合以及采用正交设计法等,本发明由于采用均匀设计法设计软件测试用例,可大大提高软件测试的覆盖范围,同时软件测试所需用例较少,可保障软件测试质量,并有效降低软件测试成本。


图1是本发明测试用例实现方法中利用辅助软件系统进行设计的具体实施例总体框图;图2是图1所示辅助软件系统的工作原理示意图;图3是图1所示辅助软件系统查询均匀设计表的流程图。
具体实施例方式
本发明采用均匀设计法设计软件测试用例,均匀设计法是中国数学家提出的一种试验方法,其只考虑试验点在试验范围内充分均匀分散性,而不考虑整齐可比性,因此它的试验布点的均匀性更好,本发明中,所述均匀设计法的因素即软件测试用例中的输入域变量,各个因素的水平数即各个输入域变量的样本数,本发明中将均匀设计法应用于软件测试用例设计,可有效减少测试用例数量,提高测试用例分布的均匀性,有效保障测试用例覆盖率和测试质量。
本发明采用均匀设计法设计软件测试用例主要采用如下两个步骤第一步,根据被测系统输入域变量获取相应的均匀设计表;第二步,根据获取的均匀设计表设计软件测试用例。
为实现所述第一步,需首先确定被测系统输入域变量个数及每个变量的样本数;然后即可根据所述系统输入域变量个数及每个变量的样本数查询并获取相应的均匀设计表。
其中如何取得相应的均匀设计表并进行实际参数替换是本发明的关键,实际实施时可由用于均匀设计的辅助软件系统实现,下面以辅助软件系统为UDTCase为例进行说明。
参考图1,图1是本发明利用所述辅助软件系统(UDTCase)进行软件测试用例设计的具体实施例总体框图,若选择用户交互输入参数(在步骤s11),则系统首先对用户输入的参数进行预处理(在步骤s12),所述对参数进行预处理主要是对样本数不相同的参数进行参数拟合,以保证每个变量都有相同的水平数。拟合方法较多,本实施例中仅以采用最小公倍数方进行样本拟合进行说明,具体的,拟合方法如下取各个输入域变量样本数的最小公倍数;将所述各个输入域变量的水平数放大到所述最小公倍数,得到新的样本表;其中如果各因素的水平数都相同,则拟合结果与不拟合结果一样。
下面举例说明参考表一,表一是拟合前的样本表,假设软件系统输入域变量有两个变量X1及X2,其中变量X1具有6个样本,变量X2则具有4个样本,由于输入域变量X1和X2的样本数(即水平数)分别为6和4,为了使系统输入域变量具有相同的水平数,则取6和4的最小公倍数为12,将变量X1和X2的水平数放大到12,则变量X1重复填充2次,变量X2重复填充3次即可实现拟合。
表二


拟合后的样本表参考表三表三

这样,以拟合后的输入域变量作为参数,即可查询相应的均匀设计表(在步骤s3),在得到相应的均匀设计表后,则以实际参数代替获取的均匀设计表中的形式参数(在步骤s4),最后,将实参替换后的均匀设计表提交给用户(在步骤s5),用户即可根据所述均匀设计表的输入组合设计软件测试用例。
以表一的样本为例,最后通过辅助软件系统(UDTCase)取得的软件测试用例输入样本如下(X11,X23)、(X12,X21)、(X13,X22)用户根据该输入样本计算预期结果即可设计出最终的软件测试用例。
下面参考图2对本发明中应用的辅助软件系统(UDTCase)的工作原理进行说明。
首先系统根据命令行是否有参数决定是否按照交互方式运行(在步骤s201),如果没有参数,表示系统按照交互方式运行,系统提示用户输入参数文件名(在步骤s202),该文件中详细定义均匀设计的各种参数,如果没有指定参数文件,系统提示用户输入变量个数和变量样本数以及结果文件名(在步骤s203、步骤s204以及步骤s205),如果指定了参数文件名,则直接提示用户输入结果文件名(在步骤s206),然后系统根据用户输入的参数构造系统需要的均匀设计参数结构(在步骤s207),按照该结构查询静态均匀设计表并取得相应均匀设计表,然后显示取得的均匀设计表(在步骤s208、步骤s209),如果用户指定了结果文件名,系统会把得到的均匀设计表保存到指定的文件中(在步骤s210),最后系统提示用户是否需要继续运行(在步骤s211),如果用户需要继续运行,则系统返回到提示输入参数文件名处(步骤s202)进行下一轮运行,否则系统退出运行。
另一方面,如果命令行指定了运行参数,则先分析命令行运行参数,具体的首先判断第二个参数(第一个参数是程序名称,即UDTCase.exe)是不是“-1/L”(表示“-1”或“-L”,大写或小写都可以)(在步骤s212、步骤s213),如果是,系统从后续的参数中提取变量个数和变量样本数以及结果文件名(在步骤s214、步骤s215以及步骤s216),再构造系统需要的均匀设计参数结构(在步骤s217);如果第二个参数不是“-1/L”,则第二个参数是参数文件名,获取所述参数文件名,系统再从后续的参数中提取结果文件名构造系统需要的均匀设计查询参数(在步骤s218、步骤s219以及步骤s220),然后系统根据均匀设计参数结构查询静态均匀设计表取得相应均匀设计表,并显示均匀设计表(在步骤s221、步骤s222),如果用户指定了结果文件名,系统会把得到的均匀设计表保存到指定的结果文件中(在步骤s223),然后系统直接退出运行。
上述过程中,查询均匀设计表是系统中的关键,参考图3,对系统实现查询的工作过程进行说明。
系统首先对参数结构进行变量样本拟合(即如果各个变量的样本数不一样,这种情况只可能从参数文件中获得参数时发生),根据拟合的情况构造静态均匀设计表文件名,并从该文件中读取均匀设计表信息,该文件中保存的是形式参数组成的均匀设计表,如表一所表示的输入域对应的静态均匀设计表如下132132取得该表后,使用实际参数(即实际样本)替换上述均匀设计表中的形式参数,得到最终的均匀设计表如下X11 X23X12 X21X13 X22最后系统把得到的均匀设计表提交给用户,用户即可根据替换后的均匀设计表中输入域变量的输入组合设计软件测试用例。
利用上述设计软件测试用例的方法,本发明进一步提供一种软件测试方法,其主要采用下述三个步骤第一步,根据被测软件系统输入域变量获取相应的均匀设计表;第二步,根据获取的均匀设计表设计软件测试用例;第三步,利用所述设计的软件测试用例对被测软件系统进行测试。
其中所述第一步以及第二步可由上述软件测试用例设计方法实现,即实现所述第一步,首先确定被测系统输入域变量个数及每个变量的样本数;然后即可根据所述系统输入域变量个数及每个变量的样本数查询并获取相应的均匀设计表。
实现所述第二步,根据上述软件测试用例设计方法,只需用输入域变量的实际样本替换获取的均匀设计表中的形式参数;然后以所述替换后的均匀设计表中输入域变量的输入组合设计软件测试用例。
这样,在第三步,由设计好的软件测试用例即可对被测软件系统进行测试,由于通过软件测试用例对软件系统进行测试是本领域的公知技术,且不是本发明的关键点,这里不再赘述。
综上,本发明由于通过均匀设计法设计测试用例,可大大提高软件测试的覆盖范围,同时软件测试所需测试用例较少,可保障软件测试质量,并有效降低软件测试成本。
上述仅以优选实施例对本发明进行说明,非因此即局限本发明的权利范围,因此,在不脱离本发明思想的情况下,凡运用本发明说明书及附图内容所为的等效变化,均理同包含于本发明的权利要求范围内。
权利要求
1.一种测试用例实现方法,用于软件系统中,其特征在于,包括以下步骤a)根据被测软件系统输入域变量获取相应的均匀设计表;b)根据获取的均匀设计表设计软件测试用例。
2.根据权利要求1所述的测试用例实现方法,其特征在于,所述步骤a)具体包括a1)确定被测软件系统输入域变量个数及每个变量的样本数;a2)根据所述软件系统输入域变量个数及每个变量的样本数查询并获取相应的均匀设计表。
3.根据权利要求2所述的测试用例实现方法,其特征在于,所述步骤a2)还包括若被测软件系统输入域变量的样本数不全相同,则先对被测软件系统输入域变量进行样本拟合以保证输入域变量均有相同的水平数。
4.根据权利要求3所述的软件测试用例的实现方法,其特征在于,所述对被测软件系统输入域变量进行样本拟合包括如下步骤确定各个输入域变量样本数的最小公倍数;将所述各个输入域变量的水平数放大到所述最小公倍数。
5.根据权利要求1所述的测试用例实现方法,其特征在于,所述步骤b)具体包括用输入域变量的实际样本替换获取的均匀设计表中的形式参数;以所述替换后的均匀设计表中输入域变量的输入组合设计软件测试用例。
6.一种软件测试方法,用于软件系统中,其特征在于,包括以下步骤1)根据被测软件系统输入域变量获取相应的均匀设计表;2)根据获取的均匀设计表设计软件测试用例;3)利用所述设计的软件测试用例对被测软件系统进行测试。
7.根据权利要求6所述的软件测试方法,其特征在于,所述步骤1)具体包括11)确定被测软件系统输入域变量个数及每个变量的样本数;12)根据所述软件系统输入域变量个数及每个变量的样本数查询并获取相应的均匀设计表。
8.根据权利要求7所述的软件测试方法,其特征在于,所述步骤12)还包括若被测软件系统输入域变量的样本数不全相同,则先对被测系统输入域变量进行样本拟合以保证输入域变量均有相同的水平数。
9.根据权利要求8所述的软件测试方法,其特征在于,所述对被测软件系统输入域变量进行样本拟合包括如下步骤确定各个输入域变量样本数的最小公倍数;将所述各个输入域变量的水平数放大到所述最小公倍数。
10.根据权利要求6所述的软件测试方法,其特征在于,所述步骤2)具体包括用输入域变量的实际样本替换获取的均匀设计表中的形式参数;以所述替换后的均匀设计表中输入域变量的输入组合设计软件测试用例。
全文摘要
本发明公开一种测试用例实现方法及一种软件测试的方法,所述测试用例实现方法主要包括以下步骤a)根据被测软件系统输入域变量获取相应的均匀设计表;b)根据获取的均匀设计表设计软件测试用例。所述软件测试方法主要利用上述测试用例实现方法设计软件测试用例,并进一步利用所述设计的测试用例对被测软件系统进行测试。本发明由于采用均匀设计法设计测试用例,可大大提高软件测试的覆盖范围,同时测试所需测试用例较少,可保障软件测试质量,并有效降低软件测试成本。
文档编号G06F11/36GK1670714SQ20041000869
公开日2005年9月21日 申请日期2004年3月16日 优先权日2004年3月16日
发明者桂俊超 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1