基于UML建模的软件测试系统设计

2016-11-21 09:47陈锐忠魏理豪梁哲恒
电子设计工程 2016年21期
关键词:库所测试用例软件测试

陈锐忠,魏理豪,梁哲恒

(1.南方电网公司信息化评测重点实验室 广东 广州 510600;2.广东电网有限责任公司信息中心 广东 广州 510600)

基于UML建模的软件测试系统设计

陈锐忠1,2,魏理豪1,2,梁哲恒1,2

(1.南方电网公司信息化评测重点实验室 广东 广州 510600;2.广东电网有限责任公司信息中心 广东 广州 510600)

针对当前UML建模在软件设计中的广泛应用,提出一种基于模型的软件自动化测试方案。为实现测试方案,通过UML状态图对软件模型进行构建,同时利用EFSM模型生成路径转换序列,借助Petri网的可覆盖性、可达性,将UML状态图转换为Petri网,再通过Petri网对上述转换的路径进行分析,从而消除了传统测试用例生成时存在的缺点,最后通过实验验证了该算法的严谨性和有效性。

UML建模;软件测试;EFSM模型;Petri网;用例生成

随着现代软件开发中UML建模工具的广泛应用,如何对基于UML建模的开发模型进行测试,成为提高软件开发质量的关键。而当前针对软件测试的方案中包括V、W、H 3种测试模型。其中V型模型测试主要进行单元测试和集成测试;W模型则在软件的测试中增加不同阶段的同步验证和确认,从而减少了开发的时间;H模型则更加贴近实际,是对某个功能进行具体的测试与执行,即每个测试过程都可通过这个步骤对某个特定的功能进行测试。而测试用例生成作为其中比较突出的问题,很多研究者都提出通过模型的方式对其进行解决,如通过嵌入式扩展方案、EFSM模型等。文中则提出一种基于Petri网与UML的软件自动化测试设计方案,并对该方案的实现进行了详细的阐述。

1 Petri网相关定义

Petri网作为现代计算机软件开发中一种常用的分布式系统建模、分析和设计所采用的工具,其比较适合用于对系统进程、冲突、异步等关系进行描述。与其他的系统模型星币,该模型可对设计中的并发问题进行准确的描述,从而使得该模型具有很大的优势。Petri网不仅可清晰的描述系统结构,还可对系统的动态行为进行描述。Petri网具有非常丰富的描述手段、严格的数学表示式、系统分析技术和图形表达方法,与其他的软件模型相比,在图形化的表达和分析方面更具有优势。因此在本测试方案中,通过Petri网对软件系统进行仿真、建模、分析和测试。

定义一:

定义满足以下几个条件的三元组被称为一个网,表达式为:N=(S,T;F)

其中Dom(F)={x∈S∪T|∃y∈S∪T:(x,y)∈F};cod(F)= {x∈S∪T|∃y∈S∪T:(y,x)∈F}

在上述的定义中,S和T表示互不相交的两个集合,都为Petri网当中的基础元素。其中S和T分别表示为元,F表示为网的有向弧集。

定义二:

假设N=(S,T;F)表示为一个网络,对任意的x∈P∪T,记作

其中·x表示为x的前置的集合,而x·则为x的后置的集合,·x∪x·为x的外延。

2 UML模型到Petri网的转换

2.1UML模型到Petri网转换思路

在系统的设计中,UML建模通常用于系统分析和设计阶段的建模,但UML为半形式化,导致很难对关键的系统模型进行语义分析,并限制了其有效性。因此,必须将传统的UML模型全部转换为 Petri网,并借助现有的工具对其性质进行分析和验证,以此验证该模型在编程开发中存在的问题,提高系统运行的有效性。而在UML中,通常用状态图来对某对象按事件排序的行为建模。文中在将UML状态图进行建模的过程中,通过Petri网中的库对对象的状态进行表示,通过变迁来表示不同状态之间的转换,而转换的条件则都通过库所进行表示,其中转换条件是否能够成立则是看库所中是否有托肯。具体转换规则则如表1。

表1 状态图到Petri的转换规则

而结合状态图的结构,不同的结构具有不同的转换规则,如在初始、结束、简单等状态下采用的规则则不同。文中则给出一个完整的转换示例对其进行说明,具体如图1所示。

图1 UML模型到Petri网转换示例

2.2转换设计

根据图1实例所反映的映射规则,本文将UML到Petri网的具体转换流程设计为如图2所示。

图2 UML模型到Petri网转换流程

通过图2看出,首先将其中的UML模型文件导出,此后通过模型转换将原始的UML直接转换为与其相对应的Petri网,最后再通过Petri分析技术对设计的模型进行分析验证,从而查找在开发过程中存在的各种缺陷和问题,提高测试的准确性和有效性。其具体的实现方案为:

1)对输入的UML状态图进行解析,从而读出文件当中所有的元素,在读出的文件中找出存在的所有Statemachine元素,并将该类型的元素全部放入到 list链表当中,其中每个元素则表示为相对应的状态图;

2)对list中的每个元素进行解析,找到statemachine元素的初始状态,并将该初始状态直接转换为与其对应的库所,标记该初始状态,并将初始状态的转移直接转换为在Petri网当中所对应的迁移,形成弧并与之连接;

3)标记被访问的目标的状态,并创建在不同状态下的Petri网所对应的库所,同时创建迁移到库所的弧与之连接;

4)循环前3个步骤,直到完成对所有导入状态图的标记,最后转换结束。

3 转换工具设计与实现

要实现上述的关键,需要解决模型导入和导出问题。在对模型的导入中采用Eclipse插件对UML模型进行导入。而在导入中最为重要的这是对其中的信息进行提取,其中在导入的情况下,对状态的描述中则利用xml,具体为:

在上述的描述中,SimpleState表示为状态,xmi.id表示为状态的唯一标识,xmi.idref表示为状态在通过转换之后的id。在转换中首先提取出名称D,再提取出上述的id,通过转换得到Petri网下的状态库所描述,代码则为:

通过Petri网的坐标,定义出其中的库所的大小。

4 具体试验验证

通过上述对UML建模测试流程的分析,本文则以某自动售货机的UML状态图为例进行测试。同时结合相关的测试工具,选择Myeclipse中的UML2作为该系统的建模工具,具体的状态图则如图3所示。

图3 自动售货机状态图

在图3当中,总共存在着6个不同的状态点,根据上述的规则可将其分为起始、终止、Eject等总共9个不同的结构,通过规则将其转换为库所,从而得到如图4所示的Petri网结果。

图4 Petri网转换图

该转换图实现的核心代码为:

由此,通过图4可很快地对不同的阶段程序进行测试,从而查看整体运行的情况。

5 结束语

文中针对UML状态图的测试用例问题,设计了基于Petri网的转换算法,并通过Myeclipse开发工具对上述的算法进行了试验验证,从而证明该方法在验证软件工程开发中的系统功能的有效性,为系统软件功能的测试提供了新的参考。

[1]陈志德,曾凡平.UML状态图和Petri网络在类测试用例生成的应用[J].小型微型计算机系统,2010,31(3):519-522.

[2]佟伟光.软件测试[M].北京:人民邮电出版社,2008.

[3]覃钊璇,曾一,柴艳欣,等.基于UML活动图的多态性测试用例生成[J].计算机工程,2010,36(11):83-84.

[4]赵俊峰,周建涛,邢冠男.UML活动图到Petri网的转换方法及实现研究[J].计算机科学,2014(7):143-147.

[5]李龙澍,胡正梁.基于Petri网的UML形式化建模应用分析[J].计算机技术与发展,2010(4):76-79,83.

[6]马超,林红昌,丁佐华.基于UML和Petri网的建模及其验证[J].浙江理工大学学报,2010(6):889-894.

[7]张广泉,戎玫,陈琳琳.UML与软件体系结构描述语言之间的转换机制研究[J].计算机科学,2007(6):262-264,269.

[8]王建光,段富.一种UML模型到XML模型的转换方法[J].计算机技术与发展,2007(7):123-126,174.

Software testing system design based on UML modeling

CHEN Rui-zhong1,2,WEI Li-hao1,2,LIANG Zhe-heng1,2
(1.CSG Key Laboratory of Software Testing,Guangzhou 510600,China;2.Guangdong Power Grid Information Center,Guangzhou 510600,China)

In view of the wide application of UML modeling in software design,a new model based software testing scheme is proposed.In order to implement the test plan,the software model is constructed by UML state diagram,and the EFSM model is used to generate the path transformation sequence.The UML state graph is transformed into Petri net and the Petri net is analyzed.

UML model;software testing;EFSM model;Petri net;use case generation

TN0

A

1674-6236(2016)21-0057-03

2015-10-31稿件编号:201510241

陈锐忠(1985—),男,广东揭阳人,博士。研究方向:电力信息化,计算机体系结构。

猜你喜欢
库所测试用例软件测试
回归测试中测试用例优化技术研究与探索
基于FPGA的Petri 网模拟器设计与实现
基于SmartUnit的安全通信系统单元测试用例自动生成
基于OBE的软件测试课程教学改革探索
航天软件测试模型构建与应用
EXCEL和VBA实现软件测试记录管理
软件测试工程化模型及应用研究
基于依赖结构的测试用例优先级技术
基于一种扩展模糊Petri网的列车运行晚点致因建模分析
基于模糊Petri网的数控机床主轴故障诊断*