一种业务逻辑驱动的GUI自动测试框架设计

发表于:2013-2-06 10:00

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

 作者:茹炳晟    来源:51Testing软件测试网原创

  摘要:软件的GUI自动化功能测试在很大程度上提高了软件测试的效率,大幅度减少了测试的重复工作量,但与此同时也带来了系统界面变更后测试脚本维护代价高昂、系统开发完成后才能开始GUI自动化测试用例的实现、熟悉业务逻辑的测试工程师和熟悉自动化技术的自动化测试工程师难以有效合作等问题的困扰,严重阻碍了软件GUI自动化测试的推广与发展。本框架设计提出了一种全新的测试业务逻辑与软件界面操作相隔离的层次化GUI自动化测试框架,通过引入“业务”脚本和“操作”脚本的概念,建立GUI界面操作层、基本功能层和业务逻辑层的层次化框架结构,大幅度提高自动化测试框架的灵活性和可复用程度,实现了由业务逻辑来驱动自动化测试脚本的自动生成和执行,从根源上部分解决了自动化测试中的主要难题。本框架设计思想不依赖特定的自动化测试工具,可普遍适用于目前主流的GUI自动化测试工具,比如QTP,RFT,Ruby+Watir等。

  关键字:业务逻辑驱动;测试框架;GUI自动化测试;BDD;

  GUI自动化测试的难点

  GUI自动化测试在帮助提供测试效率的同时,也引入了一系列的问题与挑战。归纳起来主要有以下四个方面:

  1、GUI自动化测试脚本的开发与维护代价高昂。目前主流的GUI自动化测试脚本结合了业务逻辑和完成业务逻辑所需要的界面操作步骤,无论是GUI界面、GUI操作流程或者是业务逻辑发生变化的时候,都会有大量的测试用例需要修改。

  2、对于GUI自动化脚本的开发,需要即非常熟悉业务逻辑,又能熟练掌握自动化脚本语言的工程师。通常而言,熟悉业务的手工测试工程师通常对自动化脚本的编写不是非常熟悉,而熟练掌握自动化脚本技术的工程师通常很少是业务领域的专家。现实情况是,手动测试工程师会把实现业务逻辑的测试步骤以及检查点以文档的形式记录下来,自动化工程师再将这些用例文档“翻译”成自动化测试脚本,这些步骤是即耗时又耗力的。

  3、被测系统开发与GUI自动化测试不能同步并发进行,这使得自动化测试开发的周期变短。通常,自动化测试用例脚本的开发是在系统内部版发布以后才正式开始的,因为自动化脚本在完成业务测试逻辑时需要很大程度依赖于被测系统的界面对象与控件。

  4、系统开发过程中,由于变更在所难免,会出现测试用例设计文档与实际实现脚本不同步的情况,通常自动化脚本已经更新了,而文档则会滞后,这就进一步加大了自动化测试的维护工作量。

  基于业务逻辑驱动的GUI自动化测试框架设计

  针对以上种种问题与挑战,本文提出了一种全新的测试业务逻辑与软件界面操作相隔离的层次化GUI自动化测试框架,通过引入“业务”脚本和“操作”脚本的概念,建立GUI界面操作层、基本功能层和业务逻辑层的层次化框架结构,大幅度提高自动化测试框架的灵活性和可复用程度,实现了由业务逻辑来驱动自动化测试脚本的自动生成和执行,大幅度提高了自动化测试的投入产出比。相比传统的自动化测试框架,本框架设计思想的优势主要体现在以下几个方面:

  ……………………

  查看全文请点击下载:http://www.51testing.com/html/11/n-832511.html

  以下介绍本框架设计的层次结构以及实现原理:

  业务逻辑层:在系统正式递交测试之前,就可以由熟悉需求的人员基于自然语言来设计业务逻辑层的测试用例。在这个层面上的测试用例完全基于业务逻辑,从描述业务层面描述需要做什么以及期待的结果是什么。测试用例中基于自然语言的每一步操作都会通过BLL-BFL Mapping映射到基本功能层提供的行为描述函数。同时,这些测试用例本身就可以作为测试用例的设计文档。

  基本功能层:基本功能层主要提供各种类型的行为描述函数。大多数行为描述函数基于页面类来封装,每一个页面类中包含页面操作方法和验证方法。这些方法中描述了完成该操作需要在界面上具体执行的操作步骤,需要特别注意的是,这些步骤仅仅描述需要在界面上执行什么操作,至于如何找到界面控件并实际执行并不在这层实现。具体实现对象识别和操作的代码会在GUI界面操作层中实现,两者通过BFL-GOL Mapping映射。在BFL-GOL Mapping映射机制的支持下,基本功能层并不依赖于GUI操作层所采用的界面自动化方案或工具(QTP或Ruby+Watir等)

  GUI界面操作层:GUI界面操作层负责具体实现界面对象的识别和操作,可以由QTP或者Ruby+Watir或者其他GUI自动化测试工具实现,并且可以在BFL-GOL Mapping映射的支持下实现最终脚本的自动生成。

  目前该框架设计已经在HP软件部门内部的多条产品线上得到应用,并取得了很好的效果,明显降低了大型复杂产品线的自动化测试的维护工作量。

  查看全文请点击下载:http://www.51testing.com/html/11/n-832511.html

        版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • ringboow
    2013-2-27 16:39:15

    这个很好

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号