通用技术 [转发] 自动化测试——回顾与展望

思寒_seveniruby · 2014年02月26日 · 最后由 在路上 回复于 2019年08月08日 · 2910 次阅读
本帖已被设为精华帖!

转发自 infoQ
写的很好, 推荐大家去读读原文

http://www.infoq.com/cn/news/2014/02/autotest-2013

2013 年已经过去,在这篇文章里,我希望和大家一起来整理一下 2013 年自动化测试领域一些比较值得关注的变化,也展望一下 2014 年可能发生的变化,希望读者可以从中可以发现一些线索,进而做相关延伸阅读。在过去的 2013 年里面,自动化测试领域发生了几大变化:

接下来说说我对 2014 年的展望吧:

  • 移动测试成为热点 随着移动互联网的爆发,移动测试自动化很快地被提到议事日程上面来了。这方面今年会有几本国内作者原创的图书出版:@ 厚脸皮 - 芈峮的《iOS 测试实践》,@Monkey陳曄曄 - 陈晔的《大话测试——移动互联网 Andoird、iOS 应用测试》。
    从工具方面,很高兴地看到这方面的开源工具风起云涌,如 Robotium、Frank 等等,但是,从目前趋势来看,我个人非常看好 Appium:一种支持 WebDriver W3C 协议,同时支持 Android,iOS 的开源测试工具(参见 Appium 支持测试原生、混合及 Web Android 应用:http://www.infoq.com/cn/news/2013/05/appium-android)。

  • REST 接口测试成为 Web 自动化测试的补充: 随着前端 MVC 框架的大范围应用,REST 接口应用范围也越来越广,基于 REST 接口的自动化测试成为一种投入产出比很理想的测试方式,相对于 Web 界面自动化,REST 接口相对而言更加稳定,测试案例也更容易维护。REST 接口测试可以成为 Web 自动化测试的有益补充:REST 接口测试可以关注于服务器逻辑验证,而 Web 自动化测试可以关注于页面展示逻辑及界面前端与服务器集成验证。REST 接口测试框架有许多种不同的实现方式,我个人会推荐使用开源工具 Robot Framework 加上 Requests 库来进行 REST 接口测试。(感兴趣的读者可以参见下面的文章,其中有对 Robot Framework 的介绍: 功能测试工具研讨会:http://www.infoq.com/cn/news/2009/09/functional-test-tools/Robot, Framework 作者建议如何选择自动化测试框架 ,http://www.infoq.com/cn/news/2012/06/robot-author-suggest-autotest

  • 用例辅助生成技术初露端倪: 用例录制回放技术一直是许多测试人员(领导)心中的一个梦想,但是,我要残酷地告诉大家,这是一个白日梦,所有宣称能够通过录制回访技术来全自动获取可维护测试脚本的个人和厂商无疑都是骗子。测试脚本也是程序,也需要经过仔细设计,应用若干设计模式,才能达到简洁、易读、易维护的目标。(有兴趣的读者可以参考:Martin Fowler 对将 page 对象用于 Web 测试的基本经验法则 http://www.infoq.com/cn/articles/martin-fowler-basic-rule-of-thumbon-for-Web-testingGUI 功能测试自动化模式:http://www.infoq.com/cn/articles/gui-automation-patterns)。,以及 但是,我们不能否认,确实可以利用录制技术,在特定工具的帮助下,自动捕获一些信息,再自动应用一些设计模式来辅助案例的编写工作,尤其在接口测试方面,可行性非常大,这一块会是本人今年的一个研究重点。对这方面有兴趣的读者,可以参见这两个工具 vcr(https://github.com/vcr/vcrBetaMax(http://freeside.co/betamax/)。)和

  • Mock 系统技术逐步普及: 在自动化测试过程中,构建稳定的测试环境至关重要,其中一个重要手段就是将外部系统或不稳定的系统 Mock 起来。这方面去年@dreamhead-郑晔已经开源了一个支持 HTTP 协议的 Moco 框架(感兴趣的读者可以参见:郑晔谈 Moco 框架的开发:写一个好的内部 DSL,写一个表达性好的程序,http://www.infoq.com/cn/news/2013/07/zhengye-on-moco@ 横刀天笑 - 余昭辉也分享过他们在去哪儿网的实践),(参见:为功能测试构建通用 mock server 系统,http://www.infoq.com/cn/articles/auto-test-mock-server)。 诚然由于环境的复杂性,上述工具未必可以完全解决大家在各自测试中的各种系统隔离需求,但是我相信他们解决这些问题的思路,应对会让大家深受启发。

  • 测试 DSL, 实例化需求走向前台:《实例化需求》一书是 2012 年 Jolt 图书大奖的获得者,当年就引进中国。实例化需求的思想其实和验收测试驱动(Acceptance Test Driven Development)类似,限于篇幅这里就不详细展开解释了。但是两者都需要测试案例具备很高的抽象层次,可以被业务人员和开发人员很容易地读懂,这就需要实现测试 DSL(Domain Specific Language),也就是说需要在一个特定领域之内,将特定测试能力封装成一门易于业务、测试、开发理解沟通的专用测试语言,然后用这门 DSL 来编写实际测试案例。Robot Framework 作为一个关键词驱动框架,可以很好地支持测试 DSL 的定义。下面就是我们团队在一个客户出实现的测试 DSL,供大家参考:

我本人认为,作为一名测试人员,不应该区分手工测试人员和自动化测试人员,自动化测试技术是每个测试人员都必须掌握的技能,希望在 2014 年所有 InfoQ 的测试行业读者都能在自动化测试技术方面更上一层楼。

吴穹
资深敏捷专家,Agilean 联合创始人 wuqiong@agilean.cn 公共微信号: Agile-Testing-China
感谢杨赛对本文的审校。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 17 条回复 时间 点赞

robot framework + appium 会是一个不错的选择。

#1 楼 @lihuazhang 恩 运行, 截图, report 都不错.

#1 楼 @lihuazhang 串起来很给力阿

TW 的持续集成框架 GO 已全面开源 http://www.go.cd/

金字塔图中间部分 service 我可以理解过集成测试吗?

#5 楼 @kevin_xu_v 主要是接口测试, diff 测试等

#1 楼 @lihuazhang why? appium 做为 robot 类似插件的作用?

#8 楼 @kevin_xu_v appium 做驱动,robot 提供更加好的报表。

#9 楼 @lihuazhang 那就是针对移动平台的一个自动化解决方案

#9 楼 @lihuazhang robot fw 他自己本身也有移动平台的 lib,只是用的是 calabash,是不是可以自己写一个基于 appium 的 robot lib?这不就把 2 者结合起来了吗?

#1 楼 @lihuazhang Robot framework 看着好复杂啊

#13 楼 @jacky 还不错,用起来就好了,现在有点喜欢它了呵呵

#1 楼 @lihuazhang robot framework + appium = 脚本 + appium ? 也挺好的 RFW 可以直接出报告。hmmm

好想法!!!

现在看起来,这个帖子还是价值千金,希望 testerhome 每年都有相关趋势预测及分享

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册