CN101853201A - 一种基于着色petri网的软件并行测试方法及工具 - Google Patents
一种基于着色petri网的软件并行测试方法及工具 Download PDFInfo
- Publication number
- CN101853201A CN101853201A CN 201010180135 CN201010180135A CN101853201A CN 101853201 A CN101853201 A CN 101853201A CN 201010180135 CN201010180135 CN 201010180135 CN 201010180135 A CN201010180135 A CN 201010180135A CN 101853201 A CN101853201 A CN 101853201A
- Authority
- CN
- China
- Prior art keywords
- test
- resource
- software
- relevant
- task
- 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
- 238000004040 coloring Methods 0.000 title claims abstract description 11
- 238000010998 test method Methods 0.000 title claims abstract description 5
- 238000012360 testing method Methods 0.000 claims abstract description 92
- 238000000034 method Methods 0.000 claims abstract description 17
- 238000012795 verification Methods 0.000 claims abstract 2
- 238000013459 approach Methods 0.000 claims description 2
- 230000007704 transition Effects 0.000 description 17
- 238000005516 engineering process Methods 0.000 description 5
- 239000003550 marker Substances 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 208000003569 Central serous chorioretinopathy Diseases 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公布了一种基于着色petri网软件并行测试方法,本发明所述方法包括如下步骤:a)对软件测试任务集和资源集进行分析;b)根据分析结果对其进行测试分类,确定是串行测试或并行测试;c)生成串行任务序列或并行任务序列;d)检验所建序列的正确性,若不正确,返回上一级;e)序列真确,对其建立着色petri网模型;f)对模型进行可达性分析和验证;g)处理分析结果。采用本发明所提供的方法,简化了软件测试任务的复杂度,节约了测试时间,提高了测试效率。
Description
技术领域
本发明涉及软件测试方法,特别地涉及一种基于着色petri网的软件并行测试方法。
背景技术
目前在软件开发建模中,很少有模型语言既能够验证软件功能流程的正确性,又能评价软件性能,而着色Petri网(简称CPN)可同时满足这两方面的要求。CPN是在基本Petri网基础上提出的一种高级Petri网和层次Petri网,是一种可以对系统进行检验和仿真的有色建模语言。它通过将相似组件或行为进行折叠的方式来表征一个具有若干相似部件的大系统,从而解决了系统模型规模不可控制的问题。CPN除具有普通Petri网所具有的可描述系统动态特性、表示系统竞争和冲突现象等优点外,还具有模型结构简单、可重用性强等优点。CPN中颜色集的概念能够表示更为丰富的数据类型,从而降低模型的复杂度。此外,CPN弥补了普通Petri网没有数据和分层分解的缺陷,对数据结构和层次分解进行了很好的结合,应用CPN层次分解可以方便的表述复杂系统的层次和内部关系。
面向对象的软件系统转换为并行面向对象的着色Petri网模型,最后利用谓语逻辑语言Prolog自动产生基于规约的测试用例。RobertG.Pettit IV和Hassan Gomaa采用将CPN和UML相结合来提高面向对象软件设计可靠性的方法,尤其适用于并发式系统。该方法ML描述实际状态,CPN来模拟体系结构的功能流程,分析并发行为。通过CPN对原始UML模型的分析结果,来提高设计的质量和最终系统的可靠性。V.E.Kozura、V.A.Nepomniaschy和R.M.Novikov提出一种用来分析、模拟和验证CPN模型的工具PNV(Petri net verifier),该工具由两部分组成,一部分产生CPN内部结构和模型输入CPN的C++程序,另一部分是检测模型的组件。该文还描述了用CPN模拟令牌通信协议的模型检测试验。
提高自动测试系统的性能是当前测试领域的一个重要研究内容。随着测试设备和测试方法的发展,传统的自动测试系统串行任务调度和系统组建方法已成为限制系统性能的瓶颈,并行测试技术通过增加单位时间内UUT的数量来提高系统的吞吐率,通过减少仪器及CPU的空闲时间来提高设备的利用率,通过对贵重设备的共享来节约测试成本,因此采用并行测试技术可大大减少测试时间,降低测试成本,并行测试技术的引入是自动测试技术发展的一项重大的应用突破,是下一代ATS的主要特征之一。
发明内容:
本发明要解决的技术问题是建立基于着色petri网的软件并行测试模型,用可达性方法对模型进行分析和验证的方法。
为了解决以上技术问题,本发明实现自动化建立软件测试模型方法包括如下步骤:
a)根据测试任务集和资源集,分析其为父任务,子任务,祖先任务,数据相关,资源相关或控制相关。
b)依据分析结果,若其各自资源独立,并无相互依赖关系,测试任务对于各自的所占有的资源也相互独立,可把它归为串行测试,若测试任务和资源相互依从,互为父任务,子任务,祖先任务,并且数据相关,资源相关,控制相关,可把它归为并行测试。
c)对于软件串行测试和并行测试建立各自所对应的petri网模型
d)对于各自的模型建立可达树。
e)对于可达树模型进行可达性分析和验证。
附图说明:
图1:软件测试流程图
图2:软件并行测试序列1
图3:软件并行测试序列2
图4:软件并行测试序列3
图5:软件并行测试序列3对应的着色petri测试模型
图6:petri网模型可达树分析图
具体实施办法:
并行任务调度的基本概念
[并行测试]:设t1,t2,t3,…tm为某一测试应用中的各项测试任务,若t1,t2,t3,…tm分别在m个不同的测试系统上同时异步测试的结果等同于t1,t2,t3,…tm按所有可能的任意顺序测试的结果,则称t1,t2,t3,…tm是可并行测试的。
[控制相关]:设tA,tB为一测试应用中的两个测试任务,若tA的测试能够决定tB是否测试,则称tB控制相关于tA;否则,称之为控制无关。其中tA的测试将决定tB或tC是否测试,故tB与tC都控制相关于tA。
[父任务]:设tA,tB为一测试应用中的两个测试任务,且tA优先于tB,若tA与tB数据相关或控制相关,则称在该测试应用中tA是tB的父任务。
[祖先任务]:设测试任务集T中有任务t1,t2,t3,…tm,且ti-1是ti(i=2,…m)的父任务,则称t1是tm的祖先任务。
资源相关不具有传递性,虽然任务tA,tB和tc占用的资源集RA,RB和Rc有关系并且但不能推出一定有例如对于RA={r1,r2},RB={r2,r3,r4},RC={r3},有因此任务tA和tc资源无关。
[相关资源状态一致]:设tA和tB为两个资源相关的测试任务,RA∩RB=Rc且若RC在tA和tB测试过程中状态相同,则称tA和tB相关,资源状态一致(Consistent State of Correlate Resource,CSCR),否则,称之为相关资源状态相异(Inconsistent State of CorrelateResource,ISCR)。
工作流程:
1.1)软件测试任务集T={t1,t2,t3,t4,t5,t6,t7,t8},软件资源集R={r1,r2,r3,r4,r5,r6}和任务与资源的占有情况为t1<r6>t2<r3,r6>t3<r1,r6>t4<r1,r2>t5<r3>t6<r2,r3>t7<r2,r4>t8<r2,r5>,且假设t6控制相关于t1,t2的输出数据是t3的输入数据。
本发明的测试序列建立思想是:对于给出的软件测试任务集和资源集若互相独立,各个任务对资源的占有情况互相独立,没有祖先关系,我们可以对其各个任务建立串行测试序列,其建立过程比较简单,若测试任务和资源占有情况如以上所示,建立测试序列思想如下:
第一步:分析此八个任务和六个资源占有情况,由于t2的输出数据是t3的输入数据,所以t2测试在t3之前,t1测试资源集r6也是t2测试所要占有的资源集,t2还多占有一个资源集r3与t1并无关系,因此可安排t1在t2测试之前,t3和t4共同占有资源集r1,可安排t3在t4测试之前,所以可得测试序列图2。
第二步:t5与t2共同占有资源集r3,并且t5和t1占有资源集各不相同,所以可以安排t5在t2测试之前,t5和t1并行测试,由于t2和t6共同占有资源集r3,且t3和t6所占有的资源集各不相同,t4和t6共同占有资源集r2,t6控制相关于t1,所以可安排t6在t2测试之后,t3和t6并行测试,t6在t4测试之前,生成序列图3。
第三步:t7和t8共同占有资源集r2,t8和t6共同占有资源集r2,t7与r5和t1占有资源各不相同,t8和t2占有资源各不相同,所以可安排,t7与t5和t1并行测试,t8和t2并行测试,t7在t8测试之前,t8在t6测试之前,生成序列图4。
1.2)完成了软件并行测试序列的建立,但图4不能很好的反应资源相互共享,依赖关系,下边建立基于着色petri网的并行测试模型,用椭圆表示库所,用矩形表示变迁。,两个或两个以上的标记构成了复合标记类型,用<ri,rj>表示。同时,还需要为每个颜色的标记声明一个变量,并将变量绑定到相应的标记,类型声明:
Type r1=with r1,Type r2=with r2,Type r3=with r3
Type r4=with r4,Type r5=with r5,Type r6=with r6
Type H=with<ri,rj>,Var<ri,rj>:H,Var vi:ri=1,2,3,…6
图5中有色标记均用资源名称标注出来,弧表达式和警界函数表达式中的变量v1,v2,v3,v4,v5,v6,分别对应着标记颜色r1,r2,r3,r4,r5,r6,,因此变迁的绑定时确定的,可将引发步称为变迁,将引发序列称为变迁序列,
1.3)完成了软件并行测试的着色petri网模型的建立,下面运用可达树分析方法对所建立的模型进行分析,其步骤包括以下部分。
//---可达性算法
FindFunc(v){
int Node[S_count];
int Flag=0;
NodeCopy(v,*Node[]);//获取节点Token集
NodeFind(Node[]);
for(int i=0;i<Keep_count;i++){
Flag=NodeCmp(Node[]);
if(Flag)
print(“M可达”);
else print(“M不可达”);}}
//查找
NodeFind(Node[]){
for(int i=0;i<Node_count;i++){
Find(Node[i]);//比较
Keep(i);}}//记录
//比较
int NodeCmp(Node[]){
for(int i=0;i<Root_count;i++){
if(Find(Node[i]));
Return 1;}}
初始标记M0=((p1,r6)(p9,r3)(p10,r2,r4)表示系统在初始状态下所有资源都可供分配。在初始标识M0下,变迁t1,t5,t7是并发使能的。
第一步:在初始标记M0=((p1,r6)(p9,r3)(p10,r2,r4))t2,t8下,进行变迁t1,t5,t7并行测试,变迁结束后,得到新的库所和托肯,((p2,r6)(p3,r3)(p11,r2,r4)
第二步:变迁形成的库所加入新的成员库所M1=((p2,r6)(p3,r3)(p11,r2,r4)(p12,r5))进行第二次变迁,t2,t8并行测试。
第三步:变迁后形成新的标识M2=((p4,r3,r6)(p5,r1)(p13,r2,r5)(p10,r4)),同理方法进行t3,t6变迁,按此方法我们得到可达树图6。
图6可达树各结点中库所所包含的标记不超过两个,且当库所包含两个标记时,标记颜色各不相同,因此所建图5petri网是安全的,有界的。
可达树中各变迁至少引发一次,没有从不引发的变迁。树中每个标号都有后继标号,即每个标号都是可以引发的。对于可达集R(M0),M0=((p1,r6)(p9,r3)(p10,r2,r4),每一标号M′都有一条从根M0到M′的变迁路径,即(β>M′.根据活性的定义,可知图5的Petri网是活的,不会有死锁发生。
在引发变迁t6前,其它变迁都只能引发有限次,对于任意一个变迁,在它引发之前,其它变迁都只能引发有限次,因此图5的petri网是公平的。
M0到M4之间可以周而复始的进行,形成一个闭环,所以图5所建立的petri网是可逆的。
Claims (3)
1.一种基于着色petri网的软件并行测试方法,其特征在于,包括以下步骤:
1.1)根据测试任务集和资源集,分析其为父任务,子任务,祖先任务,数据相关,资源相关或控制相关。
1.2)依据分析结果,若其各自资源独立,并无相互依赖关系,测试任务对于各自的所占有的资源也相互独立,可把它归为串行测试,若测试任务和资源相互依从,互为父任务,子任务,祖先任务,并且数据相关,资源相关,控制相关,可把它归为并行测试。
1.3)对于串行测试和并行测试建立各自所对应的petri网模型。
1.4)对于各自的模型建立可达树。
1.5)对于可达树模型进行可达性分析和验证。
2.本发明根据根据测试任务集和资源集之间的关系,其特征是对软件测试对象进行分析归类,其分析方法所述1.1)。属于串行调度的建立串行测试序列集,属于并行的我们依据并行调度算法建立并行测试序列集。这种软件测试方法可以在相同时间内测试多个软件对象,提高了测试效率,对贵重设备的共享来节约测试成本。
3.本发明对于软件并行测试建立起了着色petri网模型,其方法所述1.2)。其特征是根据着色petri网的可达性方法对其进行分析和验证,其分析验证所述1.3)。解决了软件并行测试执行覆盖率问题。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010180135 CN101853201A (zh) | 2010-05-24 | 2010-05-24 | 一种基于着色petri网的软件并行测试方法及工具 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010180135 CN101853201A (zh) | 2010-05-24 | 2010-05-24 | 一种基于着色petri网的软件并行测试方法及工具 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101853201A true CN101853201A (zh) | 2010-10-06 |
Family
ID=42804706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010180135 Pending CN101853201A (zh) | 2010-05-24 | 2010-05-24 | 一种基于着色petri网的软件并行测试方法及工具 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101853201A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102141959A (zh) * | 2011-03-15 | 2011-08-03 | 中国科学院研究生院 | 一种受上下文无关文法约束的测试用例生成方法 |
CN102419729A (zh) * | 2010-10-26 | 2012-04-18 | 微软公司 | 并行测试执行 |
CN104361183A (zh) * | 2014-11-21 | 2015-02-18 | 中国人民解放军国防科学技术大学 | 基于模拟器的微处理器微体系结构参数优化方法 |
CN104361182A (zh) * | 2014-11-21 | 2015-02-18 | 中国人民解放军国防科学技术大学 | 基于Petri网的微处理器微体系结构参数优化方法 |
CN105786701A (zh) * | 2016-01-18 | 2016-07-20 | 龙测科技(北京)有限公司 | 一种手机app的并行测试方法及系统 |
CN106502892A (zh) * | 2016-10-20 | 2017-03-15 | 杭州电子科技大学 | 一种基于uml模型的测试用例优先排序方法 |
CN106547696A (zh) * | 2016-10-28 | 2017-03-29 | 中国人民解放军理工大学 | 一种面向工作流系统的测试用例生成方法及装置 |
CN106708719A (zh) * | 2015-08-04 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 业务功能的测试方法和装置 |
CN106997411A (zh) * | 2017-03-22 | 2017-08-01 | 中国电子科技集团公司第二十八研究所 | 基于着色Petri网能力使命线程形式描述与验证方法 |
CN109240918A (zh) * | 2018-08-20 | 2019-01-18 | 中国平安人寿保险股份有限公司 | 大数据冒烟测试方法、装置、计算机设备和存储介质 |
CN109684067A (zh) * | 2018-12-29 | 2019-04-26 | 中电科仪器仪表有限公司 | 一种任务调度规划自动生成和运行系统及方法 |
CN109739196A (zh) * | 2019-01-11 | 2019-05-10 | 西安电子科技大学 | 含有不可观与不可控事件的自动制造系统无死锁控制方法 |
CN111124694A (zh) * | 2019-11-14 | 2020-05-08 | 武汉纺织大学 | 一种基于petri网的可达图的死锁检测和解决方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101630253A (zh) * | 2009-07-21 | 2010-01-20 | 任爱华 | 基于面向对象Petri网的并发软件开发方法和系统 |
-
2010
- 2010-05-24 CN CN 201010180135 patent/CN101853201A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101630253A (zh) * | 2009-07-21 | 2010-01-20 | 任爱华 | 基于面向对象Petri网的并发软件开发方法和系统 |
Non-Patent Citations (1)
Title |
---|
《计算机技术与发展》 20070228 方贤文,赵艳,殷志祥 基于Petri网的软件测试分析 96-98,102 1-3 第17卷, 第2期 2 * |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102419729A (zh) * | 2010-10-26 | 2012-04-18 | 微软公司 | 并行测试执行 |
CN102419729B (zh) * | 2010-10-26 | 2014-12-17 | 微软公司 | 并行测试执行 |
CN102141959A (zh) * | 2011-03-15 | 2011-08-03 | 中国科学院研究生院 | 一种受上下文无关文法约束的测试用例生成方法 |
CN102141959B (zh) * | 2011-03-15 | 2013-10-30 | 中国科学院研究生院 | 一种受上下文无关文法约束的测试用例生成方法 |
CN104361183A (zh) * | 2014-11-21 | 2015-02-18 | 中国人民解放军国防科学技术大学 | 基于模拟器的微处理器微体系结构参数优化方法 |
CN104361182A (zh) * | 2014-11-21 | 2015-02-18 | 中国人民解放军国防科学技术大学 | 基于Petri网的微处理器微体系结构参数优化方法 |
CN104361183B (zh) * | 2014-11-21 | 2017-09-01 | 中国人民解放军国防科学技术大学 | 基于模拟器的微处理器微体系结构参数优化方法 |
CN104361182B (zh) * | 2014-11-21 | 2017-08-25 | 中国人民解放军国防科学技术大学 | 基于Petri网的微处理器微体系结构参数优化方法 |
CN106708719A (zh) * | 2015-08-04 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 业务功能的测试方法和装置 |
CN105786701A (zh) * | 2016-01-18 | 2016-07-20 | 龙测科技(北京)有限公司 | 一种手机app的并行测试方法及系统 |
CN105786701B (zh) * | 2016-01-18 | 2019-07-26 | 龙测科技(北京)有限公司 | 一种手机app的并行测试方法及系统 |
CN106502892A (zh) * | 2016-10-20 | 2017-03-15 | 杭州电子科技大学 | 一种基于uml模型的测试用例优先排序方法 |
CN106502892B (zh) * | 2016-10-20 | 2018-11-13 | 杭州电子科技大学 | 一种基于uml模型的测试用例优先排序方法 |
CN106547696B (zh) * | 2016-10-28 | 2019-05-28 | 中国人民解放军理工大学 | 一种面向工作流系统的测试用例生成方法及装置 |
CN106547696A (zh) * | 2016-10-28 | 2017-03-29 | 中国人民解放军理工大学 | 一种面向工作流系统的测试用例生成方法及装置 |
CN106997411A (zh) * | 2017-03-22 | 2017-08-01 | 中国电子科技集团公司第二十八研究所 | 基于着色Petri网能力使命线程形式描述与验证方法 |
CN106997411B (zh) * | 2017-03-22 | 2020-09-29 | 中国电子科技集团公司第二十八研究所 | 基于着色Petri网能力使命线程形式描述与验证方法 |
CN109240918A (zh) * | 2018-08-20 | 2019-01-18 | 中国平安人寿保险股份有限公司 | 大数据冒烟测试方法、装置、计算机设备和存储介质 |
CN109684067A (zh) * | 2018-12-29 | 2019-04-26 | 中电科仪器仪表有限公司 | 一种任务调度规划自动生成和运行系统及方法 |
CN109684067B (zh) * | 2018-12-29 | 2020-10-16 | 中电科仪器仪表有限公司 | 一种任务调度规划自动生成和运行系统及方法 |
CN109739196A (zh) * | 2019-01-11 | 2019-05-10 | 西安电子科技大学 | 含有不可观与不可控事件的自动制造系统无死锁控制方法 |
CN111124694A (zh) * | 2019-11-14 | 2020-05-08 | 武汉纺织大学 | 一种基于petri网的可达图的死锁检测和解决方法 |
CN111124694B (zh) * | 2019-11-14 | 2023-10-27 | 武汉纺织大学 | 一种基于petri网的可达图的死锁检测和解决方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101853201A (zh) | 一种基于着色petri网的软件并行测试方法及工具 | |
CN109684681B (zh) | 应用uvm验证平台的高层次化验证方法 | |
CN106649103B (zh) | 一种安卓应用程序自动化黑盒测试的方法及系统 | |
CN104965750B (zh) | 基于Python语言的Rapidio切换器逻辑仿真验证平台及方法 | |
JP2004510258A (ja) | ハードウェアとソフトウェアを備えた電子システムの性能レベルモデリング及びシミュレーション | |
CN106940428A (zh) | 芯片验证方法、装置及系统 | |
CN100511149C (zh) | 逻辑仿真测试系统和方法 | |
CN101247292B (zh) | 基于通用测试仪表应用编程接口的测试设备及测试方法 | |
CN105608247A (zh) | 面向ima资源安全性分析的aadl到ecpn模型转换方法 | |
CN101673198A (zh) | 一种验证uml模型中动态行为与时序契约的一致性的方法 | |
CN109739740A (zh) | 一种aadl模型组合形式化验证方法 | |
CN110991040A (zh) | 一种复杂产品协同仿真环境构建方法 | |
CN108121657A (zh) | 基于系统模型的可编程逻辑器件软件仿真验证系统 | |
Li et al. | Research on mobile multimedia broadcasting service integration based on cloud computing | |
CN114757135A (zh) | 一种基于需求驱动验证的可编程逻辑器件验证方法及系统 | |
CN114896108A (zh) | 测试验证系统 | |
CN105242958B (zh) | 一种虚拟试验系统与hla仿真系统数据交换方法 | |
Handley et al. | Maintaining the consistency of sysml model exports to XML metadata interchange (XMI) | |
CN106997411B (zh) | 基于着色Petri网能力使命线程形式描述与验证方法 | |
CN102231132A (zh) | 一种基于SystemC的AADL软构件模型仿真测试实例生成方法 | |
Fiergolski | Simulation environment based on the Universal Verification Methodology | |
CN105787141B (zh) | 一种复杂武器系统作战过程的协同仿真方法及系统 | |
CN116451621A (zh) | 一种功能覆盖率代码生成方法、系统、设备及介质 | |
CN114780143A (zh) | 基于uvm的can控制器激励序列生成方法、装置和验证平台 | |
Aynsley | Easier UVM for functional verification by mainstream users |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20101006 |