如何构建自动化测试框架?

发表于:2010-7-09 14:06

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

 作者:san,liaoxj    来源:51Testing软件测试论坛

问题描述:自动化测试之初,业界并无框架一说,某日,江湖传闻“自动化测试框架”,其为何物不得而知,只知其能助软件企业一臂之力。顿时,江湖掀起“框架”狂潮,“自动化测试框架”百花齐放,百家争鸣。尤以“测试模块化”,“业务流程测试”,“数据驱动”,“关键字驱动”,“智能测试自动化”等曝光率最高。江湖中人个个擦亮眼睛,欲窥其真谛,然框架始终以面纱罩之,亦朦胧亦神秘。

  今欲邀天下测试之士,共商框架大事,如能聚天下之言,掀其神秘面纱,甚喜,甚幸!

精彩答案:

会员 san

  自动化测试知识分两个方面:

  1. 使用策略

  2. 工具

  我们自由学习和讨论时候更多的是讨论工具使用。但其实从工具演变的历史看,都是为了某个目的,且配合能在项目高效使用的具体策略服务。工具一直在发展在变,策略也是在变,但我们使用自动化的原因和目的不变。测试框架和工具的不同,是在工具本身提供的功能上,集成了相应部分策略的系统。为了了解他们的不同,要从工具发展和演变说起。

  我们在这里先讨论GUI层面的自动化:

  1)最初的GUI自动化工具只提供了录制和回放的功能,记录底层鼠标和键盘的操作轨迹,并回放,但并不能以某种方式(例如某种语言/脚本)展现出来。

  2)而后大家发现这样做的不灵活和不稳定性,于是考虑不仅仅从底层的鼠标键盘模拟,而且从识别并控制GUI底层所采用的技术对象来模拟。并且把录制的结果以某种方式解析出来。这样做的好处显而易见,有了可展现且易于用编程语言展现的平台,直接为模块化,参数化提供了条件。于是有了大家通常看到的UI自动化工具:能识别和操作界面对象,提供录制回放功能,且通常提供某种过程化语言的展示和修改平台。

  3)在此之后进入类似百家争鸣时期,大批的商业和open source的UI自动化工具涌现。他们在对象识别方面各有偏向和优劣,提供的展现平台也各有差异。在工具选择上我们正是依据他们在这两方面的表现作出决策。但同样工具在不同公司使用上差异也很大。正如同样一门语言,做出来的东西和使用效果迥异一样。依据工具提供的展现平台/语言,具体公司在使用上定制出自己的代码规范,积累自己的函数库。于是在具体使用上出现了数据参数化/外部化,过程化和模块化,包括独立出环境初始化库/异常处理库/报告处理库等等。尔后在这些细节处理方法总结和实际目的上,萃取提炼出通用性和方向性的策略,如数据脚本分离,数据驱动,对象脚本分离,关键字驱动等等。一时风云涌动,依据需求而变的东西呼之欲出。

  4)某些工具提供商和使用工具的公司本身,于是考虑是否能把某些使用策略和思想集成到工具本身,从而提高易用性和效率。于是自动化测试框架被提出。这时候的自动化框架并不仅仅提供对象识别和控制,录制回放,脚本展示,且常常集成了test case的管理,对象库的管理,与CI系统集成等等。人们不仅仅追求对象捕捉的精准,更多的开始分析test case类型本身,更多的开始分析展现的其他更直观和易维护的形式,更多的开始分析系统在真实项目过程的需求。

会员 liaoxj

  不可否认,随着系统架构越来越复杂,带来测试技术的冲击是越来越大,公司测试架构形成对提高测试效率和质量,一定会是行之有效的手段。

  做测试架构前期需投入很大成本和时间,问:在很多公司连程序架构的思路都没有很好理清的情况下,我们如何去做测试架构。

  我是从公司只有两个测试人员的基础上,通过6年的努力发展到12人,我深有感触,测试架构形成要分三分走,首先人员架构,知识库架构,技术架构。

  人员架构建立是整个测试架构形成基础,当公司只有两个人做测试,何谈测试技术架构。记得我们两个人测试的时候,我们没有分工所有产品大家一起来。发展到四个人的时候,我按大产品线分两小组,当我们发展到7个人的时候我们按项目分组,发展到10个人的时候我们又回归产品线,今年我们发展到12个人时候,我们组建了自动化测试小组。

  知识库架构的建立是整个测试架构形成的资源的方向,并需要不断积累的完善。记得刚开始的时候我们所有测试都是功能测试而且全墨盒,但是我们积累了详细的业务知识,并整理了详尽的测试案例,后面根据产品线进行分类,并且获取了公用测试用例,并配合开发组形成了界面规范,数据库规范,代码规范等。后面由测试业务需要我们进行性能测试,尝试使用很多测试工具,jmeter、loadrunner、JProfile等,我们整理了工具的特性,什么时候应该使用工具,并且顺便整理了一些监控工具,有操作系统的OmniPeek、Aports等,网络监控工具TCPMonitor等,网页监控工具HttpWatch,Xenu等,也顺便整理了一个测试辅助工具如DataFactory、jsunit。形成了自己公司独有知识库体系和知识库管理流程。

  技术架构需要根据公司的测试团队规模和测试技术实力,目前还没有到哪家公司的测试技术框架能够照搬,参照也很难,做到借鉴已经不错,现在只通过自己公司知识库积累,搭建符合自己测试技术框架。小公司现阶段不适宜搭建什么测度技术框架平台,那很不务实的,但是小公司我们整理自己的“公用类库”,如QTP的公用类库,jsunit的公用类和方法。并在项目中执行,结束后,然后不断不完善。最后时机成熟了,就可以很好嵌入到所谓的平台。


原帖地址:http://bbs.51testing.com/thread-211647-1-1.html

版权声明:本文由会员san,liaoxj首发于51Testing软件测试论坛每周一问活动(10-05-24)。

原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。

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

精彩评论

  • jester.xu
    2010-7-09 23:30:18

    很难说清楚的一个问题,但是历史的车轮是会不断前进的。兄弟们加油。

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号