基于TTCN-3测试系统的逆向模型发现框架的设计

发表于:2011-12-21 10:58

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:柳永坡    来源:51Testing软件测试网采编

分享:

  5.3 对TRex的扩展

  编译器首先把程序员写的源程序转换成一种方便处理的数据结构,那么这个转换过程就是词法分析和语法分析。通过TRex分析TTCN-3源代码,可以获得抽象语法树和符号表。抽象语法树使用Tree作为数据结构,因为Tree有很强的递归性,将Tree中的任何结点Node提取出来后,Node依旧是一棵完整的Tree。这一点符合现在编译原理分析的形式语言,比如在函数里面使用函数、循环中使用循环、条件中使用条件等等,那么就可以很直观地表示在Tree这种数据结构上。

  针对本论文研究所要解决的问题,主要考察了de.ugoe.cs.swe.trex.core中的de.ugoe.cs.swe.trex.core.analyzer.rfparser包,它里面包含了TTCN-3的静态分析器,

  TRex按照ANTLR的文法定义了TTCN-3语言的BNF范式,然后使用ANTLR提供的工具包生成了TTCN-3的静态分析器。通过静态分析器对TTCN-3源文件的分析,可以获取TTCN-3的抽象语法树,然后使用符号表对基本信息进行再组织。

  TRex中重要的数据结构包括Symbol、LocationAST、Scope和SymbolTable,如图4所示:

图4  TRex的符号表

  TTCN-3中定义了丰富的元素类型,可以方便用户定义测试配置、测试行为和测试数据等。TRex为每个TTCN-3元素都定义了一种Symbol,如图5所示。

图5  TRex中的符号

  在逆向分析过程中,本文主要分析了ModuleSymbol、TypeSymbol、SignatureSymbol、EnumSymbol、PortInstanceSymbol、SubtypeSymbol、TemplateSymbol、TestcaseSymbol、FunctionSymbol、AltstepSymbol等关键数据结构。

  TRex主要用于TTCN-3测试集的度量和重构,TTCN-3脚本的编辑功能和静态分析功能是整个工具的核心。在此,本文还分析了TRex的编辑器、编辑器之上的事件响应策略模式、静态分析器的工厂模式以及TTCN-3静态分析器的入口程序。本文通过对静态分析器核心代码的研读,在TTCN3Analyzer中加入了自己定义的数据结构和接口,用于访问静态分析获得的各种信息,实现模型的逆向发现。

  6、总结

  本文设计实现了逆向模型发现的系统框架,并详细介绍了静态分析器的设计实现。测试模型的抽象和提取在技术报告《基于TTCN-3测试系统的静态测试配置模型和数据模型的发现》和《基于TTCN-3测试系统的调用模型和动态测试配置模型的发现》中详细介绍,而实验在技术报告《基于TTCN-3测试系统的逆向工程的实验及数据分析》中详细介绍。对基于TTCN-3的测试系统进行逆向工程,可以帮助测试人员从更高层次把握测试系统的设计,同时可以检验测试设计和测试实现之间的一致性,对于测试系统的维护、扩展以及评估都有重大的意义和重要的价值。

44/4<1234
2023测试行业从业人员调查问卷已开启,千元大奖正在等你~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号