无用的自动化测试

标签: 无用 自动化 测试 | 发表时间:2013-08-08 08:00 | 作者:nbkhic
出处:http://blog.csdn.net

自动化测试,特别是UI级的自动化测试是一件费力而不讨好的事情。自动化测试使得测试人员疲于应付,朝不顾夕,如坐针毡,苟延残喘。UI级的自动化测试看起来很美好,就像罂粟,如果你经不住诱惑冒然尝试,那么后果很严重,下场很惨淡。

也许这个世界上就不应该出现自动化测试这个东西,起码在中国不应该出现,因为这个是无效的,无用的,宿命是失败的东西。

应该怪罪于一小撮别有用心的积极分子,他们推广敏捷,推广自动化测试,推崇人应该追求挑战,追求自由,应该把重复性的工作交给机器去完成。他们也许目的是崇高的,是正确的,但是在中国推广这个,他们是不合时宜的,是注定失败的,因为自动化测试是无用的东西,我们看到过太多的尝试,太多的失败,太多的先驱变成先烈,太多的媳妇熬不成婆,所以我们可以自豪的说,中国是没有自动化测试滋生的土壤的,一切妄图进行自动化测试的行为最终都会以失败告终,被遗忘在历史的角落。

让我们回到没有自动化测试的那遗失的美好的时代中吧。那时候没有自动化发布,没有自动化打包,800台机器一台一台人工发布,修改配置文件。尽管效率不高,但好在可控;尽管人工操作会犯错(笔者曾经以root身份rm -rf /*过),但人非圣贤孰能无过,大不了影响一下用户或客户,这总比绞尽脑汁写发布脚本,搭建发布框架要好的多。脚本和框架写起来是很费时间的,有那个时间我们早就发完800台机器了。

那时候也没有自动化测试回归。回归时间紧张?没关系,中国别的不多,就人多,我多招几个来点,加班加点的点,总能勉强完成赶上deadline;回归时人会出错,从而遗漏bug,没关系,大不了影响一下用户和客户,这总比费尽心力去写自动化测试脚本要好,有那个时间去写脚本,我们早就回归完好几轮了。而且这个项目是一锤子买卖,一咬牙,一闭眼,一个项目就交付了,一闭眼,一咬牙,一个版本就发布了。尽管回归很痛苦,但是忍过去总会守得云开见月明。

没有自动化测试的时代确实是测试人员的黄金时代!从业三年的测试人员,除了点来点去还会什么?

会写测试用例?可以不客气的说,刚毕业的大学生也会写,价钱便宜还主动加班,用例写的一坨一坨的,价钱便宜量又足;

懂业务逻辑?不好意思,现代社会变化太快,业务逻辑这东西也不是一成不变的。搞不好哪一天一觉醒来,原先的既定业务逻辑就变成了过去时,懂的越多反而越是负累;

有经验,做过项目?很可惜,这种经验不是核心竞争力。但有人成本比你低的时候,经验完全就是奥尼尔的罚球———可以随意忽略。

那这个测试人员到底会什么?答案很简单————点来点去。除了点来点去,录一个bug,跟开发人员争论,与客户周璇(很可惜,最底层的测试人员连客户的影子都见不到),会写一些项目必须的文档(测试策略,测试计划。很可惜,低级的测试人员连写这些文档的权利都没),除了这些,到底还有什么呢?

有时候现实就是这么残酷,静下心来仔细想想,除了点来点去,很多测试人员真的什么都不会。

我不是说写测试用例,懂业务逻辑是一文不值,这些技能是不错的,而且经验有时候确实很重要,但这些都不是核心技能。就像LOL和dota里的英雄,如果他们没有大招那会怎么样?没有大招的英雄就是万年陨石坑!同样没有核心技能的测试人员自然就不太那么值钱了。于是只能叹息自己入错了行,鄙视开发高薪低能(拿那么多钱写的代码还全是bug),自怨自艾,不思进取。

让这样的一个群体去做自动化测试,不失败才是见了鬼。

让无能之人去做一些有技术含量,甚至是很有挑战的事情,这才是自动化测试在中国注定失败的原因。

这就像是让潘长江去扣篮,让林黛玉去举重一样,能力不足,自然事倍功半,功败垂成。

说到这里,我们终于从众多的流言蜚语中发掘到了一丝事情的真相,确实,在中国,这是国情使然。

其实自动化测试的作用是很明显的。自动化测试是敏捷的一个实践,敏捷提倡让一切能自动化的工作都自动化起来,比如部署,发布,测试等等。这些都是重复劳动的重灾区,解决了这些环节的自动化能很大程度上提升整个项目团队的能力与生产率。记住一点,生产率是与能力相关,不太与流程相关。说形象一点,让林黛玉举重,你的流程再规范,你教给她的动作再标准,恐怕她也举不起几十斤的杠铃。能力只有一瓢,怎能指望他去充当弱水三千?

所以在这里我反而不想讨论自动化测试真正的意义与实践,存在即是合理,这点已经足够说明问题。

在这里我想要讨论的是测试人员怎么才能真正的去提高自己的水平。放大招很爽,也很厉害,但是6级之前,在那些没有大招的日子里,辛苦一点是无法避免的。

开发之所以赚的多说白了就是他们会的多。如果你想赚的比他们多,其实也很容易,比他们会的多就成。当然你也可以完全逆袭,自己开个公司,请一批开发做测试,招一票测试做开发,让开发也尝尝痛苦的滋味,这个也可以,但不在本文讨论的范畴之内了。

其实做自动化测试是提升自己的一个很好的契机,哪怕你所在的团队没有正式的提出要进行自动化,你也可以尝试着自己去一些这样的工作,因为一旦你的重复劳动被机器分担,那么你完全可以省下不少的时间去自我充电。

混开发也好,做测试也罢,其实都是逆水行舟,不进则退。技术是一条学无止尽的不归路,如果你没做好这个准备,请移步,这里没有一劳永逸,只有不断学习,无限循环。

于是我的观点也很清楚了,自动化测试其实是每个测试人员都值得去尝试的一件事情。开始总是会很痛苦,但是先苦后甜。不要忘了在什么什么的时候,女生起初也很痛苦,后来反复实践才会有快感出现。所以开始挫折一点是可以接受的。大招总在6级后,阳光总在风雨后,这个道理人人都懂。

web自动化测试是需要一定能力的。

  • 会一门语言。当然我推荐python和ruby,原因不言自喻。

  • 会一些语言。比如js,比如css比如html。

  • 会一些工具。比如我最喜欢的 watir-webdriver,selenium等。

  • 会测试。很多人会写测试用例但是连断言都不知道,这恐怕不能算是懂测试之人吧。

怎么开始?

我分享过一些资料,尽管有些已经年事已高,但还是比较有帮助的

作者:nbkhic 发表于2013-8-8 16:00:47 原文链接
阅读:73 评论:0 查看评论

相关 [无用 自动化 测试] 推荐:

无用的自动化测试

- - CSDN博客研发管理推荐文章
自动化测试,特别是UI级的自动化测试是一件费力而不讨好的事情. 自动化测试使得测试人员疲于应付,朝不顾夕,如坐针毡,苟延残喘. UI级的自动化测试看起来很美好,就像罂粟,如果你经不住诱惑冒然尝试,那么后果很严重,下场很惨淡. 也许这个世界上就不应该出现自动化测试这个东西,起码在中国不应该出现,因为这个是无效的,无用的,宿命是失败的东西.

iPhone App自动化测试

- BeerBubble - Taobao QA Team
         无线客户端的发展很快,特别针对是android和ios两款无线操作系统的客户端应用,相应的测试工具也应运而生,这里主要给大家介绍一些针对iPhone App的自动化测试工具.          首先,我们把这些测试框架分为三大类:接口测试工具、注入式UI测试工具、录放式UI测试工具.

Android Robotium自动化测试

- - CSDN博客移动开发推荐文章
1、官方网站下载测试工程demo. 从 http://code.google.com/p/robotium/downloads/detail?name=ExampleTestProject_v3.6.zip 下载官方的Android测试工程demo. 解压后的文件NotePad、NotePadTest、readme.txt.

Android UiAutomator 自动化测试

- - 操作系统 - ITeye博客
一、一个BUG引发的问题.     如果研发过程中有一个BUG:“不断的切换手机语言出现花屏现象”. 我想,最好的方式应该是自动化测试.     那么,自动化测试可以完成哪些任务呢.     简单的说,那些重复性的测试工作,都可以交给自动化完成:.         1、设置手机的语言.         2、添加、删除、收藏联系人.

Robotium 自动化测试

- - CSDN博客推荐文章
Robotium 自动化测试. Android Studio环境下,在所要测试的Module的build.gradle文件下添加,. Robotium即是对Instrumentation框架方法的封装,所以使用之前需要继承测试类,重写构造器,setUp()和tearDown()方法. 其中继承的是ActivityInstrumentationTestCase2测试类.

Android自动化测试解决方案

- Haides - InfoQ中文站
现在,已经有大量的Android自动化测试架构或工具可供我们使用,其中包括:Activity Instrumentation, MonkeyRunner,Robotium,以及 Robolectric. 另外LessPainful也提供服务来进行真实设备上的自动化测试.

InstrumentDriver,对iOS自动化测试说 Yes!

- - Taobao QA Team
    InstrumentDriver 是 Mobile自动化小组最近实现的基于 instrument,针对 iOS 的自动化测试框架,目前支持 java 语言编写测试用例.     研究过iOS自动化测试的同学肯定对 instrument UI Automation 有所耳闻,或者已经使用它进行自动化测试实践.

菜鸟学自动化测试(九)----WebDirver

- - 博客园_首页
关于什么是WebDirver,上一节做了简单的描述,环境也在上一章中搭建完成. 下面我们拷贝了官网提供的一个实例. 让其在我们的eclipse中运行. Selenium WebDirver 代码如下:. // 用Firefox driver创建一个新的的实例. //注意:其他的代码依赖于界面. WebDriver driver = new FirefoxDriver();// 这里我们可以使用firefox来运行测试用例.

前端自动化测试探索

- - FEX 百度 Web 前端研发部
测试是完善的研发体系中不可或缺的一环. 前端同样需要测试,你的css改动可能导致页面错位、js改动可能导致功能不正常. 由于前端偏向GUI软件的特殊性,尽管测试领域工具层出不穷,在前端的自动化测试上面却实施并不广泛,很多人依旧以手工测试为主. 本文试图探讨前端自动化测试领域的工具和实践. 一个项目最终会经过快速迭代走向以维护为主的状态,在合理的时机以合理的方式引入自动化测试能有效减少人工维护成本.

Android 自动化测试工具初探

- - IT瘾-geek
Android 自动化测试工具初探.    这段几乎都编写代码,没有新的心得体会.唯一由感想的是在测试上.由于策划的变动,接口的完善等因素,总在不停的修改功能,修改代码.由于项目中的代码都经过了好多少,又没有很好的架构规划.所以在修改或测试的时候难免会有遗漏的地方,这个时候就在想android是不是也应该有自动化测试工具来辅助测试.使得功能更完善点.本期的创新文档只能算是对自动化创新工具的一种简介..