Automation Framework Design 自动化框架设计思想
从2007年到2017年,十年内自动化测试工具层出不穷,各种工具在运用一段时间之后,各个公司都会有测试架构师对于目前的自动化测试工具进行框架定制设计。
从惠普2007年GDCC推出的的WebDrivier,到2010年Sean Xu时期HPIT TCOE推出的Data Driven,到后来2012年印度人卖得死贵的TAO框架,都成为了QTP或者说UFT付费框架的典型产品。如今诺基亚研发的Robot Framework,Eclipse上面的TestNG+Selenium种种免费的框架,慢慢代替了传统自动化框架,成为了各大公司的新宠儿。
那么不管基于哪款框架的产品自动化,为了适应新产品或者新功能的开发设计+自动化快速测试,都需要对框架进行升级、设计、维护等一系列工作。今天我想分享的是针对一家大型保险公司的多款系统产品方案,实现的新自动化测试框架的设计理念,这款框架的最后售价为200万美金左右。有点小贵,但是确实真正意义上实现了自动化测试框架的自定义设计和测试用例设计快速设计,完成了客户要求的测试成本的降低率。
设计理念的原图:
自动化框架设计的思想
1. Business Components 业务组件
在框架下,我们要考虑的是两个方面,一个是基于所有应用的功能调用,另外一个就是business component. 例如登录,例如保险中的询价,报价,合同,付款等都属于business component的一部分,这些跟业务流程相关的,从设计思想来说,必须和基础功能完全分离。
2. Test Case 测试用例
测试用例的设计,要有这样的一个概念。 用例设计中,可以反复调用业务组件,但是不可以跟业务组件混淆,要基于测试设计的概念,配合测试数据来实现用例设计。输入和输出,仅仅只是在测试用例中体现的。
3.引擎的概念Engine
我们设计引擎的时候,会考虑两个方面,一个是语言的,比如Java, Python, VBS,JS等语言包的支持;另一个很自然的就是自动化的引擎,考虑到自动化对测试业务流、数据流的反复操作,引擎设计的优劣会影响到后期大量执行数据介入时,产生的执行时间和效率,所以Automation Engine应该是配合我们的产品架构进行定制化的。
4. 测试管理
在这个架构中,对测试用例,测试数据和测试结果的管理,我们推荐的是惠普的QC/ALM, 那其实JIRA也是一款很不错的管理工具,而且也在不停的完善中。
5. 工具的选择
在工具的选择上,目前推荐UFT或者Selenium,都是功能强大的产品,UFT这款产品的优点在于测试脚本在后期的开发维护成本相对少,而且上手简单。 缺点就是很多公司无法接受昂贵的许可证费用。 Selenium相对来说后期维护成本高,而且对测试人员的代码能力有一定的要求。 但是优点是免费,并且有很多的框架可以支持其功能输出。