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

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

Info

Publication number
CN102567190B
CN102567190B CN201010587155.1A CN201010587155A CN102567190B CN 102567190 B CN102567190 B CN 102567190B CN 201010587155 A CN201010587155 A CN 201010587155A CN 102567190 B CN102567190 B CN 102567190B
Authority
CN
China
Prior art keywords
jump condition
weight
node
condition
user
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
CN201010587155.1A
Other languages
English (en)
Other versions
CN102567190A (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 Centec Communications Co Ltd
Original Assignee
SUZHOU INDUSTRIAL PARK ICP TECHNOLOGIES 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 INDUSTRIAL PARK ICP TECHNOLOGIES Co Ltd filed Critical SUZHOU INDUSTRIAL PARK ICP TECHNOLOGIES Co Ltd
Priority to CN201010587155.1A priority Critical patent/CN102567190B/zh
Publication of CN102567190A publication Critical patent/CN102567190A/zh
Application granted granted Critical
Publication of CN102567190B publication Critical patent/CN102567190B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于用户使用流程加权有向图的测试用例自动生成方法及包括了前述生成方法的测试方法,其中,生成方法包括以下步骤:步骤一、建立用户使用流程明细表;步骤二、建立用户使用流程加权有向图;步骤三、建立使用流程加权有向图的测试用例生成引擎。通过本发明,使得用户流程测试更加规范精确,提高软件在流程关联性方面的质量。

Description

基于用户使用流程加权有向图的测试用例自动生成方法及测试方法
技术领域
本发明涉及计算机软件测试领域,尤其涉及测试用例自动生成方法及测试方法。
背景技术
软件已经深入到人们生活工作的各个方面。由于软件在金融、军事、电力、交通、航天、通讯等重要领域的应用越来越深入广泛。软件系统的规模也在持续扩大,需求日益复杂,对软件质量的要求也越来越高。但现实中软件系统的质量和稳定性却不尽如人意,采用有效的软件测试是保证软件质量、提高软件可靠性的重要手段。在提供给用户之前对软件进行测试是不可或缺的,软件测试通过对软件错误的原因和分布进行归纳,来发现并排除当前软件产品存在的缺陷,对在需求和设计过程中存在的问题查缺补漏,从而确保软件产品的质量。软件测试不只是软件测试人员的工作,也是软件开发人员和软件使用者的工作。软件测试的本质就是针对要测试的内容确定一组测试用例(Test Case)。 
测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果。测试用例包括测试标识、测试用例名称、目标、测试条件、测试设置、输入数据要求、步骤、以及预期的结果等。从软件测试用例设计方法的角度,可分为黑盒测试(Black-Box Testing)和白盒测试(White-Box Testing)。黑盒测试(又称为功能测试或数据驱动测试)是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。黑盒测试试图发现以下类型的错误:1)功能错误或遗漏;2)界面错误;3)数据结构或外部数据库访问错误;4)性能错误;5)初始化和终止错误。黑盒测试注重于测试软件的功能性需求,也即黑盒测试使软件工程师派生出执行程序所有功能需求的输入条件。白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能。
用路径分析的方法编写测试用例时,首先可将系统运行过程中所涉及到的各种流程图表化,可以先从最基本的流程入手,将流程抽象成为不同功能的顺序执行。在最基本流程的基础上再去考虑次要或者异常的流程,这样将各种流程逐渐细化,这样既可以逐渐加深对流程的理解,还可以将各个看似孤立的流程关联起来。完成所有流程的图表化后就完成了所有路径的设定。
在实际应用软件时,用户使用流程覆盖的路径很复杂且很难预测,这对软件测试而言,测试任务显得较为繁琐。
发明内容
有鉴于此,本发明目的是在于建立一种基于用户使用流程加权有向图的测试用例自动生成方法及测试方式,使得用户流程测试更加规范,提高软件在流程关联性方面的质量。
为了实现前述发明目的,本发明提供了一种基于用户使用流程加权有向图的测试用例自动生成方法,包括以下步骤: 步骤一、建立用户使用流程明细表;步骤二、建立用户使用流程加权有向图;步骤三、建立使用流程加权有向图的测试用例生成引擎;其中,所述步骤一包括:根据软件的设计建立主要步骤;增加两个固定的步骤:用户进入使用状态的开始步骤start,用户退出使用状态的退出步骤quit;建立上述步骤间的权重和转移条件;建立在每个步骤内改变转移条件;所述建立上述步骤间的权重和转移条件的规则是步骤start根据转移条件可以向其他步骤转移,但其他步骤不可以向步骤start转移,只在行出现;步骤quit不可以向其他步骤转移,但其他步骤根据转移条件可以向步骤quit转移,只在列出现;所述用户使用流程明细表中的表格第一列代表当前步骤,表格最后一列代表当前步骤可改变的权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写;表格倒数第二列表示其他步骤到步骤quit的权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写;表格第一行代表下一个步骤,表格最后一行表示从步骤start到其他步骤的权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写;其他列和行表示除步骤start和步骤quit外的各个步骤相互间跳转的权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写;所述用户使用流程加权有向图具有圆圈作为有向图的节点,表示步骤,圆圈内的名字为步骤名;圆圈间的有向连线作为有向图的边,代表步骤间转移的路径,线上的说明代表两部分内容:权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写;圆圈外的方框代表步骤可改变转移条件的值,方框内的说明代表具体改变转移条件值得情况;无方框代表不需要改变转移条件的值; 加权有向图还具有两个特殊的步骤:start步骤代表用户进入使用;quit步骤代表用户退出使用;所述步骤三把用户使用流程明细表作为输入文件,用户使用步骤的步数作为输入的第二个参数;测试用例脚本作为输出;
所述测试用例生成引擎的具体步骤包括:
步骤S1、按照明细表最后一行最后一列:步骤“start”的“改变条件”说明代码,初始化有向图上所有边的条件的初始值;
步骤S2、记录最后一列其他所有节点的“改变条件”说明代码;
步骤S3、给每个节点可前进的下一个节点从0开始编号,并记录最大编号N、边上权重、转移条件;
步骤S4、设定当前节点为步骤start节点;
步骤S5、任取随机数r,得到r除N的余数n;设置临时变量t=0,遍历每条边的权重w;每经过一条边t=t+w;余数n落入[t, t+w]内,则选这边所指向的节点作为下一步的要去的节点;
步骤S6、判断当前节点与下一步要去的节点之间连线上的边是否满足;若不满足,返回步骤S5,否则跳到步骤S7;
步骤S7、改变当前节点为选取的节点,并改变新的节点条件所要改变的状态,记录到测试用例脚本文件;
步骤S8、自增步骤变量;
步骤S9、判断步骤变量是否达到设定的步数S;若没有达到,返回步骤步骤S5,否则跳到步骤S10;
步骤S10、根据引擎设置,可有两种情况产生:第一种情况,执行当前节点能到退出步骤quit节点的最短路径,把所经过的所有节点都记录到测试用例脚本文件;第二种情况,无论有向图是否有连接,直接跳到步骤S11;
步骤S11、退出用户使用流程。
为了实现前述发明目的,本发明提供了一种基于用户使用流程加权有向图的测试方法,包括以下步骤,步骤一: 建立用户使用流程明细表;步骤二:建立用户使用流程加权有向图;步骤三: 建立测试用例生成引擎;步骤四: 运行测试用例,得到测试结果; 步骤五:评价测试结果,统计路径测试覆盖率;所述步骤一包括:根据软件的设计建立主要步骤;增加两个固定的步骤:用户进入使用状态的开始步骤start,用户退出使用状态的退出步骤quit;建立上述步骤间的权重和转移条件;建立在每个步骤内改变转移条件;所述建立上述步骤间的权重和转移条件的规则是步骤start根据转移条件可以向其他步骤转移,但其他步骤不可以向步骤start转移,只在行出现;步骤quit不可以向其他步骤转移,但其他步骤根据转移条件可以向步骤quit转移,只在列出现;所述用户使用流程明细表中的表格第一列代表当前步骤,表格最后一列代表当前步骤可改变的权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写;表格倒数第二列表示其他步骤到步骤quit的权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写;表格第一行代表下一个步骤,表格最后一行表示从步骤start到其他步骤的权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写;其他列和行表示除步骤start和步骤quit外的各个步骤相互间跳转的权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写;所述用户使用流程加权有向图具有圆圈作为有向图的节点,表示步骤,圆圈内的名字为步骤名;圆圈间的有向连线作为有向图的边,代表步骤间转移的路径,线上的说明代表两部分内容:权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写;圆圈外的方框代表步骤可改变转移条件的值,方框内的说明代表具体改变转移条件值得情况;无方框代表不需要改变转移条件的值; 加权有向图还具有两个特殊的步骤:start步骤代表用户进入使用;quit步骤代表用户退出使用;
所述步骤三把用户使用流程明细表作为输入文件,用户使用步骤的步数作为输入的第二个参数;测试用例脚本作为输出;
所述测试用例生成引擎的具体操作步骤包括:
步骤S1、按照明细表最后一行最后一列:步骤“start”的“改变条件”说明代码,初始化有向图上所有边的条件的初始值;
步骤S2、记录最后一列其他所有节点的“改变条件”说明代码;
步骤S3、给每个节点可前进的下一个节点从0开始编号,并记录最大编号N、边上权重、转移条件;
步骤S4、设定当前节点为步骤start节点;
步骤S5、任取随机数r,得到r除N的余数n;设置临时变量t=0,遍历每条边的权重w;每经过一条边t=t+w;所余数n落入[t, t+w]内,则选这边所指向的节点作为下一步的要去的节点;
步骤S6、判断当前节点与下一步要去的节点之间连线上的边是否满足;若不满足,返回步骤S5,否则跳到步骤S7;
步骤S7、改变当前节点为选取的节点,并改变新的节点条件所要改变的状态,记录到测试用例脚本文件;
步骤S8、自增步骤变量;
步骤S9、判断步骤变量是否达到设定的步数S;若没有达到,返回步骤步骤S5,否则跳到步骤S10;
步骤S10、根据引擎设置,可有两种情况产生:第一种情况,执行当前节点能到退出步骤quit节点的最短路径,把所经过的所有节点都记录到测试用例脚本文件;第二种情况,无论有向图是否有连接,直接跳到步骤S11;
步骤S11、退出用户使用流程。
相较于现有技术,本发明通过先建立用户流程明细表,从而可得到用户流程加权有向图,并可自动生成测试用例,最终实现测试。本发明属于黑盒测试,建立方法简单,测试方式方便灵活,通用性强,可适合各类具有API函数的软件或类CPU指令测试。对不可预测的用户使用流程的测试到问题能力大为增强。
附图说明
图1示意的是本发明的用户使用流程加权有向图。
图2为本发明的测试用例生成引擎的输入和输出示意图。
图3是本发明的测试用例生成引擎的具体操作流程图。
具体实施方式
下面参照附图具体介绍本发明的实施例,图中相同的结构或功能用相同的数字标出。应该指出的是,附图的目的只是便于对本发明具体实施例的说明,不是一种多余的叙述或是对本发明范围的限制。
在实际应用软件时,用户使用根据使用需求、使用环境、使用习惯都不一致,覆盖的路径会很复杂且很难预测,但是,主要的流程出现的概率会稍大一些。为使测试更加符合实际使用,本发明建立了一种基于用户使用流程加权有向图的测试用例自动生成方法及测试方法,使得用户流程测试更加规范更加精确,大幅度提高软件在流程关联性方面的测试质量。
本发明基于用户使用流程加权有向图的测试方法包括以下步骤:
步骤一、建立用户使用流程明细表; 步骤二、以用户使用流程明细表作为数据来源,生成用户流程测试用例; 步骤三、运行测试用例,得到测试结果; 步骤四、评价测试结果,统计路径测试覆盖率:覆盖可结合权重进行分析,按照N步覆盖率进行考察(N为自然数)。
本发明基于用户使用流程加权有向图的测试用例自动生成方法,包括以下步骤:步骤一、建立用户使用流程明细表;步骤二、建立用户使用流程加权有向图;步骤三、建立使用流程加权有向图的测试用例生成引擎。
步骤一、建立用户使用流程明细表的说明:
                   表1: 用户使用流程明细表
通过步骤一建立用户流程明细表,从而可得到用户流程加权有向图。建立用户使用流程明细表(如表1)的具体方法如下:
1、根据软件的设计建立主要步骤,如软件中的API函数,CPU指令等等;如表1中的三个API函数:create_project, get_project_list, close_project;
2、增加两个固定的步骤:用户进入使用状态的开始步骤(start);用户退出使用状态的退出步骤(quit);
3、建立上述步骤间的权重和转移条件;
规则: 步骤start根据转移条件可以向其他步骤转移,但其他步骤不可以向start转移,只在行出现;
规则: 步骤quit不可以向其他步骤转移,但其他步骤根据转移条件可以向quit转移,只在列出现;
4、建立在每个步骤内改变转移条件;
如果有n个步骤,则建立的使用流程表明细表只有(n+1)行x (n+2)列。如果有100 API等待用户流程测试,则只需10302个单元填充。
用户使用流程明细表的说明: 
其中,关于列的说明:表格第一列代表当前步骤,表格最后一列代表当前步骤可改变的权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写;表格倒数第二列表示其他步骤到步骤quit的权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写。
关于行的说明:表格第一行代表下一个步骤,表格最后一行表示从步骤start到其他步骤的权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写。
其他列和行表示除步骤start和步骤quit外的各个步骤相互间跳转的权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写。
步骤二、建立用户使用加权流程图:
虽然用户使用流程路径复杂很难预测,但从一个步骤到下一个步骤的流程路经选择是有限的和有条件的。据此我们可以画出这样的用户使用流程有向图,具体说明请参图1:
1、圆圈作为有向图的节点,表示步骤,圆圈内的名字为步骤名;
2、圆圈间的有向连线作为有向图的边,代表步骤间转移的路径,线上的说明代表两部分内容:权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写;
3、圆圈外的方框代表步骤可改变转移条件的值,方框内的说明代表具体改变转移条件值得情况;无方框代表不需要改变转移条件的值;
4、两个特殊的步骤:start步骤代表用户进入使用;quit步骤代表用户退出使用。
一开始从start步骤进入用户使用流程有向图到最终通过quit步骤退出用户使用流程有向图中间的步骤依据用户的使用需求和习惯选择,这种使用需求和习惯每个用户都是不一致,不可以预测。但本发明通过测试用例生成引擎随机模拟用户使用路径,达到用户使用路径覆盖率测试要求。
 步骤三: 建立使用流程加权有向图的测试用例生成引擎:
该引擎采用脚本或者可编译语言实现,其输入和输出如图2所示。把用户使用流程明细表作为输入文件,用户使用步骤的步数作为输入的第二个参数;测试用例脚本作为输出。
该引擎的具体操作流程图如图3所示,按照明细表,要记录的数据有:
{
条件C;
节点列表node:{
当前节点的名称、能改变的条件;
下一步各节点的名称、编号、权重、转移条件;
                 }
步骤步数S;
}
引擎包括如下步骤:
步骤S1、按照明细表最后一行最后一列:步骤“start”的“改变条件”说明代码,初始化有向图上所有边的条件的初始值;
步骤S2、记录最后一列其他所有节点的“改变条件”说明代码;
步骤S3、给每个节点可前进的下一个节点从0开始编号,并记录最大编号N、边上权重、转移条件;
步骤S4、设定当前节点为步骤start节点;
步骤S5、任取随机数r,得到r除N的余数n;设置临时变量t=0,遍历每条边的权重w;每经过一条边t=t+w;所余数n落入[t, t+w]内,则选这边所指向的节点作为下一步的要去的节点;
步骤S6、判断当前节点与下一步要去的节点之间连线上的边是否满足。若不满足,返回步骤S5,否则跳到步骤S7;
步骤S7、改变当前节点为选取的节点,并改变新的节点条件所要改变的状态,记录到测试用例脚本文件;
步骤S8、自增步骤变量;
步骤S9、判断步骤变量是否达到设定的步数S;若没有达到,返回步骤步骤S5,否则跳到步骤S10;
步骤S10、根据引擎设置,可有两种情况产生:第一种情况,执行当前节点能到退出步骤quit节点的最短路径,把所经过的所有节点都记录到测试用例脚本文件;第二种情况,无论有向图是否有连接,直接跳到步骤S11;
步骤S11、退出用户使用流程。
生成的测试用例脚本包含两部分功能:
a、设置实时断点,一旦有错误,立即退出测试用例脚本;比如每个API函数都必须返回成功,若不成功则可判定为有错误产生;b、记录期望的测试结果(包括路径、每个节点达到的步数),可与运行时得到的实际结果比较。
本发明引擎对使用步骤没有限制,方便灵活生成测试用例。
本发明通过先建立用户流程明细表,从而可得到用户流程加权有向图,并可自动生成测试用例,最终实现测试。本发明属于黑盒测试,建立方法简单,测试方式方便灵活,通用性强,可适合各类具有API函数的软件或类CPU指令测试。对不可预测的用户使用流程的测试到问题能力大为增强。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,利用上述揭示的方法内容对本发明技术方案做出许多可能的变动和修饰,均属于权利要求书保护的范围。

Claims (4)

1.一种基于用户使用流程加权有向图的测试用例自动生成方法,包括以下步骤: 步骤一、建立用户使用流程明细表;步骤二、建立用户使用流程加权有向图;步骤三、建立使用流程加权有向图的测试用例生成引擎;其中,所述步骤一包括:根据软件的设计建立主要步骤;增加两个固定的步骤:用户进入使用状态的开始步骤start,用户退出使用状态的退出步骤quit;建立上述步骤间的权重和转移条件;建立在每个步骤内改变转移条件;所述建立上述步骤间的权重和转移条件的规则是步骤start根据转移条件可以向其他步骤转移,但其他步骤不可以向步骤start转移,只在行出现;步骤quit不可以向其他步骤转移,但其他步骤根据转移条件可以向步骤quit转移,只在列出现;所述用户使用流程明细表中的表格第一列代表当前步骤,表格最后一列代表当前步骤可改变的权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写;表格倒数第二列表示其他步骤到步骤quit的权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写;表格第一行代表下一个步骤,表格最后一行表示从步骤start到其他步骤的权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写;其他列和行表示除步骤start和步骤quit外的各个步骤相互间跳转的权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写;所述用户使用流程加权有向图具有圆圈作为有向图的节点,表示步骤,圆圈内的名字为步骤名;圆圈间的有向连线作为有向图的边,代表步骤间转移的路径,线上的说明代表两部分内容:权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写;圆圈外的方框代表步骤可改变转移条件的值,方框内的说明代表具体改变转移条件值得情况;无方框代表不需要改变转移条件的值; 加权有向图还具有两个特殊的步骤:start步骤代表用户进入使用;quit步骤代表用户退出使用;所述步骤三把用户使用流程明细表作为输入文件,用户使用步骤的步数作为输入的第二个参数;测试用例脚本作为输出;
所述测试用例生成引擎的具体步骤包括:
步骤S1、按照明细表最后一行最后一列:步骤“start”的“改变条件”说明代码,初始化有向图上所有边的条件的初始值;
步骤S2、记录最后一列其他所有节点的“改变条件”说明代码;
步骤S3、给每个节点可前进的下一个节点从0开始编号,并记录最大编号N、边上权重、转移条件;
步骤S4、设定当前节点为步骤start节点;
步骤S5、任取随机数r,得到r除N的余数n;设置临时变量t=0,遍历每条边的权重w;每经过一条边t=t+w;余数n落入[t, t+w]内,则选这边所指向的节点作为下一步的要去的节点;
步骤S6、判断当前节点与下一步要去的节点之间连线上的边是否满足;若不满足,返回步骤S5,否则跳到步骤S7;
步骤S7、改变当前节点为选取的节点,并改变新的节点条件所要改变的状态,记录到测试用例脚本文件;
步骤S8、自增步骤变量;
步骤S9、判断步骤变量是否达到设定的步数S;若没有达到,返回步骤步骤S5,否则跳到步骤S10;
步骤S10、根据引擎设置,可有两种情况产生:第一种情况,执行当前节点能到退出步骤quit节点的最短路径,把所经过的所有节点都记录到测试用例脚本文件;第二种情况,无论有向图是否有连接,直接跳到步骤S11;
步骤S11、退出用户使用流程。
2.如权利要求1所述的基于用户使用流程加权有向图的测试用例自动生成方法,其特征在于,所述主要步骤为三个API函数:create_project, get_project_list, close_project。
3.一种基于用户使用流程加权有向图的测试方法,包括以下步骤,步骤一: 建立用户使用流程明细表;步骤二:建立用户使用流程加权有向图;步骤三: 建立测试用例生成引擎;步骤四: 运行测试用例,得到测试结果; 步骤五:评价测试结果,统计路径测试覆盖率;所述步骤一包括:根据软件的设计建立主要步骤;增加两个固定的步骤:用户进入使用状态的开始步骤start,用户退出使用状态的退出步骤quit;建立上述步骤间的权重和转移条件;建立在每个步骤内改变转移条件;所述建立上述步骤间的权重和转移条件的规则是步骤start根据转移条件可以向其他步骤转移,但其他步骤不可以向步骤start转移,只在行出现;步骤quit不可以向其他步骤转移,但其他步骤根据转移条件可以向步骤quit转移,只在列出现;所述用户使用流程明细表中的表格第一列代表当前步骤,表格最后一列代表当前步骤可改变的权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写;表格倒数第二列表示其他步骤到步骤quit的权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写;表格第一行代表下一个步骤,表格最后一行表示从步骤start到其他步骤的权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写;其他列和行表示除步骤start和步骤quit外的各个步骤相互间跳转的权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写;所述用户使用流程加权有向图具有圆圈作为有向图的节点,表示步骤,圆圈内的名字为步骤名;圆圈间的有向连线作为有向图的边,代表步骤间转移的路径,线上的说明代表两部分内容:权重和转移条件,两者之间用冒号间隔,权重为整数;要求一定要写权重值,可以没有转移条件;当没有转移条件时,冒号可不写;圆圈外的方框代表步骤可改变转移条件的值,方框内的说明代表具体改变转移条件值得情况;无方框代表不需要改变转移条件的值; 加权有向图还具有两个特殊的步骤:start步骤代表用户进入使用;quit步骤代表用户退出使用;
所述步骤三把用户使用流程明细表作为输入文件,用户使用步骤的步数作为输入的第二个参数;测试用例脚本作为输出;
所述测试用例生成引擎的具体操作步骤包括:
步骤S1、按照明细表最后一行最后一列:步骤“start”的“改变条件”说明代码,初始化有向图上所有边的条件的初始值;
步骤S2、记录最后一列其他所有节点的“改变条件”说明代码;
步骤S3、给每个节点可前进的下一个节点从0开始编号,并记录最大编号N、边上权重、转移条件;
步骤S4、设定当前节点为步骤start节点;
步骤S5、任取随机数r,得到r除N的余数n;设置临时变量t=0,遍历每条边的权重w;每经过一条边t=t+w;所余数n落入[t, t+w]内,则选这边所指向的节点作为下一步的要去的节点;
步骤S6、判断当前节点与下一步要去的节点之间连线上的边是否满足;若不满足,返回步骤S5,否则跳到步骤S7;
步骤S7、改变当前节点为选取的节点,并改变新的节点条件所要改变的状态,记录到测试用例脚本文件;
步骤S8、自增步骤变量;
步骤S9、判断步骤变量是否达到设定的步数S;若没有达到,返回步骤步骤S5,否则跳到步骤S10;
步骤S10、根据引擎设置,可有两种情况产生:第一种情况,执行当前节点能到退出步骤quit节点的最短路径,把所经过的所有节点都记录到测试用例脚本文件;第二种情况,无论有向图是否有连接,直接跳到步骤S11;
步骤S11、退出用户使用流程。
4.如权利要求3所述的基于用户使用流程加权有向图的测试方法,其特征在于,所述主要步骤为三个API函数:create_project, get_project_list, close_project。
CN201010587155.1A 2010-12-14 2010-12-14 基于用户使用流程加权有向图的测试用例自动生成方法及测试方法 Active CN102567190B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010587155.1A CN102567190B (zh) 2010-12-14 2010-12-14 基于用户使用流程加权有向图的测试用例自动生成方法及测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010587155.1A CN102567190B (zh) 2010-12-14 2010-12-14 基于用户使用流程加权有向图的测试用例自动生成方法及测试方法

Publications (2)

Publication Number Publication Date
CN102567190A CN102567190A (zh) 2012-07-11
CN102567190B true CN102567190B (zh) 2014-12-10

Family

ID=46412658

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010587155.1A Active CN102567190B (zh) 2010-12-14 2010-12-14 基于用户使用流程加权有向图的测试用例自动生成方法及测试方法

Country Status (1)

Country Link
CN (1) CN102567190B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103713989B (zh) * 2012-09-29 2018-02-02 百度在线网络技术(北京)有限公司 一种针对用户终端的测试用例生成方法和装置
JP5894954B2 (ja) * 2013-03-22 2016-03-30 株式会社日立製作所 テストケース生成方法、テストケース生成装置およびプログラム
CN107273297B (zh) * 2017-06-28 2023-10-13 百度在线网络技术(北京)有限公司 用于生成测试用例的方法和装置
CN111444091B (zh) * 2020-03-23 2023-06-09 北京字节跳动网络技术有限公司 测试用例生成方法及装置
CN111813691B (zh) * 2020-07-23 2024-03-01 中国工商银行股份有限公司 测试问题排查方法、装置、电子设备和介质
CN114003502A (zh) * 2021-11-04 2022-02-01 中国银行股份有限公司 测试案例生成方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101464797A (zh) * 2008-12-09 2009-06-24 北京星网锐捷网络技术有限公司 基于统一建模语言活动图自动生成测试用例的方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050144529A1 (en) * 2003-10-01 2005-06-30 Helmut Gotz Method for defined derivation of software tests from use cases

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101464797A (zh) * 2008-12-09 2009-06-24 北京星网锐捷网络技术有限公司 基于统一建模语言活动图自动生成测试用例的方法及系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
刘超.程序交互执行流程图及其测试覆盖准则.《软件学报》.1998,第9卷(第6期),第458页第1段-第462页第4.3节第1段,图1-5. *
基于UML活动图的多态性测试用例生成;覃钊璇 等;《计算机工程》;20100605;第36卷(第11期);参见第83页第2节-第87页第5节,图1-4 *
程序交互执行流程图及其测试覆盖准则;刘超;《软件学报》;19980630;第9卷(第6期);第458页第1段-第462页第4.3节第1段,图1-5 *
覃钊璇 等.基于UML活动图的多态性测试用例生成.《计算机工程》.2010,第36卷(第11期),参见第83页第2节-第87页第5节,图1-4. *

Also Published As

Publication number Publication date
CN102567190A (zh) 2012-07-11

Similar Documents

Publication Publication Date Title
CN102567190B (zh) 基于用户使用流程加权有向图的测试用例自动生成方法及测试方法
CN102566988B (zh) 基于用户使用流程有向图的测试用例自动生成方法及测试方法
McGeoch A guide to experimental algorithmics
Castrejon-Campos et al. Making policy mixes more robust: An integrative and interdisciplinary approach for clean energy transitions
CN103226562A (zh) 用于生成问题的方法和装置
US10067859B2 (en) Constructing test-centric model of application
Tomasello et al. Data-driven modeling of collaboration networks: a cross-domain analysis
Viana et al. One step forward: Linking wireless self-organizing network validation techniques with formal testing approaches
CN104267936A (zh) 基于树语义的异步动态下推网络可达性分析方法
Bakni et al. Methodology to evaluate wsn simulators: Focusing on energy consumption awareness
Brown et al. Metamorphic testing of mapping software
Kurkowski Credible mobile ad hoc network simulation-based studies
Păduraru et al. RiverIoT-a framework proposal for fuzzing IoT applications
Creus et al. Automatic evaluation of context-free grammars (system description)
Akhtar Khan et al. Formal and executable specification of random waypoint mobility model using timed coloured petri nets for WMN
Olamide et al. Formal verification and validation of DEVS simulation models
Chandra et al. How to the smash next billion mobile app bugs?
He Design and Application of Interactive Teaching System for Electronic Engineering Specialty Based on ZigBee
Hou Integrated reliability and availability aanalysis of networks with software failures and hardware failures
Baiardi et al. Evaluating risk without data
Chen et al. Recommended system for cognitive assessment evaluation based on two-phase blue-red tree of rule-space model: A case study of mta course
Lin et al. Usage modeling through sequence enumeration for automated statistical testing of a GUI application
Dean-Hall et al. The power of contextual suggestion
Zimba Building Reliable Cloud Systems through Chaos Engineering
Amit et al. Implications of Formal Verification and Modeling Tools for Performing Operational Profile-based Testing of VR Tourism Systems Design

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160201

Address after: Xinghan street Suzhou Industrial Park in Suzhou city in Jiangsu province 215021 B No. 5 Building 4 floor 13/16 unit

Patentee after: Centec Networks (Suzhou) Inc.

Address before: Xinghan street Suzhou Industrial Park in Suzhou city in Jiangsu province 215000 B No. 5 Building 4 Building 16 unit

Patentee before: Suzhou Industrial Park ICP Technologies Co., Ltd.

CP03 Change of name, title or address

Address after: 215000 unit 13 / 16, 4th floor, building B, No.5 Xinghan street, Suzhou Industrial Park, Jiangsu Province

Patentee after: Suzhou Shengke Communication Co.,Ltd.

Address before: 215021 unit 13 / 16, floor 4, building B, No. 5, Xinghan street, Suzhou Industrial Park, Suzhou, Jiangsu

Patentee before: CENTEC NETWORKS (SU ZHOU) Co.,Ltd.

CP03 Change of name, title or address