基于用户使用流程加权有向图的测试用例自动生成方法及测试方法

文档序号:6338584阅读:252来源:国知局
专利名称:基于用户使用流程加权有向图的测试用例自动生成方法及测试方法
技术领域
本发明涉及计算机软件测试领域,尤其涉及测试用例自动生成方法及测试方法。
背景技术
软件已经深入到人们生活工作的各个方面。由于软件在金融、军事、电力、交通、航天、通讯等重要领域的应用越来越深入广泛。软件系统的规模也在持续扩大,需求日益复杂,对软件质量的要求也越来越高。但现实中软件系统的质量和稳定性却不尽如人意,采用有效的软件测试是保证软件质量、提高软件可靠性的重要手段。在提供给用户之前对软件进行测试是不可或缺的,软件测试通过对软件错误的原因和分布进行归纳,来发现并排除当前软件产品存在的缺陷,对在需求和设计过程中存在的问题查缺补漏,从而确保软件产品的质量。软件测试不只是软件测试人员的工作,也是软件开发人员和软件使用者的工作。软件测试的本质就是针对要测试的内容确定一组测试用例(Test Case)。测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果。测试用例包括测试标识、测试用例名称、目标、测试条件、测试设置、输入数据要求、步骤、以及预期的结果等。从软件测试用例设计方法的角度,可分为黑盒测试(Black-Box Testing)和白盒测试(White-Box Testing)。黑盒测试(又称为功能测试或数据驱动测试)是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。黑盒测试试图发现以下类型的错误1)功能错误或遗漏; 2)界面错误;3)数据结构或外部数据库访问错误;4)性能错误;5)初始化和终止错误。黑盒测试注重于测试软件的功能性需求,也即黑盒测试使软件工程师派生出执行程序所有功能需求的输入条件。白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程, 可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能。用路径分析的方法编写测试用例时,首先可将系统运行过程中所涉及到的各种流程图表化,可以先从最基本的流程入手,将流程抽象成为不同功能的顺序执行。在最基本流程的基础上再去考虑次要或者异常的流程,这样将各种流程逐渐细化,这样既可以逐渐加深对流程的理解,还可以将各个看似孤立的流程关联起来。完成所有流程的图表化后就完成了所有路径的设定。在实际应用软件时,用户使用流程覆盖的路径很复杂且很难预测,这对软件测试而言,测试任务显得较为繁琐。

发明内容
有鉴于此,本发明目的是在于建立一种基于用户使用流程加权有向图的测试用例自动生成方法及测试方式,使得用户流程测试更加规范,提高软件在流程关联性方面的质fio为了实现前述发明目的,本发明提供了一种基于用户使用流程加权有向图的测试用例自动生成方法,包括以下步骤步骤一、建立用户使用流程明细表;步骤二、建立用户使用流程加权有向图;步骤三、建立使用流程加权有向图的测试用例生成引擎。为了实现前述发明目的,本发明提供了一种基于用户使用流程加权有向图的测试方法,包括以下步骤,步骤一建立用户使用流程明细表;步骤二 建立用户使用流程加权有向图;步骤三建立测试用例生成引擎;步骤四运行测试用例,得到测试结果;步骤五评价测试结果,统计路径测试覆盖率。相较于现有技术,本发明通过先建立用户流程明细表,从而可得到用户流程加权有向图,并可自动生成测试用例,最终实现测试。本发明属于黑盒测试,建立方法简单,测试方式方便灵活,通用性强,可适合各类具有API函数的软件或类CPU指令测试。对不可预测的用户使用流程的测试到问题能力大为增强。


图1示意的是本发明的用户使用流程加权有向图。图2为本发明的测试用例生成引擎的输入和输出示意图。图3是本发明的测试用例生成引擎的具体操作流程图。
具体实施例方式下面参照附图具体介绍本发明的实施例,图中相同的结构或功能用相同的数字标出。应该指出的是,附图的目的只是便于对本发明具体实施例的说明,不是一种多余的叙述或是对本发明范围的限制。在实际应用软件时,用户使用根据使用需求、使用环境、使用习惯都不一致,覆盖的路径会很复杂且很难预测,但是,主要的流程出现的概率会稍大一些。为使测试更加符合实际使用,本发明建立了一种基于用户使用流程加权有向图的测试用例自动生成方法及测试方法,使得用户流程测试更加规范更加精确,大幅度提高软件在流程关联性方面的测试质量。本发明基于用户使用流程加权有向图的测试方法包括以下步骤
步骤一、建立用户使用流程明细表;步骤二、以用户使用流程明细表作为数据来源,生成用户流程测试用例;步骤三、运行测试用例,得到测试结果;步骤四、评价测试结果,统计路径测试覆盖率覆盖可结合权重进行分析,按照N步覆盖率进行考察(N为自然数)。
本发明基于用户使用流程加权有向图的测试用例自动生成方法,包括以下步骤步骤一、建立用户使用流程明细表;步骤二、建立用户使用流程加权有向图;步骤三、建立使用流程加权有向图的测试用例生成引擎。
步骤一、建立用户使用流程明细表的说明
权利要求
1.一种基于用户使用流程加权有向图的测试用例自动生成方法,包括以下步骤步骤一、建立用户使用流程明细表;步骤二、建立用户使用流程加权有向图;步骤三、建立使用流程加权有向图的测试用例生成引擎。
2.如权利要求1所述的基于用户使用流程加权有向图的测试用例自动生成方法,其特征在于,所述步骤一具体包括根据软件的设计建立主要步骤;增加两个固定的步骤用户进入使用状态的开始步骤start,用户退出使用状态的退出步骤quit ;建立上述步骤间的权重和转移条件;建立在每个步骤内改变转移条件。
3.如权利要求2所述的基于用户使用流程加权有向图的测试用例自动生成方法,其特征在于,所述主要步骤为三个API函数create_project,get_pro ject_list, close— project。
4.如权利要求2所述的基于用户使用流程加权有向图的测试用例自动生成方法,其特征在于,所述建立上述步骤间的权重和转移条件的规则是步骤start根据转移条件可以向其他步骤转移,但其他步骤不可以向步骤start转移,只在行出现;步骤quit不可以向其他步骤转移,但其他步骤根据转移条件可以向步骤quit转移,只在列出现。
5.如权利要求4所述的基于用户使用流程加权有向图的测试用例自动生成方法,其特征在于,所述用户使用流程明细表中的表格第一列代表当前步骤,表格最后一列代表当前步骤可改变的权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值, 可以没有转移条件;当没有转移条件时,冒号可不写;表格倒数第二列表示其他步骤到步骤quit的权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写;表格第一行代表下一个步骤,表格最后一行表示从步骤start到其他步骤的权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写;其他列和行表示除步骤start和步骤quit外的各个步骤相互间跳转的权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写。
6.如权利要求5所述的基于用户使用流程加权有向图的测试用例自动生成方法,其特征在于,所述用户使用流程加权有向图具有圆圈作为有向图的节点,表示步骤,圆圈内的名字为步骤名;圆圈间的有向连线作为有向图的边,代表步骤间转移的路径,线上的说明代表两部分内容权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值, 可以没有转移条件;当没有转移条件时,冒号可不写;圆圈外的方框代表步骤可改变转移条件的值,方框内的说明代表具体改变转移条件值得情况;无方框代表不需要改变转移条件的值;加权有向图还具有两个特殊的步骤start步骤代表用户进入使用;quit步骤代表用户退出使用。
7.如权利要求6所述的基于用户使用流程加权有向图的测试用例自动生成方法,其特征在于,所述步骤三把用户使用流程明细表作为输入文件,用户使用步骤的步数作为输入的第二个参数;测试用例脚本作为输出。
8.如权利要求7所述的基于用户使用流程加权有向图的测试用例自动生成方法,其特征在于,所述测试用例生成引擎的具体步骤包括步骤Si、按照明细表最后一行最后一列步骤“start”的“改变条件”说明代码,初始化有向图上所有边的条件的初始值;步骤S2、记录最后一列其他所有节点的“改变条件”说明代码;步骤S3、给每个节点可前进的下一个节点从0开始编号,并记录最大编号N、边上权重、 转移条件;步骤S5、设定当前节点为步骤start节点;步骤S6、任取随机数r,得到r除N的余数η;设置临时变量t=0,遍历每条边的权重w ; 每经过一条边t=t+w;所余数η落入[t,t+w]内,则选这边所指向的节点作为下一步的要去的节点步骤S7、判断当前节点与下一步要去的节点之间连线上的边是否满足;若不满足,返回步骤S6,否则跳到步骤S8 ;步骤S8、改变当前节点为选取的节点,并改变新的节点条件所要改变的状态,记录到测试用例脚本文件;步骤S9、自增步骤变量;步骤S10、判断步骤变量是否达到设定的步数S ;若没有达到,返回步骤步骤S6,否则跳到步骤Sll ;步骤S11、根据引擎设置,可有两种情况产生第一种情况,执行当前节点能到退出步骤quit节点的最短路径,把所经过的所有节点都记录到测试用例脚本文件;第二种情况, 无论有向图是否有连接,直接跳到步骤S12 ;步骤S12、退出用户使用流程。
9.一种基于用户使用流程加权有向图的测试方法,包括以下步骤,步骤一建立用户使用流程明细表;步骤二 建立用户使用流程加权有向图;步骤三建立测试用例生成引擎;步骤四运行测试用例,得到测试结果;步骤五评价测试结果,统计路径测试覆盖率。
10.如权利要求9所述的基于用户使用流程加权有向图的测试方法,其特征在于,所述步骤一具体包括根据软件的设计建立主要步骤;增加两个固定的步骤用户进入使用状态的开始步骤start,用户退出使用状态的退出步骤quit ;建立上述步骤间的权重和转移条件;建立在每个步骤内改变转移条件。
11.如权利要求9所述的基于用户使用流程加权有向图的测试方法,其特征在于,所述主要步骤为三个 API 函数create_project, get_pro ject_list, close_pro ject。
12.如权利要求10所述的基于用户使用流程加权有向图的测试方法,其特征在于,所述建立上述步骤间的权重和转移条件的规则是步骤start根据转移条件可以向其他步骤转移,但其他步骤不可以向步骤start转移,只在行出现;步骤quit不可以向其他步骤转移,但其他步骤根据转移条件可以向步骤quit转移,只在列出现。
13.如权利要求12所述的基于用户使用流程加权有向图的测试方法,其特征在于,所述用户使用流程明细表中的表格第一列代表当前步骤,表格最后一列代表当前步骤可改变的权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写;表格倒数第二列表示其他步骤到步骤quit的权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写;表格第一行代表下一个步骤,表格最后一行表示从步骤start到其他步骤的权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写;其他列和行表示除步骤 start和步骤quit外的各个步骤相互间跳转的权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写。
14.如权利要求13所述的基于用户使用流程加权有向图的测试方法,其特征在于,所述用户使用流程加权有向图具有圆圈作为有向图的节点,表示步骤,圆圈内的名字为步骤名;圆圈间的有向连线作为有向图的边,代表步骤间转移的路径,线上的说明代表两部分内容权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写;圆圈外的方框代表步骤可改变转移条件的值, 方框内的说明代表具体改变转移条件值得情况;无方框代表不需要改变转移条件的值; 加权有向图还具有两个特殊的步骤start步骤代表用户进入使用;quit步骤代表用户退出使用。
15.如权利要求14所述的基于用户使用流程加权有向图的测试方法,其特征在于,所述步骤三把用户使用流程明细表作为输入文件,用户使用步骤的步数作为输入的第二个参数;测试用例脚本作为输出。
16.如权利要求15所述的基于用户使用流程加权有向图的测试方法,其特征在于,所述测试用例生成引擎的具体操作步骤包括步骤Si、按照明细表最后一行最后一列步骤“start”的“改变条件”说明代码,初始化有向图上所有边的条件的初始值;步骤S2、记录最后一列其他所有节点的“改变条件”说明代码;步骤S3、给每个节点可前进的下一个节点从0开始编号,并记录最大编号N、边上权重、 转移条件;步骤S5、设定当前节点为步骤start节点;步骤S6、任取随机数r,得到r除N的余数η;设置临时变量t=0,遍历每条边的权重w ; 每经过一条边t=t+w;所余数η落入[t,t+w]内,则选这边所指向的节点作为下一步的要去的节点步骤S7、判断当前节点与下一步要去的节点之间连线上的边是否满足;若不满足,返回步骤S6,否则跳到步骤S8;步骤S8、改变当前节点为选取的节点,并改变新的节点条件所要改变的状态,记录到测试用例脚本文件;步骤S9、自增步骤变量;步骤S10、判断步骤变量是否达到设定的步数S ;若没有达到,返回步骤步骤S6,否则跳到步骤Sll ;步骤S11、根据引擎设置,可有两种情况产生第一种情况,执行当前节点能到退出步骤quit节点的最短路径,把所经过的所有节点都记录到测试用例脚本文件;第二种情况, 无论有向图是否有连接,直接跳到步骤S12 ;步骤S12、退出用户使用流程。
全文摘要
本发明公开了一种基于用户使用流程加权有向图的测试用例自动生成方法及包括了前述生成方法的测试方法,其中,生成方法包括以下步骤:步骤一、建立用户使用流程明细表;步骤二、建立用户使用流程加权有向图;步骤三、建立使用流程加权有向图的测试用例生成引擎。通过本发明,使得用户流程测试更加规范精确,提高软件在流程关联性方面的质量。
文档编号G06F11/36GK102567190SQ20101058715
公开日2012年7月11日 申请日期2010年12月14日 优先权日2010年12月14日
发明者胡国兴 申请人:苏州工业园区谱芯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1