一种基于模型检测的前台系统设计与验证方法技术方案

技术编号:22218056 阅读:26 留言:0更新日期:2019-09-30 00:51
本发明专利技术提出一种基于模型检测的前台系统设计与验证方法,属于模型检测的系统设计与验证领域。本发明专利技术包括:模型生成模块根据前台系统的设计需求建立界面模型,生成状态转移图;测试用例生成模块遍历界面模型,自动批量生成对前台系统测试的检测用例集;界面模型自动机对检测用例集中的每一个检测用例,通过触发界面上的菜单或者菜单项来调用相应的api转到下个界面,获取检测用例的状态表和状态转移表;状态转移自动机将检测用例的状态及状态转移规则,与规约相比对进行正确性验证,验证不通过时,输出验证不通过的位置。本发明专利技术实现了在项目初期对前台系统的设计及开发的验证,减少后期项目的维护成本,提高了前台系统的设计质量和开发效率。

A Design and Verification Method of Front Desk System Based on Model Detection

【技术实现步骤摘要】
一种基于模型检测的前台系统设计与验证方法
本专利技术属于模型检测的系统设计与验证领域,具体涉及一种基于界面窗口树模型的前台系统设计与行为正确性的验证方法。
技术介绍
在现代软件开发过程中,前台系统作为与用户直接交互的应用系统和用户对接部分,变得越来越重要,前台系统的设计和开发也成为应用系统开发和设计的重要因素。随着系统功能越来越强大,系统界面中包含的组件以及系统界面相互间的包含和跳转关系越来越复杂,系统一旦出现问题,依赖人工方式进行追踪排查会消耗很高的人力成本,显然是不可行的。尽管软件测试的理论、方法以及工具经过几十年的发展成果显著,但软件的功能性测试本质上还是一种事后验证的方法,即是在实际软件开发过程中或开发完成后进行的一种验证。软件系统的开发质量很大程度上取决于前期软件设计的质量,在本世纪初美国国家标准研究院相关报告就指出,软件测试中发现的70%以上的错误是由于需求获取或设计引起的。这说明了软件设计的质量对软件质量具有重要意义,而对前台系统的设计进行建模和验证,能够在项目初期尽可能规避可能存在的设计问题,减少后期项目出现问题时追踪排查的成本。因此,对前台系统的设计进行建模与验证具有十分重要的现实意义。随着近几年来前端技术的飞速发展,前台系统也从原来只负责MVC(ModelViewController,模型-视图-控制器)架构中的视图View部分到自成一套MVC架构,到如今各大互联网公司都在使用的MVVM(Model-View-ViewModel)架构,前台系统承担着越来越复杂的工作,验证前台系统设计的正确性具有十分重要的理论意义,对于前台系统的设计与验证,模型检测(ModelChecking)是一种有效的手段。目前对于前台系统的建模方法主要分为三类:非形式化方法、半形式化方法以及形式化方法。其中分别包括传统的采用自然语言描述的方法,基于UML(UnifiedModelingLanguage),WebML(Webmetalanguage)等图形化建模语言描述的方法以及支持验证的形式化建模方法等。但这些方法都存在一些弊端,主要有:(1)对于采用自然语言描述的传统方法,这种非形式化的方法符合人类的语言习惯,便于理解,但具有一定的二义性,描述不够准确。(2)对于采用UML,WebML等图形化的建模语言的方法,这种半形式化语言不支持自动化验证。这样在设计中一方面需要等到系统实现后在测试阶段才能发现,大大影响了开发效率和开发成本;另一方面当出现问题时,很难通过人工方式排查出所有的错误。(3)对于现有的形式化建模方法,如LOTOS(languageoftemporalorderingspecification),Petri网等虽然支持验证,但是在常规的模型检测中,对系统期望的性质需要采用相对应的时态逻辑公式进行规约,而时态逻辑公式存在标记相对晦涩难懂,现有工具支撑不足、工具易用性差等原因,使得这些形式化模型不适合处理大规模实际设计问题。综上所述,现有的前台系统的建模方法存在多种局限:1)非形式化建模方法存在二义性,不能够准确描述;2)半形式化方法不支持自动化验证,影响软件质量和开发成本,增加了维护成本;3)形式化建模方法所采用的技术方法晦涩难懂,对相关人员专业知识要求较高;4)其他一些建模方法可以实现自动检测,但存在状态空间爆炸的问题。此外,在测试过程中还存在许多缺点,例如面对复杂的前台系统时,由于系统界面包含大量功能组件,系统界面相互之间的包含跳转关系复杂,这些问题极大地增加了对前台系统进行建模的难度,验证过程也变得十分复杂,从而导致测试效率低下且手工验证过程中人为操作导致的错误率较高,这些问题都会对软件测试的质量造成严重的不良影响。
技术实现思路
本专利技术针对复杂的前台系统设计中建模难度大,验证过程复杂,测试效率低下且手工验证过程中人为操作导致的错误率较高的问题,提出一种基于模型检测的前台系统设计与验证方法。本专利技术的基于模型检测的前台系统设计与验证方法,将窗口树模型引入前台系统中,基于计算机实现的测试框架来执行,测试框架包括模型生成模块、测试用例生成模块、界面模型自动机和检测自动机,包括如下步骤:步骤一,模型生成模块根据前台系统的设计需求,获取前台系统中所包含的界面以及界面包含的元素,建立界面模型,根据前台系统的状态迁移信息,建立状态转移图。所述的状态转移图用来对前台系统的设计关于需求的正确性进行规约。将前台系统包含的界面作为节点,建立界面模型,界面分为基本界面和复合界面,复合界面由基本界面组合而成,基本界面中包含菜单和界面元素,菜单和菜单项也作为节点,用有向边来表示节点间包含关系或者跳转关系。将一个界面或者由界面、菜单和菜单项组成的三元组作为一个状态,依据节点间跳转关系生成状态转移图。步骤二,测试用例生成模块遍历得到的界面窗口树模型,自动批量生成测试前台系统的检测用例集。一个检测用例是一个界面跳转序列。步骤三,界面模型自动机对检测用例集中的每一个检测用例,通过触发界面上的菜单或者菜单项来调用相应的api转到下个界面,遍历检测用例中的状态得到状态表和状态转移表;状态表中记录检测用例的所有状态,状态转移表中记录检测用例中的所有状态转移规则;步骤四,将根据系统设计要求设计好的状态及状态转移图作为检测用例正确性验证的规约,状态转移自动机将输入的检测用例的状态及状态转移规则,与所述的规约相互比对,进行正确性验证,当验证不通过时,输出验证不通过的位置及相应的验证记录,验证不通过的位置就是设计错误的位置。所述的步骤一中,所建立的界面模型中包括四种节点,如下:基本界面baseui,定义为baseui::=(uiname,menu,element+)形式的三元组,其中uiname表示基本界面的名称,menu表示基本界面所包含的菜单,element+表示基本界面所包含的界面元素,有一个或多个;复合界面complexui,定义为complexui::=∪baseui,其中符号“∪”表示进行界面叠加操作;界面ui,定义为ui::=∪(ui)|baseui,其中符号“|”表示或者;界面是一个基本界面或一个复合界面;菜单menu,定义为menu::=(name,menuitems+)形式的二元组,其中name表示菜单的名称,menuitems+表示菜单所包含的菜单项,有一个或多个;菜单项menuitem,定义为menuitem::=(itemname,api+),其中itemname表示菜单项的名称,api表示菜单项提供的功能接口,有一个或多个。四种节点存在的关系包括3种包含关系和1种跳转关系,依次是:复合界面包含基本界面ComplexUI2Parts,基本界面包含菜单UI2Menu,菜单包含菜单项Menu2MenuItems,菜单项触发跳转MenuItem2UI。本专利技术与现有技术相比,具有以下明显优势:(1)测试效率高:在面对复杂的前台系统时,由于界面包含大量的功能组件,相互间具有包含和跳转关系,因此人工方式验证系统设计正确性工作量大且不易覆盖所有测试用例,本专利技术通过使用窗口树模型对前台系统进行建模,使用状态转移图对设计正确性进行建模,利用模型检测方法快速验证前台系统设计是否满足需求,通过自动化验证提高了对前台系统的设计质量的本文档来自技高网
...

【技术保护点】
1.一种基于模型检测的前台系统设计与验证方法,基于计算机实现的测试框架,其特征在于,测试框架包括模型生成模块、测试用例生成模块、界面模型自动机和检测自动机,执行如下步骤:步骤一,模型生成模块根据前台系统的设计需求,获取前台系统中所包含的界面以及界面包含的元素,建立界面模型,生成状态转移图;将前台系统包含的界面作为节点,建立界面模型,界面分为基本界面和复合界面,复合界面由基本界面组合而成,基本界面中包含菜单和界面元素,菜单和菜单项也作为节点,用有向边表示节点间包含关系或者跳转关系;将一个界面或者由界面、菜单和菜单项组成的三元组作为一个状态,依据节点间跳转关系生成状态转移图;所建立的界面模型中包括四种节点,如下:基本界面baseui,定义为baseui::=(uiname,menu,element+)形式的三元组,其中uiname表示基本界面的名称,menu表示基本界面所包含的菜单,element+表示基本界面所包含的界面元素,有一个或多个;复合界面complexui,定义为complexui::=∪baseui,其中符号“∪”表示进行界面叠加操作;界面ui,定义为ui::=∪(ui)|baseui,其中符号“|”表示或者;界面是一个基本界面或一个复合界面;菜单menu,定义为menu::=(name,menuitems+)形式的二元组,其中name表示菜单的名称,menuitems+表示菜单所包含的菜单项,有一个或多个;菜单项menuitem,定义为menuitem::=(itemname,api+),其中itemname表示菜单项的名称,api表示菜单项提供的功能接口,有一个或多个;四种节点存在的关系包括3种包含关系和1种跳转关系,依次是:复合界面包含基本界面ComplexUI2Parts,基本界面包含菜单UI2Menu,菜单包含菜单项Menu2MenuItems,菜单项触发跳转MenuItem2UI;步骤二,测试用例生成模块遍历界面模型,自动批量生成对前台系统测试的检测用例集;一个检测用例是一个界面跳转序列;步骤三,界面模型自动机对检测用例集中的每一个检测用例,通过触发界面上的菜单或者菜单项来调用相应的api转到下个界面,遍历检测用例中的状态得到状态表和状态转移表;状态表中记录检测用例的所有状态,状态转移表中记录检测用例中的所有状态转移规则;步骤四,将根据系统设计要求设计好的状态及状态转移图作为检测用例正确性验证的规约,状态转移自动机将输入的检测用例的状态及状态转移规则,与所述的规约相互比对,进行正确性验证,当验证不通过时,输出验证不通过的位置及相应的验证记录,验证不通过的位置就是设计错误的位置。...

【技术特征摘要】
1.一种基于模型检测的前台系统设计与验证方法,基于计算机实现的测试框架,其特征在于,测试框架包括模型生成模块、测试用例生成模块、界面模型自动机和检测自动机,执行如下步骤:步骤一,模型生成模块根据前台系统的设计需求,获取前台系统中所包含的界面以及界面包含的元素,建立界面模型,生成状态转移图;将前台系统包含的界面作为节点,建立界面模型,界面分为基本界面和复合界面,复合界面由基本界面组合而成,基本界面中包含菜单和界面元素,菜单和菜单项也作为节点,用有向边表示节点间包含关系或者跳转关系;将一个界面或者由界面、菜单和菜单项组成的三元组作为一个状态,依据节点间跳转关系生成状态转移图;所建立的界面模型中包括四种节点,如下:基本界面baseui,定义为baseui::=(uiname,menu,element+)形式的三元组,其中uiname表示基本界面的名称,menu表示基本界面所包含的菜单,element+表示基本界面所包含的界面元素,有一个或多个;复合界面complexui,定义为complexui::=∪baseui,其中符号“∪”表示进行界面叠加操作;界面ui,定义为ui::=∪(ui)|baseui,其中符号“|”表示或者;界面是一个基本界面或一个复合界面;菜单menu,定义为menu::=(name,menuitems+)形式的二元组,其中name表示菜单的名称,menuitems+表示菜单所包含的菜单项,有一个或多个;菜单项menuitem,定义为menuitem::=(itemname,api+),其中itemname表示菜单项的名称,api表示菜单项提供的功能接口,有一个或多个;四种节点存在的关系包括3种包含关系和1种跳转关系,依次是:复合界面包含基本界面ComplexUI2Parts,基本界面包含菜单UI2Menu,菜单包含菜单项Menu2MenuItems,菜单项触发跳转MenuItem2UI;步骤二,测试用例生成模块遍历界面模型,自动批量生成对前台系统测试的检测用例集;一个检测用例是一个界面跳转序列;步骤三,界面模型自动机对检测用例集中的每一个检测用例,通过触发界面上的菜单或者菜单项来调用相应的api转到下个界面,遍历检测用例中的状态得到状态表和状态转移表;状态表中记录检测用例的所有状态,状态转移表中记录检测用例中的所有状态转移规则;步骤四,将根据系统设计要求设计好的状态及状态转移图作为检测用例正确性验证的规约,状态转移自动机将输入的检测用例的状态及状态转移规...

【专利技术属性】
技术研发人员:张亚鹏李岳檑乌尼日其其格吴继芳张思卿吕江花马世龙李小平
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1