没有合适的资源?快使用搜索试试~ 我知道了~
基于Petri网的自然语言需求描述测试场景生成方法的论证和应用示例
可在www.sciencedirect.com在线获取理论计算机科学电子笔记329(2016)123-148www.elsevier.com/locate/entcs基于Petri网的自然语言需求描述测试场景生成Edgar Sarmiento埃德加·萨米恩托1,2 胡里奥·C S. P. Leite3信息学系里约热内卢天主教大学巴西Eduardo Almeniah4里约热内卢联邦农村大学数学系巴西里约热内卢Guina Sotomayor AlzamoraInstitutodeMatema′ticayCienciasA fines国立工程大学秘鲁利马摘要从自然语言(NL)中的功能需求生成测试通常是耗时且容易出错的,特别是在复杂的项目中。在这种情况下,形式化的表示,如Petri网越来越多地被用作自动化测试场景生成的输入。 然而,形式表示并不是微不足道的,它需要对正式建模有很强的了解。 在本文中,我们提出了一种方法来生成测试场景,作为输入的限制形式的自然语言(RNL)的需求规格说明。这种方法自动将RNL需求指定为Scenarios转换为可执行的Petri-Net模型;这些Petri-Net用作测试场景生成的输入模型。我们的方法检查输入模型的质量,旨在减少测试场景生成过程中的时间和开销。 所提出的方法的可行性论证是基于一个例子,描述方法操作的用法保留字:场景,需求,Petri网,测试,测试场景。1感谢CAPES资助机构的财政支持2电子邮件地址:ecalisaya@inf.puc-rio.br3电子邮件地址:julio@inf.puc-rio.br4电子邮件地址:almentero@ufrrj.br5电子邮件:guinas@gmail.comhttp://dx.doi.org/10.1016/j.entcs.2016.12.0081571-0661/© 2016作者。出版社:Elsevier B.V.这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。124E. Sarmiento等人/理论计算机科学电子笔记329(2016)1231引言软件测试是最常用的验证技术之一,这种方法提高了最终产品的质量,特别是检查软件行为是否符合其要求。然而,测试生成和执行任务仍然是相当昂贵的,通常是手工完成的,那么测试过程的自动化是一个具有挑战性的课题。基于模型的测试(MBT)是这些任务自动化的替代方案,其中测试来自系统规范。因此,预期的系统行为是使用形式规范符号描述的[2]。MBT是指黑盒测试方法,其中测试场景和预言是从被测系统(SUT)的形式和功能模型自动生成的。MBT的一个重要好处是,从被测系统的模型自动生成测试场景,并通过执行被测系统并将其结果与预期结果进行比较来自动验证这些测试场景MBT的主要缺点是模型构建和选择合适的正式符号[24],通常大多数提出的方法需要人工干预或创建额外的复杂行为模型。根据[25],这严重阻碍了它们在实践中的适用性在现有的大多数生成基于模型的系统测试场景的方法中,测试人员通常将系统分解为不同的使用场景,然后为每个确定的场景创建形式化表示。测试场景是从这些中间形式表示中导出的根据[2],这些规范的质量对于有效的测试活动至关重要;因此,希望通过一些(半)正式的注释来描述预期的系统行为。形式符号的例子是Petri网[17]或通信顺序进程(CSP)[19]。(半)形式化符号的使用促进了测试自动化的过程。然而,这种做法是昂贵的,并没有在工业实践中广泛使用。另一方面,为了便于客户和开发人员之间的沟通,基于自然语言的表示经常用于需求工程。在这种情况下,功能需求被表示为场景,并通过基于用户视角的特定事件流进行描述场景的使用有助于理解应用程序中的特定情况,优先考虑他们的行为[14]。一些用于编写场景的最突出的语言是用例描述的限制形式[5],[9];场景表示[14]; UML动态行为图;和消息序列图[1]。虽然这些语言中的一些提供了一个可访问的可视化模型,他们缺乏正式的语义,以支持进一步的分析或测试生成。在这种情况下,情景规范通常是非正式或半正式的,并且由于自然语言的模糊性,它们不能直接用于MBT活动。为了从这些场景中执行自动化MBT,有必要:(i)检测和修复场景中的缺陷;(ii)将它们从非正式的形式化表示,如Petri网;(iii)从形式化表示导出测试E. Sarmiento等人/理论计算机科学电子笔记329(2016)123125表示。Petri-Nets [17]是基于严格数学理论的形式化模型,它们为并发系统的建模和仿真以及通过可达树分析属性提供了数学上的简化。将文本场景转换为Petri网模型以及从这些正式模型生成测试场景是具有挑战性的主题,因为这些过程中涉及的任务成本很高,特别是当我们考虑大型系统时。我们在这里提出了一种自动化的方法来生成测试场景从自然语言的需求规格说明;我们的方法使用RNL描述场景(符合元模型)作为输入,派生出一个等效的Petri网模型(符合一个受限制的Petri网元模型),并生成测试场景作为输出(事件转换序列和保护条件)。该方法由场景验证模块(缺陷检测)、模型转换方法(定义为映射规则)和遍历Petri网可达树生成测试场景的准则组成这些阶段正在C L[4]原型工具。本文的组织结构如下。第2节描述了该方法的概述。第3节介绍了用于编写场景的语言第4节描述了从场景到Petri网的转换第5节介绍了测试场景生成策略。最后,第六节介绍了与我们的建议相关的一些工作,结论,局限性和对未来工作的一些建议2策略概述出于实际原因,为了便于与利益相关者沟通,面向用户的方法广泛使用非正式或半正式表示。面向用户的方法在行业需求工程活动中占主导地位;并且,这种观点中的关键要素之一是场景的概念。在文献中,术语场景在不同的上下文中具有不同的含义,并且场景和用例之间没有明确的区别虽然有些作者认为每个场景对应于一个用例[8],但其他人将场景定义为用例步骤的序列,这些步骤表示通过一个用例[5]。根据Glinz [8],场景可以包括交互步骤的具体序列(实例场景)或可能的交互步骤的集合(类型场景)。用于详细描述场景的最常见组件是:标题/名称、目标、前置条件、后置条件、参与者、事件/主流程和事件/替代流程。所提出的方法侧重于场景规范,因为这些场景规范被用作设计、编码和测试等其他开发活动的输入。它们构成了软件开发过程的重要组成部分因此,我们需要确保应用程序中的不同情况被描述为清晰且定义明确的场景表示[14]。因此,在我们的方法中:首先,需求工程师开始使用场景语言描述系统的不同功能,服务或情况126E. Sarmiento等人/理论计算机科学电子笔记329(2016)123Fig. 1. 拟议办法概览。[22]在过去的作品[20]。第二,场景元素中不相关的信息被删除。第三,为了从场景表示执行自动化测试场景生成,通过将这些场景转换为地点/变迁Petri网,并将它们合成为一致的整个Petri网,得到初始系统设计第四,自动分析场景及其产生的Petri 网 , 以 检 测 和 修 复 损 害 Unambiguity , Completeness , Consistency 和Correctness属性的缺陷。第五,分析结果被格式化并返回给需求工程师. 第六,如果发现缺陷,分析反馈用于改进场景描述,因为识别出的问题可以追溯到场景。第七,如果没有发现缺陷,则使用所得到的Petri网来导出测试场景。图1描述了我们方法的概述我们的方法的不同阶段正在C L [4]工具中实现第一至第六步已完全实施,并在[20]和[22]中详细说明。在我们的建议中,每个场景句子(命令式或声明式)都被翻译成一个Petri-Net节点(transition或place)。这些Petri网节点由弧连接,从而产生Petri网模型。每个翻译的场景都定义了系统正式规范的一部分。基于生成的Petri网模型,可以通过仿真来验证事件的可用的Petri-Net工具[16]使需求工程师能够使用等价的Petri-Net模型来模拟场景行为它们还允许通过将场景的句子重写为更具体的句子来详细描述场景的句子,以便于理解其行为。此外,这些工具还可以验证结构和行为特性(可达性、有界性和活性);通过这些工具提供的反馈,需求工程师可以改进场景描述,然后重新开始流程。如果没有发现问题,这些场景和Petri网E. Sarmiento等人/理论计算机科学电子笔记329(2016)123127模型可以用于软件开发过程的下一个活动,如MBT。通过形式化地表示系统,Petri网模型可以用作基于模型的测试过程的输入,自动化一些重复和耗时的任务,如测试场景生成或测试执行。MBT的一个重要优点是从SUT的正式模型自动生成测试场景[18 ]第10段。从RNL场景规范自动转换正式的Petri-Net模型克服了MBT的主要缺点,MBT是正式模型建设在我们的建议中,测试场景生成过程可以使用从场景规范生成的Petri网模型自动执行;目标是将每个事件或转换序列转换为原子步骤,从而实现其实现。因此,这将允许自动执行测试场景。3编写RNL方案如前所述,用于编写场景的语言是RNL。使用RNL可以写祈使句和陈述句。祈使句描述参与者事件,陈述句描述参与者或资源状态。因此,软件需求规范可以被描述为清晰且定义明确的场景描述。RNL的使用限制了用于编写场景的词汇,并防止在场景规范中引入歧义句,从而有助于文档的质量。RNL还需要定义句子构造的语法规则。此外,它有助于文本场景到正式的可执行模型的自动转换。这项工作中使用的基于自然语言的场景是[14]的改编,并在[20]中提出。3.1场景场景规范捕获域中的系统行为或情况[14],它有助于开发人员和其他利益相关者理解需求。以下场景定义可以实现进一步的转换:定义3.1场景是部分有序事件发生的集合,每个事件都由一组条件(前置条件和后置条件)保护或受约束条件限制[20]。事件是一个参与者操作或涉及用户、系统、环境或系统组件的交互。条件是一个执行器/资源/系统状态(例如,某些资源的可用性)。参与者可以是环境中的用户、设备、系统、系统组件或代理;他们在场景中或在系统中图2使用类图展示了本工作中使用的场景语言的抽象概念模型根据这一概念模型,128E. Sarmiento等人/理论计算机科学电子笔记329(2016)123图二. 情景概念模型[20]该语言由Scenario主实体和Context、Resource、Actor、Episode、Exception和Constraint实体组成场景在初始状态(上下文)中开始,具有所有必要的资源和参与者,并且必须满足通过执行其Epsilon而达到的目标。情节描述了情况的操作行为,其中包括主要的行动过程和可能的替代方案。异常可能出现在事件的执行过程中,并表明存在实现目标的障碍。对这种例外的处理不需要满足场景目标。一个场景、前置条件、后置条件、约束、情节或例外可以用另一个场景来表达。表1显示了基于[20]中提出的RNL场景语言编写场景的模板。它解释了每个场景元素的含义以及应该如何填充。Epsilon表示操作的主要流程,这是一系列步骤,其中一切都按预期工作。这些情况妨碍了方案的正确进程。它的治疗应该用一句话来描述。它也代表了替代/例外的非主流。约束是非功能性的方面,描述为陈述性的句子,限制目标实现的质量,需要的资源和情节的执行。它是资源、剧集或上下文子组件的属性情节句有单句、条件句、选择句和循环句。简单的情节是完成场景所必需的。条件性发作是指其发生取决于内部或外部条件的发作。可选事件是那些可能发生或可能不发生的事件,这取决于无法详细说明的条件。循环片段可以作为重复结构,其出现取决于内部或外部条件。内部条件可能是由于其他先决条件、行为者或资源限制以及以前的事件。外部条件可以由外部参与者或其他场景提供一系列的情节意味着一个优先顺序,但非连续的顺序E. Sarmiento等人/理论计算机科学电子笔记329(2016)123129表1用于编写场景的模板。元件描述标题<识别场景,并且必须是唯一的>目标<描述场景的目的>上下文<必须通过以下选项中的至少一个进行描述:><描述场景初始状态>地理位置<表示场景的物理集合>时间位置<是场景开发的时间规范>先决条件<场景的初始状态或其他场景的名称>后置条件<场景的最终状态或其他场景的名称>资源<列举方案为实现其目标而使用的相关物理要素或信息><必须出现在至少一集>行为者<直接涉及情况的人员、装置或组织结构的列举><必须出现在至少一集>集ID1句话<执行可以使用/修改资源并由参与者执行的动作><或其他方案的名称>先决条件(*)<我们希望在剧集播出前就已经满足了>后置条件(*)<我们希望在事件发生后实现>约束(*)<限制执行剧集的质量>例外ID1.1原因<由于输入数据无效或缺少必要资源或发生故障而导致的故障>溶液<用祈使句处理><或其他方案的名称>后置条件(*)<可以对资源/系统状态产生影响,或者简单地产生消息>(*)可选可以由符号“#”限定,允许两个或多个片段的分组。这是用来描述模糊的顺序,并发或平行的情节(#Episode Series> #)。上下文表2和表3给出了场景示例。这些例子将在后面解释。表2中描述的这些示例最初是作为用例描述在So m'e的“Online Broker System”案例研究中提出的[ 23 ]。3.2自然语言的限制形式(RNL)为了减少自然语言需求中的歧义并促进模型转换,在[20]中定义了一种用于根据其概念模型编写句子的场景语法(图2)。使用这种语法,可以写命令式(标题,情节句或例外解决方案)和声明式(条件或状态)句子。祈使句描述Actor事件;陈述句描述Actor或Resource状态(或Conditions)。情景语法中的句子基本上是按照“主语+动词+谓语“的格式来定义的130E. Sarmiento等人/理论计算机科学电子笔记329(2016)1231标题:提交订单目标:让客户为给定的订单找到最佳供应商。背景:先决条件:经纪人系统已在线,经纪人系统欢迎页面正在显示演员:客户,经纪人系统资源:登录页面,登录信息,订单EPISODES1. 客户加载登录页面2. 经纪人系统要求客户提供登录信息3. 客户输入其登录信息4. 代理系统检查提供的登录信息5. 经纪人系统显示订单页面6. 客户创建新订单7. 当客户有更多的商品要添加到订单中时,客户是否会添加一个商品8. 客户提交订单9. 经纪人系统将订单广播给供应商10. #供应商投标订单11. 国际供应商投标订单编号12. 过程投标例外1.1如果客户未注册,则注册客户2.1如果60秒后THEN经纪人系统显示登录超时页面4.1如果客户登录信息不准确,则经纪商系统显示警报消息表2经纪人系统中的“提交订单”场景描述主语、主要动词和由主要动词引导的宾语。因此,句子结构是以主要动词为中心的表4显示了使用部分Extended-BNF编写场景元素的语法根据这种语法,Scenario必须由以下属性描述:Title、Goal、Context、Resource、Actor、Epperity和Exception。在表4中,+表示组成,{x}表示x出现0次或多次,{x}N 意味着x,()的1次或多次出现用于分组,|代表OR和[x]表示x是可选的。 以下词语仅包含ter-语法符号:短语、动词、谓语、名称、非动词、连接动词、字母和数字。下列单词和短语是终止符号:标题、目标、上下文、资源、演员、情节、例外、地理位置、时间位置、前提条件、后条件、约束、如果、那么、当、做、和、或、必须、不、根据"[Actor]“格式声明情节语句和异常解决方案|资源] +动作-动词+ [直接对象-谓词]",其中“动作-动词”表示动作,“直接对象-谓词”指的是由行动在句子“The Customer submits the Order”中条件(事件条件或异常原因)可以被正式定义为根据格式“(Actor)”声明的逻辑句子。|资源)+连接-动词+谓词”。一个句子的主语(Actor或Resource)和一个谓语(主语补语),例如句子“Feederarea is available”中的单词“is”。连系动词后面不跟宾语。相反,它们后面是短语,E. Sarmiento等人/理论计算机科学电子笔记329(2016)123131表3“在线经纪人系统”的场景标题:本地供应商投标订单目标:提交投标上下文:为订单创建出价先决条件:订单已被广播后条件:本地供应商已收到代理人:本地供应商,经纪人系统资源:订单,投标集1. 本地供应商接收订单并进行检查2. 本地供应商确定订单的适用税费并创建投标3. 本地供应商提交订单投标4. 经纪人系统将出价发送给客户1.1如果本地供应商不能满足订单,则本地供应商将订单转移标题:国际供应商投标订单目标:处理投标上下文:处理订单的投标先决条件:订单已被广播后条件:国际供应商已收到订单。ACTOR:国际供应商,经纪人系统资源:订单,投标集1. 国际供应商收到订单并进行检查2. 国际供应商提交订单投标3. 经纪人系统将出价发送给客户1.1 如果订单包括限制出口的物品,则国际供应商将订单转交给国际1.2 如果国际供应商不能满足订单,则国际供应商将订单转移标题:过程投标目标:处理投标上下文:处理订单的投标先决条件:本地供应商有分销商或国际供应商有分销商参与者:客户,经纪人系统资源:订单,出价1. 客户审查投标2. 客户向系统发出继续投标的信号3. 办理缴费4. 系统向选定的投标人下订单关于受试者的信息(例如,名词短语、形容词短语、副词短语或介词短语)。连系动词包括有限数量动词的共轭形式。像条件一样,状态(前置条件和后置条件)可以被正式定义为根据"(Actor)“格式声明的句子。|资源)+状态-动词+谓词”。“状态动词”表示一种相对静态的状态。它们包括感知、认知、感觉、情感和存在状态的动词。在“The bubeher isempty”这句话中,“is”是状态动词,“empty”是谓语。状态动词一般不用于进行时态。[20]中包括了一些连接动词和状态动词的例子3.3基于情景的模块化使 用 Scenario 语 言 的 主 要 好 处 是 Scenario 支 持 使 用 Scenario 关 系 组 合 各 种Scenario。该特征提供132E. Sarmiento等人/理论计算机科学电子笔记329(2016)123表4[20]第二十类型描述<场景>标题:标题>+目标:目标>+CONTEXT:上下文>+资源:{资源>}N+1演员:{演员>}N+1Episodes:Episodes> +异常:{异常>}(【演员|资源]+动词+谓词)|短语<目标>【演员|资源]+动词+谓语<背景>[地理位置:地理位置>]+ [时间位置:时间位置>]+[前置条件:前置条件>]+【后置条件:后置条件>】<地理位置>名称+[约束:{<约束nt>}]|<地理位置><联系我们>地理位置><时间位置>名称+[约束:{<约束nt>}]|<时间位置>连接词><时间位置><先决条件>|| < connective>< Pre-condition><售后服务>|| < connective>< Post-condition>((演员|资源)+状态-动词+谓词)|短语<联系人>和|或<资源>名称+[约束:{约束nt>}]<演员>名称<组>| < Group><组><顺序组>|非<连续组><顺序组><剧集><剧集>|<连续组><剧集><非连续组>{Episode>} #Episode Series> #{Episode>}<剧集系列><剧集><剧集>| < Episode><剧集><简单情节>|条件<事件>|可选<剧集>|<循环事件><简单情节>< Episode Sentence> +[PRE-CONDITION:先决条件>]+[POST-CONDITION:POst-condition>]+[CONSTRAINT:{Constraint>}]<条件事件> IF Condition> THEN情节句子>+[PRE-CONDITION:Pre-condition>]+[POST-CONDITION:POst-condition>]+[CONSTRAINT:{Constraint>}]<可选剧集>[POST-CONDITION:POst-condition>]+[CONSTRAINT:{Constraint>}]<循环事件> DO Episode Sentence> WHILE Condition> +[PRE-CONDITION:Pre-condition>]+[POST-CONDITION:POst-condition>]+[CONSTRAINT:{Constraint>}]{(. |;|:)+ id-char > } + [.|:) + } + [. |;|:]中的一个|:]信|数字<情节句子>(【演员 |资源]+ 非动词 +[Direct-Object-Predicate]) | <条件><原子句子>| < connective>< Condition><原子句>((演员|资源)+联系动词+谓语)|短语<例外>如果原因>则解决方案>+[后条件:后条件>]<原因><原子 句子>||<原因><连接词><原因><解决方案>(【演员 |资源]+ 非动词 +[Direct-Object-Predicate]) | <约束>(【演员|资源] + [必须] + [非]+谓词)||短语通过相关场景之间的互连实现模块化。模块化被认为是一种处理场景爆炸问题的机制[14],[18]。情景通过顺序关系与其他情景相关联在情景描述中,如果我们在上下文(前置条件或后置条件)、情节(句子)、例外(解决方案)或约束中包含另一个情景(大写句子)的标题;这个上下文、情节、例外或约束将由最后一个情景处理。方案通过以下方式顺序连接到其他方案:• 前提条件是在场景的上下文元素中定义的关系必须首先执行作为其他条件的场景。E. Sarmiento等人/理论计算机科学电子笔记329(2016)123133• 后置条件是在场景的上下文元素中定义的关系作为other的后置条件的场景必须最后执行• 子情景是指一个情景的一个情节可以用另一个情景来描述。这允许分解复杂的场景。• 当一个场景被用来详细描述另一个场景的异常行为(解决方案)时,就定义了异常关系当在主场景中触发• 当一个场景被用来详细描述限定/限制另一个场景的正确执行的非功能方面时,约束关系被定义,这也给了我们一个场景之间的顺序情景也通过非顺序和非明确的关系相互作用场景之间的显式非顺序关系使用用于对非顺序剧集进行分组的结构(#episodes series> #)来描述;即,如果在另一个场景(子场景关系)中详细描述了非顺序组内的一组情节,则这些子场景以不明确的顺序或同时执行。在表2的情景描述中,主要实施例的第10集和第11集参考了表3中描述的子情景。这些子场景被明确描述为并发执行在某些情况下,给定的场景可能通过非显式关系进行交互,这可能导致错误的情况,如死锁。[20]中显示了一种用于发现非显式关系的启发式方法;当两个或多个场景在其描述中共享共同部分时,它们可能相关,即,它们涉及共同参与者的参与、它们访问共享资源或者它们在相同的上下文中执行。两个或多个方案可以通过以下关系同时交互:• 非决定论,它比较前提条件。当场景Si内描述的一组先决条件看起来像另一场景Sj中的先决条件时,则Si和Sj可能并发地交互• 同步,它比较前置条件和后置条件。当在场景Si中描述的前置条件在另一场景Si中像后置条件一样出现,并且在Si中描述的前置条件在Si中像后置条件一样出现时,则Si和Si可以同时交互3.4运行实例正在考虑的系统是在线经纪人系统[23]。代理系统与其合作伙伴服务、本地供应商和国际供应商进行交互。该系统的目标是让客户为给定的订单找到最好的供应商。客户填写在线订单,提交后,系统将其广播给当地和国际供应商。每个供应商在审查订单后可以决定拒绝或提交投标。本地供应商需要在订单总额中增加税收,而国际供应商需要确保订单不134E. Sarmiento等人/理论计算机科学电子笔记329(2016)123包括限制出口物品。提交的出价被发送回经纪人以显示给客户,客户最终要求系统继续出价。“在线经纪人系统”示例的完整场景如果我们选择第10集(采购供应商订单投标)、第11集(国际供应商订单投标)、第12集(过程投标)和例外1。1(REG-ISTER CUSTOMER)在另一个场景中进行了详细说明。因此,从主要场景中,可以识别顺序相关场景(过程投标、注册客户)和明确的非顺序相关场景(供应商和国际供应商)。“提交订单”场景(表2)包括提交订单流程的简要描述、启动场景的先决条件和五个执行流程:主流程和四个主执行流程将通过其所有情节,直到情节12,之后它成功终止。第一个异常执行描述了“客户未注册”的情况,第二个异常描述了当“客户在60秒后没有通知她登录”从第1集开始时的情况第三个例外描述了“客户登录信息不准确”(无效输入)的情况在这种情况下,给定用户操作,第四个异常执行描述了当“订单为空”(无效输入)时的情况在这种情况下,给定用户操作,处理投标、供应商订单投标和内部投标-TIONAL供应商订单投标如表3所示,详见[20]。 PROCESS BIDS按顺序引用到HANDLE PAYMENT场景。4Petri网模型生成一旦构建了场景,就可以自动生成Petri-Net形式化模型。为了提高场景转换方法的效率,需要去除不相关的信息和格式符号,如URL、HTML标签、带括号的注释和项目符号等。预处理步骤的详细信息见[22]和[20]。4.1petri网Petri-Net是一种图形和数学建模和分析语言,用于描述和研究具有并发、异步、分布式、并行、不确定性和/或随机特征的系统[17]。Petri网(图3)由表示位置或变迁的节点组成。E. Sarmiento等人/理论计算机科学电子笔记329(2016)123135图三. Petri-Net元模型[20]节点通过弧连接在一起。转换或活动组件对可能发生的活动进行建模,从而改变系统的状态;转换只有在启用时才允许触发,这意味着活动的所有先决条件(输入位置)都已完成。地点或被动组件(标记的占位符)对通信信道、资源、缓冲器、地理位置或可能的状态(条件)进行建模;被建模的系统的当前状态称为标记,其由每个地点中的标记数量给出。令牌对物理或信息对象、对象集合、状态指示器或条件指示器进行建模。弧有两种类型:输入弧从位置开始并在过渡处结束,输出弧从过渡处开始并在位置处结束当转换触发时,它从输入位置删除标记,并在所有输出位置添加标记移除/添加的令牌数量取决于每个弧的权重定义4.1位置转换petri网 是 一 五元组 PN= (P,T,F,W,M0) 哪里 P= {p1,p2,···,pn}是 一 铁镍铁矿 设置 的 T={t1,t2,···,tm}是一个变迁集,F∈(P×T)∈(T×P)是一个集合其中W:F→ {1,2,···}为权函数,M0:P→ {0,1,2,···}为初始标记,P <$T = P,P<$T/= P。定义4.2对于PN=(P,T,F,W,M0),标记是函数M:P→{0, 1, 2,···},其中M(p)是p中的令牌的数量。M0表示PN,其中初始标记。定义4.3转移t在标记M处被使能,如果对于任意p∈t,M(p)≥w(p,t),其中t是t的输入位置的集合。在t点火时,M变为MJ,使得m∈P:MJ(p)=M(p)−W(p,t)+W(t,p)。M[t> MJ表示在标记M处发射t。定义4.4对于PN,一个跃迁序列σ=称为触发序列当且仅当M0[t1>,[t2>,···,[tn>Mn。记法上,M0[PN,σ>Mn或M0[σ>Mn.定义4.5对于一个PN=(P,T,F,W,M0),一个标记M被称为可达的当且仅当存在一个点火序列σ使得M0[σ> M.在符号中,136E. Sarmiento等人/理论计算机科学电子笔记329(2016)123M0[PN,PN>M]或M0[PN> M]表示PN的所有可达标记的集合。定义4.6Petri网PN=(P,T,F,W,M0)的可达树,也称为标记图,是一个有向图G=(N,A),其中节点N对应于可达标记(N={M0[M>M}),节点A对应于可行转移(A={T})。因此,标记是从初始标记(初始状态)通过触发转换(通过触发从一个标记到另一个标记的变化)达到的状态。4.2将场景转换为Petri网一个Petri网PN是从一个场景S中导出的,如下所示:我们识别事件发生(事件和例外)及其先决条件(或原因),约束和后置条件。对于每个事件,创建一个过渡以表示事件发生的位置。输入位置被创建来表示其先决条件,原因和约束的位置(它们限制但不妨碍-TRUE)。创建输出位置来表示其后置条件的位置。事件标签、条件标签和约束标签被相应地分配给这些转换和位置。 然后创建PN的初始标记M0以表示初始状态,在此状态下,标记被添加到表示先决条件、原因或约束的输入位置。场景的执行从这个初始标记开始,这个初始标记在语义上意味着系统的初始状态,包括所有资源的可用性、先决条件、原因或约束。它以语义上意味着释放这些资源、先决条件、原因或约束的相同标记结束[20]。转换方法的第一步是定义映射规则,将场景元素(标题、目标、上下文、资源、执行者、事件、异常)转换为Petri网元素(变迁、地点和弧)。图4描述了从Scenario到Petri-Net元素的可视化转换。对于每个场景元素,派生出一个包含场所、变迁和弧的子Petri网。描述了从场景元素导出子Petri网的不同映射规则,使用由左右侧(LHS和RHS)组成的结构。LHS是规则的条件部分(场景元素),RHS基本上是规则的预期结果(子Petri网)。创建输入和输出虚拟位置,用于桥接到前一个和下一个子Petri网。作为转换方法的第二步,由场景元素生成的子Petri网形式化定义了变换方法、映射规则和融合位置操作在[20]中详细描述为了说明,我们应用转换方法来获得“提交订单”场景的Petri网它是通过映射主要执行流程的场景组件-事件和异常而得出的。图5描述了“提交订单”场景的Petri网对于E. Sarmiento等人/理论计算机科学电子笔记329(2016)123137图四、将场景元素映射到Petri-Net元素[20]。加载登录页面)、T2(经纪人系统要求客户登录信息)、T3(客户输入她的登录信息)、T4(经纪人系统检查所提供的登录信息)、T5(经纪人系统显示订单页面)、T6(客户创建新订单)、T7(客户向订单添加物品)、T8(客户提交订单)、T9(经纪人系统向供应商广播订单)、T10(向供应商招标订购)、T11(向国际供应商招标订购)、T12(过程招标),T1。1(注册客户),T2。1(经纪人系统显示登录超时页面),T4. 1(经纪人系统显示警报消息)和 T8 。 1(经纪人系统显示错误消息)。我们通过创建变迁 T1,T2,···,T11,T12和T13来表示这些事件并附加到每个变迁来构造Petri网138E. Sarmiento等人/理论计算机科学电子笔记329(2016)123图五、将提交订单场景映射到Petri网模型[20]。输入和输出位置表示:(1)内部虚拟输入和输出位置,或(2)输入条件(异常另外:(1)创建两个虚拟转换(Fork1和Join1),用于同步并发转换T10和T11;以及(2)创建两个转换,以表示场景触发(T0)和场景完成(T13)。4.3将Petri网集成到集成模型中对于每个场景及其相关场景,我们生成部分Petri网,以便将这些部分Petri网集成为一致的整体集成Petri网。集成Petri网准确地反映了合成Petri网的原始属性(在[20]中证明)。在情景语言中,情景通过显式的序列关系与其他情景相关(第3.3节)。当一个场景被选为主场景并被转换成主Petri网时,其顺序相关的场景被映射到输入位置(前置条件或约束)、输出位置(后置条件)或转换(场景作为集成Petri网方法的第一步,每个顺序E. Sarmiento等人/理论计算机科学电子笔记329(2016)123139将相关场景转换为Petri-Net。然后,这些Petri网中的每一个都必须被替换到主Petri网的相应位置或变迁中。第一步是替换位置或转换。如果一个主场景被映射到一个主Petri网,与非显式和非顺序相关的场景的交互由公共前置条件或后置条件描述,这些公共条件被映射到输入库所或输出库所。作为用于集成Petri网的方法的第二步,每个非顺序相关的场景被转换成Petri网。在Petri网中,有一些公共的位置(具有相同的标签)表示相同的前置条件或后置条件,并且它们需要从系统的角度唯一地表示[3]。第二步基本上是共同点。用于集成Petri网的方法从给定的相关Petri网集合产生集成的Petri网。在[20]中详细描述了集成Petri网的方法的正式定义,位置或转换的替换和融合位置操作重新审视“提交订单”场景(表2),例外1. 第1集和第10集、第11集和第12集在另一个场景(例外和子场景)中进行了详细说明,如注册客户、供应商投标订单、国际贸易-TIONAL供应商订单和工艺招标。这意味着Petri网应该为引用的场景生成(注册客户-T1. 本地供应商投标订单-T10,国际供应商投标订单-T11和过程投标-T12),并替换到“提交订单”的主Petri网中。图5显示了在“提交订单”Petri网中必须替换引用场景的转换 图6显示了集成Petri网“提交订单”的场景。为了管理Petri网的状态爆炸问题,不包括顺序相关的场景(注册客户和过程出价)(参见[22])。5测试场景生成第4节中介绍的Scenario-Petri-Net映射策略可以实现场景中定义的行为的转换,在这里正式表示为Petri网模型。虽然建立一个正式的模型是必不可少的,以确保considerability,这一任务通常被认为是一个障碍,以实际应用的MBT。为了提高测试场景生成策略的准确性,有必要检测和修复场景描述和生成的Petri网中可能损害不模糊性、完整性、一致性和正确性的缺陷。如果发现缺陷,分析反馈将用于改进场景描述,因为已识别的问题可以追溯到场景。如果没有发现缺陷,则使用产生的Petri网来导出测试场景。该分析策略的详细信息见[22]。关于所提出的方法,需求工程师被认为140E. Sarmiento等人/理论计算机科学电子笔记329(2016)123图第六章经纪人系统中“提交订单”的集成Petri网通常不熟悉正式的符号。在我们从场景规范生成测试场景的方法中,中间形式模型用Petri网描述。到Petri-Net符号的转换是隐藏的,完全不需要需求工程师的操作。测试场景生成过程分为四个主要步骤:(i) 从情景规范生成Petri网模型(第4节)。(ii) 使用可用的Petri网工具(如PIPE2 [16])为Petri网模型生成可达树。E. Sarmiento等人/理论计算机科学电子笔记329(2016)123141见图7。 “提交订单”Petri网的可达树(iii) 从Petri网的可达树生成测试序列测试序列是初始状态M0和可达最终状态之间的理论路径(iv) 从生成的测试序列中生成测试场景,同时考虑保护条件(输入和输出),满足测试覆盖率和充分性标准。5.1从Petri网有了从场景中得到的Petri网,接下来可以应
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功