3.2 关键字驱动模块
关键字驱动模块是LKDT的核心模块,在LKDT框架中起着不可或缺的作用。该模块主要解决了脚本关键字的定义、关键字解析等问题。
关键字驱动的测试脚本为测试数据关键字和测试逻辑关键字的有机组合。数据关键字相对简单,与数据驱动技术类似,一个数据关键字代表一个测试脚本中的测试数据。在脚本运行时只需通过框架用真实的测试数据对数据关键字进行替换。
逻辑关键字的定义与测试活动的结构密不可分。在真实的测试活动中,一个测试目标需要有一组测试用例来支持,而每个测试用例又由一系列的测试步骤完成。这是一个三层结构,测试步骤为测试活动中的最小单位,测试目标为最大单位,测试用例居中。逻辑关键字基于测试活动的这种结构即可分为高层脚本、中层脚本和底层脚本三层,分别对应于测试中的测试目标、测试用例和测试步骤。高层次脚本由逻辑关键字代表的低层次脚本,加上数据关键字代表的测试数据组合而成。
该模块主要由核心模块、脚本语言解释器模块和支持库模块组成。
3.2.1 核心模块
该模块主要作用是对测试脚本中的关键字信息进行解析,并控制脚本的执行。它由数据解析器、脚本解析器、脚本执行器、中间层四部分组成。其中,数据解析器负责数据关键字的解析;脚本解析器负责解析脚本中的逻辑关键字;脚本执行器负责脚本的执行;中间层负责测试库调用。
3.2.2 脚本语言解释器模块
脚本语言解释器模块包括三个部分,即词法分析器、语法分析器和解释器。词法分析器负责将输出的字符流解析为一个个的词[5~7];语法分析器负责将词序列解析为具有语义的语句[8];解释器负责语义的翻译。
3.2.3 支持库模块
支持库包括两个部分:a)所有测试可以共用的库,包括日志库和测试支持库。日志库负责向测试人员提供日志记录的功能;测试支持库则提供所有测试能共用的功能。b)GUI测试库主要作用是支持Linux下对桌面应用程序的测试。
4 结束语
依靠传统的自动化工具来完成Linux下的GUI测试非常困难。一是因为捕捉产生的脚本维护困难;二是由于录制的测试脚本与测试数据耦合得太紧密导致录制生成的测试脚本可复用性较差,生存期短。而LKDT框架采用的关键字驱动则是一种截然不同的思想,它把传统测试脚本中的变化与不变的东西进行了分离,这种分离使得分工更明确,并且避免了它们相互之间的影响。
当然对于该框架仍有许多工作需要探讨。例如如何使测试框架提供分布式测试支持以及需要考虑到Linux操作系统中用户权限问题等,通过后续研究以期使之成为一个更加简单、易用、高效的自动化测试框架。
参考文献:
[1]BENNETT J P. Introduction to compiling techniquesfirst course using Ansi C, Lex and Yacc[M]. [S.l.]:McGraw Hill Book Co, 1990.
[2]FEWSTER M, GRAHAM D. 软件测试自动化技术与实例详解[M].舒智勇,包晓露,焦跃,等译.北京:电子工业出版社,1999:333342.
[3]PATTON R.软件测试[M].北京:机械工业出版社,2002:150.
[4]朱鸿,金凌紫.软件质量保障和测试[M].北京:科学出版社,1997.
[5]DUSTION E. The automated testing lifecycle methodology[C]//Proc ofInternational Conference on Practical Software Assurance Techniques and Practical Software Test Techniques. 2000:116.
[6]YU Yi,XU Zhongwei,WU Fangmei. A strategy based on a knowledge base for black box software testing[C]//Proc ofInternational Symposium on Test and Measurement(ISTM/99). Xi’an: [s.n],1999:206210.
[7]张克东.软件工程与软件测试自动化教程[M].北京:电子工业出版社, 2002.
[8]朱菊,王志坚,杨雪.基于数据驱动的软件自动化测试框架[J].计算机技术与发展, 2006,16(5):6870.
作 者: 接卉 兰雨晴 骆沛 JIE Hui LAN Yu-qing LUO Pei
作者单位: 北京航空航天大学,软件工程研究所,北京,100083
刊 名: 计算机应用研究 ISTIC PKU
英文刊名: APPLICATION RESEARCH OF COMPUTERS
年,卷(期): 2009 26(3)
分类号: TP311.5