您好, 访客   登录/注册

基于IFML元模型自动生成RIA用户界面测试用例研究

来源:用户上传      作者:

  摘  要: 最近OMG推出的交互流建模语言(IFML),其强大的用户界面建模功能现已逐渐应用于RIA用户界面模型驱动开发早期的建模阶段。然而针对RIA用户界面测试依旧停留在开发后期才能使用传统技术进行的问题,使得测试工作需要花费大量的时间和成本。文章给出一种基于IFML元模型自动生成RIA用户界面测试用例的方法。首先,通过Eclipse IFML编辑器建立RIA用户界面的IFML元模型;然后,分别阐述了将IFML元模型转换到测试用例、时间自动机的转换规则,并通过转换引擎生成对应文件;其次,通过UPPAAL对生成的自动机导航模型进行死锁和可达性验证;最后以实例进行了方法验证。
  关键词: RIA用户界面测试; 用例自动生成; 交互流建模语言; 元模型建立; 转换规则; 文件生成
  中图分类号: TN911.23?34; TP311                文献标识码: A                     文章编号: 1004?373X(2020)18?0043?04
  Abstract: In allusion to the IFML (interactive flow modeling language) is rolled out by OMG, its powerful user interface modeling capabilities. are increasingly used in the early modeling phase of RIA (rich internet application) user interface model?driven development  As the traditional techniques are still applied into the later stage of development for the testing of the RIA user interface, which makes the testing work take a lot of time and cost, a method of RIA user interface test case′s automatic generation based on IFML meta?model is provided. The IFML meta?model of the RIA user interface is built with the Eclipse IFML editor. The conversion rules of converting the IFML meta?model to the test case and the timed automata are elaborated respectively, and the corresponding files are generated by the conversion engine. The deadlock and reachability of the generated automaton navigation model are verified by UPPAAL. The method is verified by an example.
  Keywords: RIA user interface test; case automatic generation; interactive flow modeling language;  meta?model building; conversion rule; file generation
  0  引  言
  近年来,软件应用市场对用户界面的需求逐渐变得丰富且复杂,因此,传统的基于Html的Web应用程序的用户界面越来越体现出它们的局限性,已不能满足网络浏览者更高的、全方位的体验要求。而互联网应用程序(Rich Internet Application,RIA)[1]的出现解决了这个问题。RIA由于结合了桌面应用程序良好的用户交互体验和Web应用程序部署的灵活性,很快获得了企业界的青睐。由于RIA用户界面包含丰富的界面元素,使得界面体系结构也因此变得复杂。随着RIA的广泛应用,人们通过笔记本电脑、手机、台式电脑、iPAD等各种设备访问RIA,因此需要提供通用的用户界面满足不同的用户需求,导致RIA用户界面的开发和测试工作也逐渐变得复杂且耗时。模型驱动工程[2]是一种著名的软件工程开发方法,简化了开发过程,并提供早期設计验证功能,广泛应用于嵌入式系统、信息系统等领域。为了降低RIA用户界面开发和测试的难度,必须从模型驱动需求分析阶段开始设计。事实上,已经有一些针对应用程序用户界面开发早期的需求建模技术,比如UML,WebML等,但它们对用户界面内容、用户交互、控制行为等重要特征的描述还不够完整和准确。交互流建模语言(Interaction Flow Modeling Language,IFML)[3]的出现简化了RIA用户界面开发前期的建模设计工作。IFML是以图形化的方式描述用户界面需求,并且可以通过扩展的方式描述更为复杂的大型应用用户界面,操作灵活度高[4]。IFML同时支持对任何类型的设备访问RIA用户界面进行平台无关的描述。然而,到目前为止,IFML还未提供用户界面需求设计的验证和测试功能,仅在开发后期对用户界面的功能进行测试,这显著降低了软件的开发效率和软件质量。因此,本文给出一种从IFML元模型自动生成测试用例的方法,这将在开发工作的初始阶段执行用户界面的需求设计验证,使得测试过程更加精确有效[5]。首先,通过Eclipse IFML编辑器建立RIA用户界面的UML,IFML元模型;然后,分别阐述了将IFML元模型转换到测试用例、时间自动机[6]的转换规则,并通过转换引擎生成对应文件;其次,通过UPPAAL对生成的自动机导航模型进行死锁和可达性验证;最后以实例进行了方法验证。结果表明,该方法在RIA用户界面开发的需求分析阶段便能够提供测试用例,这有助于企业以相对较低的成本和时间开发高质量的软件产品[7]。   1  交互流建模语言
  交互流建模语言是OMG最近为用户界面建模采用的新标准,以图形化的形式来表示软件应用用户界面的内容、用户交互和控制行为,并且支持诸如桌面、网页、移动等多种终端应用。IFML元模型为IFML元素提供了语义和结构,其中,UML概要文件定义了使用UML表达IFML模型的语法。IFML元模型包含2个包:核心包和扩展包。核心包包括IFML主要元素,扩展包包含IFML扩展元素。扩展元素使得IFML能够表达更为丰富的用户界面元素,使建模工作更加具体[8]。由于IFML的庞大元素体系,本文只针对RIA用户界面所需的IFML元素进行介绍。
  视图容器(View Container)是IFML模型图的基本界面元素,例如实际中的窗口、网页等。视图容器可以嵌套,子容器可以与父容器同时显示,也可以使用XOR嵌套使它们互斥。在互斥的情况下,可以将子容器设置为Default,当用户访问父容器时,仍然显示子容器。容器设置为Landmark,表示容器可以被嵌套容器中的所有其他容器访问。视图容器可以包含一个或多个视图组件(View Component),而视图组件则包含要显示的数据类型,比如IFML元模型扩展包中的Form(表单)、List(列表)、Details(详细信息)。视图组件还包括Data Bingding(数据绑定),它引用域概念,精确地指定需要从域中提取哪些数据。Event(事件)表示视图容器或视图组件之间的交互,它导致源和目标RIA用户界面的转换。有很多类型的事件,比如Submit(提交)、Select(选择)、Add(添加)等。事件通过Navigation Flow(导航流)连接到目标视图组件或视图容器。Parameter Binding Group(参数绑定组)与导航流相关联,表示视图容器或视图组件之间输入输出的依赖关系。
  2  研究方法概述
  本节给出将IFML元模型转换到测试用例以及时间自动机的转换规则,并描述了使用测试用例生成器生成对应的测试用例文档以及时间自动机导航模型。
  2.1  IFML到测试用例的转换规则
  视图组件有3种扩展类型,即Form,List,Details,它们能够捕获用户界面的详细信息。本节阐述了将这3种视图组件转换为测试用例的转换规则。IFML模型的其他视图组件无法捕获用户界面的详细信息,因此,本节没有对其他视图组件进行测试用例的转换。
  1) Form到测试用例的转换规则:Form名称映射到测试用例名称;Form中的Simple Field和Selection Field映射到测试用例,分别检查输入值和选定值;Form上的Submit事件映射到测试用例的最终提交步骤。
  2) List到測试用例的转换规则:List名称映射到测试用例名称;List中的Data Binding映射到领域模型元素;Visualization Attribute映射到List中显示的领域模型元素属性。
  3) Details到测试用例的转换规则:Details名称映射到测试用例名称;Details中的Data Binding映射到领域模型元素;Visualization Attribute映射到Details中显示的领域模型元素属性。
  2.2  IFML到时间自动机的转换规则
  导航测试对于分析应用程序体系结构和改进用户交互流起着关键的作用。本节给出将IFML模型转换为时间自动机的转换规则,通过转换生成时间自动机导航模型。时间自动机模型由初始位置、边、位置组成。初始位置表示时间自动机模型的初始状态,边表示状态的转换,位置则表示转换后的状态`。
  IFML元模型到时间自动机的转换规则:Home  View Container表示IFML模型中的主页,转换到时间自动机模型的初始位置,表示系统的初始状态;IFML模型中的Navigation Flow转换到时间自动机模型中的边;除了Home View Container,其他的View Container转换为时间自动机模型中的位置。
  2.3  测试用例生成器(MBUITC)
  使用基于模型的用户界面测试用例生成器(Model?based UI Test Case,MBUITC)[9]实现第2节所述的转换规则并得到相应的生成文件。MBUITC的功能包括3个部分:Eclipse IFML编辑器、转换引擎、UPPAAL模型检查器,如图1所示。在Eclipse IFML编辑器中建立RIA用户界面的UML,IFML元模型,通过转换引擎导入UML,IFML元模型,生成完整的用户界面测试用例的测试文档(.txt)、包含导航模型代码的文本文件(.xta)。尽管IFML编辑器只有在UML元模型的基础上才能建立IFML元模型,但实际上只是IFML元模型的转换,与UML元模型无关。扩展名为.xta的文本文件作为模板导入UPPAAL模型检查器用来验证模型的死锁和可达性。
  UPPAAL由3个部分组成:编辑器、模拟器、验证器[10],当.xta文本文件导入UPPAAL时,编辑器会首先根据模板文件生成自动机导航模型,然后导航模型通过模拟器检查其语法,保证模型的正确性和完整性。最后,使用验证器对模型进行验证,在验证中应考虑两个方面的性质:可达性和死锁。可达性是检查查询语句中提到的状态是否可以从初始状态通过至少一条路径到达,可达性确保RIA用户界面是可访问的,用于检查导航模型可达性的查询语句为:E<> Process.page,如果满足条件,则意味着page可达。验证导航模型是否发生死锁,若满足A[] not deadlock,则意味着模型无死锁,当导航模型中存在一个状态而没有下一个状态时,会发生死锁。   3  实例验证
  为验证本文给出方法的有效性,本节结合图书管理应用作为研究案例。该应用实例包含5个主要用户界面:主界面(Home)、图书列表(BookList)、图书详细信息(BookDetails)、图书添加页面(AddBook)、图书添加错误页面(ErrorPage)。主界面包括最近出版的图书列表,列表包含图书名称以及出版年份,通过列表选择1本书,页面将会跳转到图书详细信息页面。图书详细信息页面包含书籍名称、作者、出版年份、有关书籍描述。图书列表页面显示一份书单,通过选择一本图书,页面将跳转到图书详细信息页面。在图书列表中通过点击“添加图书”按钮,页面将跳转到图书添加页面。图书添加页面包含一个图书添加表单,通过点击“提交”按钮,页面将跳转到图书列表页面,如果数据提交失败,页面将跳转到图书添加错误页面。图2和图3分别是图书管理应用的领域模型和IFML模型。
  通过MBUITC中Eclipse IFML编辑器建立图书管理应用实例的UML,IFML元模型(book.uml,book.core),打开转换引擎,导入元模型进行转换。最终生成测试用例文档,部分截图如图4所示,导航模型文件如图5所示。
  打开MBUITC中的UPPAAL模型检查器,导入导航模型的.xta文件,编辑器中将生成自动机导航模型如图6所示。通过验证器的验证输出结果显示,导航模型无死锁并且Book Details满足可达性,如图7所示。
  4  结  语
  针对传统RIA用户界面测试过程中出现的低效、高成本等问题,文章给出了一種基于IFML元模型自动生成RIA用户界面测试用例方法。首先,通过Eclipse IFML编辑器建立RIA用户界面的IFML元模型;然后,分别阐述了将IFML元模型转换到测试用例、时间自动机的转换规则,并通过转换引擎生成对应文件;其次,通过UPPAAL对生成的自动机导航模型进行死锁和可达性验证;最后以实例进行了方法验证。文章下一步工作将改进和扩展所提出的方法,以支持IFML其他重要结构,如模块、动作、菜单、上下文和表达等。
  参考文献
  [1] 康恺.面向RIA的Java Web组件封装技术设计与实现[D].西安:长安大学,2017.
  [2] 刘拨杰.基于模型驱动的MapReduce大数据变换软件开发方法研究[D].南京:南京大学,2018.
  [3] MISRA H. Interaction flow modeling language: model?driven UI engineering of web and mobile apps with IFML [J]. Computing reviews, 2016, 57(8): 477?477.
  [4] MARCO Brambilla, ANDREA Mauri, ERIC Umuhoza. Extending the interaction flow modeling language (IFML) for model driven development of mobile applications front end [J]. Mobile web information systems, 2014, 8640: 176?191.
  [5] FRAJT?K K, BURES M, JELINEK I. Transformation of IFML schemas to automated tests [C]// Conference on Research in Adaptive & Convergent Systems. New York: ACM, 2015: 509?511.
  [6] 黄青青.基于时间自动机理论的PLC程序设计方法及应用[D].武汉:华中科技大学,2018.
  [7] SUHAG V, BHATIA R. Model based test cases generation for web applications [J]. International journal of computer applications, 2014, 92(3): 23?31.
  [8] NAZIHA Laaz, SAMIR Mbarki. Combining ontologies and IFML models regarding the GUIs of rich internet applications [C]// International Conference on Artificial Intelligence: Methodology. Varna: Springer, 2016: 226?236.
  [9] Anon. MBUITC [EB/OL]. [2019?07?14]. https://ceme.nust.edu.pk/ISEGROUP/MBUITC/index.html.
  [10] 吴丹.基于UPPAAL的ETCS?1级/ETCS?NTC级等级转换形式化建模[D].成都:西南交通大学,2017.
转载注明来源:https://www.xzbu.com/8/view-15309924.htm