CN107678953A - 基于uml图形的路径生成方法、系统及存储介质 - Google Patents
基于uml图形的路径生成方法、系统及存储介质 Download PDFInfo
- Publication number
- CN107678953A CN107678953A CN201710866227.8A CN201710866227A CN107678953A CN 107678953 A CN107678953 A CN 107678953A CN 201710866227 A CN201710866227 A CN 201710866227A CN 107678953 A CN107678953 A CN 107678953A
- Authority
- CN
- China
- Prior art keywords
- terminal
- list
- function
- initial point
- node
- 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.)
- Pending
Links
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
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
本发明公开了一种基于UML图形的路径生成方法、系统及存储介质,首先确定始点和终点,获取图形的起始节点列表和终止节点列表;通过函数配置所述起始节点列表和终止节点列表中的始点和终点的映射关系,通过功能函数findSource()根据一个节点得到以此为终点的子路径集合;通过伪代码描述函数findroad()的逻辑。本发明提供了一套基于UML图形的路径生成算法,一次性建模可自动生成测试用例文档,高效准确,时间复杂度极低,并可根据客户要求加入图形的限制规则。
Description
技术领域
本发明涉及软件测试技术领域,尤其涉及一种基于UML图形的路径生成方法、系统及存储介质。
背景技术
目前,航天传统的软件测试工程师都是凭借自己的工作经验以及和软件研发人员的沟通完成对被测软件的描述,手工书写测试用例,费时低效漏洞多。其中,用于软件测试的UML模型描述过程的准确表达需要靠路径达成,业内现有的路径生成算法要么过于简单化,通路与支路无法组合成带回路的路径,要么过于繁琐,过于复杂的排列生成过多无意义的路径,不利于航天软件的测试。
发明内容
本发明的主要目的在于提供一种基于UML图形的路径生成方法、系统及存储介质,一次性建模可自动生成测试用例文档,高效准确,时间复杂度极低,并可根据客户要求加入图形的限制规则。
为实现上述目的,本发明提供的一种基于UML图形的路径生成方法,包括以下步骤:
S1,确定始点和终点,获取图形的起始节点列表和终止节点列表;
S2,通过函数getFillProcessWithStartAndEnd(List startList,List endList,String childDiagramType,innerclass ic,String fatherNodeName)配置所述起始节点列表和终止节点列表中的始点和终点的映射关系,其中,startList和endList分别是S1中获得的起始节点列表和终止节点列表;
S3,通过功能函数findSource()根据一个节点得到以此为终点的子路径集合;
S4,通过伪代码描述函数findroad()的逻辑。
其中,所述步骤S1中确定始点和终点包括:
在未指定起点和终点的图形里,如果一个图元没有指进连线,则认为其为始点;如果一个图元没有指出连线,则认为其为终点;使用函数getStartAndEndList(ObjectsubRootModel,List start,List end)获取图形的始点和终点列表,subRootModel为子图类型,start为存放开始节点的列表,end为存储结束节点的列表。
其中,所述步骤S1中确定始点和终点配合MBT的模型校验规则。
其中,在S3中所述的findSource()函数用于辅助findroad()函数找到以某节点为终点的子路径,其中,findSource()函数只负责查找数据流图、因果图、故障树中的与节点下属的子孙路径。
其中,步骤S4的程序中应用递归表达。
本发明还提出一种基于UML图形的路径生成系统,所述系统包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的方法的步骤。
本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。
本发明提供了一种基于UML图形的路径生成方法、系统及存储介质,通过递归,利用排列组合知识,一次性建模可自动生成测试用例文档,高效准确,时间复杂度极低,并可根据客户要求加入图形的限制规则,最大限度的减少代码量,功能块以小函数的形式书写,实现了通路与回路的穷举组合(非排列,本发明不关心顺序),使最终的测试用例完整详尽,并且以最精简的、方便复用的代码完成功能。
相比现有技术,本发明的有益效果是:(1)可自定义始点是终点,如果不指定,无流入连线的视为始点,无流出连线的视为终点(2)以递归方式实现路径的便利,同样以递归方式实现支路与通路的穷举组合,代码非常精简(3)配合MBT工具的校验规则,算法更严谨更立体。
附图说明
图1是本发明基于UML图形的路径生成方法的流程示意图;
图2是本发明基于UML图形的路径生成方法的细化流程示意图;
图3是本发明中路径生成示意图;
图4是本发明的原理示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
为了使本发明的技术方案更加清楚、明了,下面将结合附图作进一步详述。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
由于现有技术中,航天传统的软件测试工程师都是凭借自己的工作经验以及和软件研发人员的沟通完成对被测软件的描述,手工书写测试用例,费时低效漏洞多。其中,用于软件测试的UML模型描述过程的准确表达需要靠路径达成,业内现有的路径生成算法要么过于简单化,通路与支路无法组合成带回路的路径,要么过于繁琐,过于复杂的排列生成过多无意义的路径,不利于航天软件的测试。
鉴于上述问题,本发明提出一种高可靠性MBT工具,一次性建模可自动生成测试用例文档,高效准确。UML模型描述过程的准确表达需要靠路径达成,业内现有的路径生成算法要么过于简单化,通路与支路无法组合成带回路的路径,要么过于繁琐,过于复杂的排列生成过多无意义的路径,对于航天软件的测试无疑是画蛇添足,本发明根据十数载航天领域经验,量身研制了一套描述航天软件的UML图形路径生成算法。
其中,在高可靠性嵌入式MBT工具的项目开发中,需要利用数据流图、程序结构图、程序流程图、状态图、活动图、故障树、因果图、时序图、交互图共九种图来建模,图形的量化表达靠数据,图形的过程表达靠路径,用户需要的测试用例也是基于路径。在九种图的路径算法中有相似之处,图元均由有向线段链接,根据连线的源点和终点可形成一条路径;而九种图中又有很多不同点,比如有的图形允许环路,有的图形图元需要同时出现,有的又需要规定图元的连接顺序,因此一个健壮的路径算法决定了UML建模的结构正确性、数据正确性、思维逻辑正确性和拟人表达的合理性,本发明提供了一套基于UML图形的路径生成算法,时间复杂度极低,并可根据客户要求加入图形的限制规则
具体地,如图1所示,本发明提出一种基于UML图形的路径生成方法,包括以下步骤:
S1,确定始点和终点,获取图形的起始节点列表和终止节点列表;
S2,通过函数getFillProcessWithStartAndEnd(List startList,List endList,String childDiagramType,innerclass ic,String fatherNodeName)配置所述起始节点列表和终止节点列表中的始点和终点的映射关系,其中,startList和endList分别是S1中获得的起始节点列表和终止节点列表;
S3,通过功能函数findSource()根据一个节点得到以此为终点的子路径集合;
S4,通过伪代码描述函数findroad()的逻辑。
更为具体地,参照图2及图4所示,本发明提出一种基于多种模型校验策略的高可靠嵌入式软件MBT工具的UML模型路径生成算法,包括以下思路:
S1:首先确定始点和终点,对于一条路径来说,始点和终点必需为已知条件,确定之后才有可能去计算由起点到终点有多少条路,在我司的MBT工具中有如下规定:在未指定起点和终点的图形里,如果一个图元没有指进连线,则认为其为始点;如果一个图元没有指出连线,则认为其为终点。本发明使用函数getStartAndEndList(Object subRootModel,List start,List end)获取图形的始点和终点列表,subRootModel为子图类型,start为存放开始节点的列表,end为存储结束节点的列表,例如如果是子数据流图则所有数据源点加入到start中,所有数据终点加入到end中,
S2:通过getStartAndEndList函数找到始点和终点之后,进入主要的算法函数getFillProcessWithStartAndEnd(List startList,List endList,StringchildDiagramType,innerclass ic,String fatherNodeName),startList和endList分别是S1中函数获得的起始节点列表和终止节点列表。由于startList和endList是列表,对应一组起点和一组终点那么就意味着我们要做一一映射,即当startList中有m个元素,endList中有n个元素时,那么需要做m*n次映射,函数findroad()就完成此单一起点到单一终点的算法;
S3:功能函数findSource(),此函数的用途是根据一个节点得到以此为终点的子路径集合,伪代码表示其算法:
先了解findSource的输入参数:end:终点模型;fatherRoad:存放路径;fatherRoadId:存放路径ID;
步骤3是通过祖先节点找子孙节点,不涉及环路,故只需简单的递归逻辑,而后述的findRoad()函数为由子孙节点找祖先节点,会设计大量的环路和回溯,较为复杂;
S4:本步骤通过伪代码描述函数findroad()的逻辑:
首先了解findroad的输入参数:start:起点模型;end:终点模型;fatherRoad:存放路径;fatherRoadId:存放路径ID;resultRoads:路径结果结合;resultRoadsIds:路径ID结果集合;
根据2可以得到一个key为始点终点,value分别为resultRoads和resultRoadsIds的两个MAP分别是roadsloop和roadsIdloop,在对应一个起点和终点对的路径集合resultRoads中并非每条路径都包含此起点和终点,通路包含起点和终点,支路就只包含起点,那么若干支路和一条通路的进行组合就形成了由起点到终点所有可能的走法,以图3为例:
由始点A到终点B有一条通路r,两条支路r1和r2都只包含起点A,那么最终由A到B的走法共有四种,r,r1r,r2r,r2r1r;利用数学的排列组合知识,在有n条回路的图形中,与唯一通路做组合所得最终走法为
c(n,0)+c(n,1),+c(n,2)+·····+c(n,n)=2n种;
这里依据数学公式c(n,m)=(n/m)*c(n-1,m-1),因此算法中使用递归实现3中所述的组合思路:
与业内现有的路径生成策略相比,本发明的有益效果是:(1)可自定义始点是终点,如果不指定,无流入连线的视为始点,无流出连线的视为终点(2)以递归方式实现路径的便利,同样以递归方式实现支路与通路的穷举组合,代码非常精简(3)配合我司MBT工具的校验规则,算法更严谨更立体。
上述步骤S1确定始点和终点需要配合MBT的模型校验规则,如果在模型关于始点和终点的校验未通过的情况下,强行通过本算法生成路径会导致路径与期望不符:
作为本发明进一步扩展,在步骤S3中所述的findSource()函数在本发明中用于辅助findroad()函数找到以某节点为终点的子路径,事实上findroad()函数为正向查找,而findSource()函数为逆向查找,以两种方式均可以处理路径生成问题,在本发明中findSource()函数可以只负责查找数据流图、因果图、故障树中的与节点下属的子孙路径,功能明确,思路清晰,不必用过复杂的逻辑实现简单功能。
此外,在上述步骤S4的程序中大量应用递归,其原因是数学中的排列组合可用计算机高级程序中的递归完美表达,思想统一无歧义,表述代码简练无冗余,只需要编程者熟练掌握递归思想。
此外,本发明还提出一种基于UML图形的路径生成系统,所述系统包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的方法的步骤。
本实施例的具体原理,请参照上述实施例,在此不再赘述。
此外,本发明还提出一种一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。
本实施例的具体原理,请参照上述实施例,在此不再赘述。
本发明提供了一种基于UML图形的路径生成方法、系统及存储介质,通过递归,利用排列组合知识,一次性建模可自动生成测试用例文档,高效准确,时间复杂度极低,并可根据客户要求加入图形的限制规则,最大限度的减少代码量,功能块以小函数的形式书写,实现了通路与回路的穷举组合(非排列,本发明不关心顺序),使最终的测试用例完整详尽,并且以最精简的、方便复用的代码完成功能。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (7)
1.一种基于UML图形的路径生成方法,其特征在于,包括以下步骤:
S1,确定始点和终点,获取图形的起始节点列表和终止节点列表;
S2,通过函数getFillProcessWithStartAndEnd(List startList,List endList,String childDiagramType,innerclass ic,String fatherNodeName)配置所述起始节点列表和终止节点列表中的始点和终点的映射关系,其中,startList和endList分别是S1中获得的起始节点列表和终止节点列表;
S3,通过功能函数findSource()根据一个节点得到以此为终点的子路径集合;
S4,通过伪代码描述函数findroad()的逻辑。
2.根据权利要求1所述的基于UML图形的路径生成方法,其特征在于,所述步骤S1中确定始点和终点包括:
在未指定起点和终点的图形里,如果一个图元没有指进连线,则认为其为始点;如果一个图元没有指出连线,则认为其为终点;使用函数getStartAndEndList(ObjectsubRootModel,List start,List end)获取图形的始点和终点列表,subRootModel为子图类型,start为存放开始节点的列表,end为存储结束节点的列表。
3.根据权利要求1所述的基于UML图形的路径生成方法,其特征在于,所述步骤S1中确定始点和终点配合MBT的模型校验规则。
4.根据权利要求1所述的基于UML图形的路径生成方法,其特征在于,在S3中所述的findSource()函数用于辅助findroad()函数找到以某节点为终点的子路径,其中,findSource()函数只负责查找数据流图、因果图、故障树中的与节点下属的子孙路径。
5.根据权利要求1所述的基于UML图形的路径生成方法,其特征在于,步骤S4的程序中应用递归表达。
6.一种基于UML图形的路径生成系统,其特征在于,所述系统包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-5中任一项所述的方法的步骤。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710866227.8A CN107678953A (zh) | 2017-09-22 | 2017-09-22 | 基于uml图形的路径生成方法、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710866227.8A CN107678953A (zh) | 2017-09-22 | 2017-09-22 | 基于uml图形的路径生成方法、系统及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107678953A true CN107678953A (zh) | 2018-02-09 |
Family
ID=61137685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710866227.8A Pending CN107678953A (zh) | 2017-09-22 | 2017-09-22 | 基于uml图形的路径生成方法、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107678953A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108763680A (zh) * | 2018-05-16 | 2018-11-06 | 北京交通大学 | 基于扩展uml模型的安全苛求系统的故障树生成方法 |
CN110569578A (zh) * | 2019-08-26 | 2019-12-13 | 奇瑞汽车股份有限公司 | 一种线束图导线路径快速计算方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1632792A (zh) * | 2004-12-29 | 2005-06-29 | 复旦大学 | 一种基于xml数据的高效路径索引方法 |
CN101201740A (zh) * | 2007-10-12 | 2008-06-18 | 北京赛柏科技有限责任公司 | 基于过程模型的测试用例生成方法 |
US20080222114A1 (en) * | 2007-03-09 | 2008-09-11 | Ghost Inc. | Efficient directed acyclic graph representation |
CN103995781A (zh) * | 2014-06-10 | 2014-08-20 | 浪潮通用软件有限公司 | 一种基于模型的构件测试用例生成方法 |
CN106951368A (zh) * | 2017-03-12 | 2017-07-14 | 北京工业大学 | 基于uml时序图的测试用例自动生成方法 |
-
2017
- 2017-09-22 CN CN201710866227.8A patent/CN107678953A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1632792A (zh) * | 2004-12-29 | 2005-06-29 | 复旦大学 | 一种基于xml数据的高效路径索引方法 |
US20080222114A1 (en) * | 2007-03-09 | 2008-09-11 | Ghost Inc. | Efficient directed acyclic graph representation |
CN101201740A (zh) * | 2007-10-12 | 2008-06-18 | 北京赛柏科技有限责任公司 | 基于过程模型的测试用例生成方法 |
CN103995781A (zh) * | 2014-06-10 | 2014-08-20 | 浪潮通用软件有限公司 | 一种基于模型的构件测试用例生成方法 |
CN106951368A (zh) * | 2017-03-12 | 2017-07-14 | 北京工业大学 | 基于uml时序图的测试用例自动生成方法 |
Non-Patent Citations (2)
Title |
---|
毛澄映等: "分支测试中测试路径用例的简化生成方法", 《计算机研究与发展》 * |
王继超: "基于UML动态模型的测试用例生成方法研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108763680A (zh) * | 2018-05-16 | 2018-11-06 | 北京交通大学 | 基于扩展uml模型的安全苛求系统的故障树生成方法 |
CN110569578A (zh) * | 2019-08-26 | 2019-12-13 | 奇瑞汽车股份有限公司 | 一种线束图导线路径快速计算方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Prömel et al. | The Steiner tree problem: a tour through graphs, algorithms, and complexity | |
Bukatin et al. | Partial metric spaces | |
Escoffier et al. | Single-peaked consistency and its complexity | |
CN106156082B (zh) | 一种本体对齐方法及装置 | |
CN104699883A (zh) | 采用紧凑多波形表示的电路设计评估 | |
CN106294148B (zh) | 基于扩展符号变迁系统的c语言程序软件验证方法及装置 | |
JP2018132969A (ja) | 文章作成装置 | |
CN112083933A (zh) | 一种基于强化学习的服务功能链部署方法 | |
CN110383302A (zh) | 小马约拉纳费米子代码 | |
CN109189941A (zh) | 用于更新模型参数的方法、装置、设备和介质 | |
CN107678953A (zh) | 基于uml图形的路径生成方法、系统及存储介质 | |
CN106815100A (zh) | 接口测试方法及装置 | |
Abu-Aisheh et al. | Anytime graph matching | |
US20120290282A1 (en) | Reachability analysis by logical circuit simulation for providing output sets containing symbolic values | |
WO2024119831A1 (zh) | 问题生成方法、生成装置及计算机设备和存储介质 | |
CN116167445B (zh) | 量子测量模式的处理方法、装置及电子设备 | |
US9471723B2 (en) | Input parsing and array manipulation in reservoir simulation | |
Blumenthal et al. | Upper bounding graph edit distance based on rings and machine learning | |
CN105094209B (zh) | 数据的修复方法及装置 | |
Slaney | The crisis in finite mathematics: Automated reasoning as cause and cure | |
Zhao et al. | A symbolic algorithm for shortest EG witness generation | |
Pelc et al. | Efficient grid exploration with a stationary token | |
CN108089956A (zh) | 验证接口的返回数据的方法及系统 | |
Dey et al. | Cognitive complexity: A model for distributing equivalent programming problems | |
CN116187458B (zh) | 量子电路处理方法、装置及电子设备 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180209 |
|
RJ01 | Rejection of invention patent application after publication |