软件测试自动化的探索与管理(六)

第三章 自动化测试框架与效益

  自动化不是纯技术问题,也不能孤立的存在,先进的自动化测试依赖先进的测试管理,同时由于自动化也有它自身的特殊性,所以要在现有的测试管理的基础上搭建一套自动化测试管理的平台,完成自动化体系建设。自动化管理平台要包含自动化的指标定义和管理、自动化规范制度管理、自动化资源设施管理和自动化的测试框架管理。这些管理工作做好了自动化测试能得到很大的实惠,下文说得这些内容对于已经做得比较好的公司来说看起来比较简单甚至稍显稚嫩,但是笔者知道也有很多公司在这一方面并没有做得很好。其实这些管理工作做到什么程度也能从一定程度上反映一个公司整体的管理水平。

  1、自动化测试框架定义

  到底什么是自动化测试框架?笔者问了无数人,包括我们自己公司的同事和很多网络上的同仁,每个人都有一套自己的说法。其实大家怎么理解自动化测试框架都是有道理的,毕竟自己所看到的、别人想要表达和别人已经表达出来的很可能就都不是一码事,满足自身的需求才是最重要的,每个人都应该有自己的理解。

  ● 自动化测试管理框架,偏向于自动化测试的全局架构理论,把自动化测试的各个环节、要素的说明和规范文档化,测试管理结构文件实例化,在没有背离测试主旨的前提下,自动化可以在规范圈定范围内任意发挥,只要满足测试需求即可。这种框架本身也带有一些基于本公司业务特点和使用需求的其他功能,例如测试运行调度、邮件服务的使用、文件服务的使用和报表分析等等。这种框架在管理上下了较多的功夫,有了成型的架构之后就可以不依赖任何一个技术核心人物,大大降低了技术储备的难度和人员离职带来的风险。缺点是在这种理论指导下若没有相应的商业工具支持,框架开发或工具和框架的二次开发比较费时费力。

  ● 自动化测试开发框架,典型的代表就是被很多人推崇的QTP的自动化测试框架SAFFRON。这种框架的作用就是简化自动化脚本编写,分离业务、脚本操作和数据,自定义封装一些常用的操作,使自动化脚本在业务系统发生变更时更容易维护、开发速度更快。这种框架立意于直接达到关键字驱动的效果,但是如何能与整个测试部门或公司的管理有效的整合在一起,对测试管理工作起到决策支持的作用呢?很显然,单凭这个原型化的框架本身是很难做到的,因为它很单纯的应用于自动化测试程序开发这个动作本身,笔者觉得这种框架有一个更贴切的名字:自动化测试脚本开发辅助框架。个人理解,关键字驱动和数据驱动的最大区别在于描述性语言的使用上,描述性编程的优势是大幅减少了脚本对页面对象稳定性的依赖。像SAFFRON这种框架的好处也就在于即便页面控件的属性发生了一些变化,在它下面开发的脚本也能继续运行,除非出现逻辑上的不一致。而事实上对于我们的系统来说,页面元素的变化对我们来说也是一个系统监控点:是什么样的需求让编码人员去做这样的变动呢?带着这个疑问系统测试会做得更细致,如果忽略了这些微小的变更,测试缺陷遗留的风险将有可能会提高。所以两种编程方式各自有着自己的优缺点,从自动化测试脚本维护工作量和脚本灵活性的角度笔者更愿意使用描述性语言,但是从系统测试的可信度和是否足够细致的角度上去考虑,有些人可能更愿意使用傻瓜式的对象库。

  一种是理论化的概念管理型,一种是实际化的开发应用型,我们的理想自然是理论结合实际了。那么不妨把两种框架实例化地整合在一起,扬长避短,用来满足我们自身的需求。仔细考察一下上面描述的两种具有代表性的典型自动化测试框架,我们会发现他们并没有冲突,并且在本质追求上都是一致的:让自动化测试更加快捷方便。我们可以考虑把小的框架封装起来,作为大框架的一个组件来使用,这样并不影响他们各自的长处发挥,并且能够很好的消除各自的弱点。同时很明显,以大框架的包容性是不仅仅只能容纳一个小框架的,需要指出的是,不同的测试脚本开发原型框架有着不同的特点,对脚本编写人员的技能、测试工具、测试开发环境等因素的要求不一样,引进的时候我们或许会发现它本身存在与整体框架规范冲突的地方,这就需要我们在执行该领域规范的时候灵活变通,实现兼容并蓄。

  如果单从概念形式上还不能明确定义什么是自动化测试框架的话,那么我们不妨从自动化测试的发展进程来看看。众所周知基于QTP的自动化测试经历了下面这四个阶段:

  ● 简单的录制、回放

  ● 录制、参数化、加检查点

  ● 模块复用、数据分离——数据驱动

  ● 对象、操作、数据分离——关键字驱动——组件分离

  这是一个自动化测试由简单到复杂的过程,一个自动化技术难度越来越大的过程,一个让自动化测试更具灵活性的过程,也是一个让自动化测试越来越有趣的过程。不过,无论自动化测试如何发展,测试对自动化的需求始终没有变化:简化复杂的操作过程、保证测试的简单高效!那么我们如何把这些被拆解得支离破碎的一个个组件有机地组织在一起,来满足测试的简单高效的要求呢?自动化测试框架!所以,或许大家现在明白什么叫做自动化测试框架了:

  能够有效组织和管理自动化测试中所必需的各个组件、有计划地进行自动化测试执行并且支持测试结果分析和测试过程改进的结构实例或文件实例就是自动化测试框架。

  其实百花争鸣是一件很不错的事情,尤其在对新事物的探究上,众口一词未必是好事,异议多、冲突多说明大家的经历多、需求多,如果从众多的经历和需求中找出共性,稍加提炼,那么或许很快大家的需求就会得到满足。希望所有的人能够从系统测试的实际出发,尽量把视野放宽,不要盲目相信或者排斥他人的观点,多思考,或许你能找或者搭建起到一个真正属于你自己的自动化测试框架,并且能分享给大家。

  2、自动化测试框架内容

  自动化测试框架不仅仅是自动化测试技术的体现,它更多的体现为自动化测试管理的文件实例化。我们暂且把敏捷测试自动化放在一边,先看看我们基于QC+QTP的UI级自动化验证测试的管理框架都包含哪些常用的组件。

  接下来笔者会对这些框架组件做简单的陈述,但不会对每一部分内容都进行详细的描述,只是有些笔者认为大家需要注意的地方或者笔者比较了解的地方会多说两句,其余的大家看图即可。不过大多数QTP自动化测试框架大同小异,只不过可能有些人选用的方法比较有自己公司的特点,还有些框架的生成被封装在一个安装包里,加入了一些测试脚本开发的快捷插件程序。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值