论文部分内容阅读
自动化测试是软件测试的重要组成部分,也是当今软件测试行业最受关注的问题之一。目前,业界实施比较成熟的是性能测试自动化。在系统测试自动化方面,包括UI测试自动化、单元测试自动化等,虽然可以依靠强大的第三方测试工具作为解决方案,譬如QTP,RFT,WinRunner等,但在具体实践中,企业依靠某个工具很难成功实施测试自动化。究其原因,存在如下问题:理论上,利用测试工具进行自动化测试可以替代部分手工测试工作,但在实践过程中并不能真正地解决测试质量与效率、投入与产出等一系列现实问题;另一方面,工具的方法是一成不变的,而自动化测试环境是变化的,包括需求的变化、测试用例的变化、脚本的变化等等,依靠某个工具很难适应这些变化。因此,在现实的测试实践中,企业需要一种适合自身业务需求的自动化测试解决方案测试框架,以便真正地实现高效、高质量的软件自动化测试。基于上述应研究的问题和应用背景,本文研究了软件测试技术和测试框架,并深入分析了自动化测试的原理和方法,重点研究并设计了一套基于关键字和数据混合驱动的自动化测试框架KDATF。KDATF测试框架主要包含了测试用例生成和测试用例执行功能,涉及到自动化测试的整个过程,是一个完整的自动化测试框架,适合金融行业相关系统的测试开发。本文以KDATF框架的核心功能为设计主线,深入分析和研究了框架的设计方法和关键技术。其中测试用例生成主要包含用例模板的设计、要素模型的建立、要素规则的提取、业务要素的生成、测试点的生成等功能,以及数据驱动、关键字驱动、规则驱动、用例解析等一系列关键技术。其中由数据驱动实现测试用例模版中的输入输出变量与外部测试数据间的映射,以大规模地生成测试用例。由关键字驱动实现特定的关键字代替自然语言描述测试用例,并结合用例解析技术解析测试用例,生成动态的测试脚本。由规则驱动实现在被测系统进行分析和分解的基础上,提取出恰当的要素及规则,建立规则库,生成测试点,进一步指导产生测试用例。测试用例执行则包含了脚本预处理、脚本打标、脚本转换,脚本执行和测试报告生成等主要功能,涉及到的主要技术有ASL原语技术、脚本打标技术、关键字驱动技术等。其中ASL原语是一种描述测试用例的高级脚本语言,将测试脚本的生成抽象到了业务层,用ASL描述的测试用例可方便地转换成自动化测试工具执行的脚本。对企业来说,KDATF不是一个具体的测试工具产品,而是一组抽象构件以及构件实例间交互的方法,企业可根据实际业务需求方便地在KDATF的框架上进一步实现适合自身的测试平台。本文基于所研究的KDATF框架实现了一套用于测试金融行业业务系统的自动化测试平台。该平台采用IBM的RFT作为自动化测试工具,并选择某国债业务登记系统作为被测系统,通过对该系统的成功测试,验证了KDATF框架的可行性和实用价值。