自动化测试,特别是UI级的自动化测试是一件费力而不讨好的事情。自动化测试使得测试人员疲于应付,朝不顾夕,如坐针毡,苟延残喘。UI级的自动化测试看起来很美好,就像罂粟,如果你经不住诱惑冒然尝试,那么后果很严重,下场很惨淡。
也许这个世界上就不应该出现自动化测试这个东西,起码在中国不应该出现,因为这个是无效的,无用的,宿命是失败的东西。
应该怪罪于一小撮别有用心的积极分子,他们推广敏捷,推广自动化测试,推崇人应该追求挑战,追求自由,应该把重复性的工作交给机器去完成。他们也许目的是崇高的,是正确的,但是在中国推广这个,他们是不合时宜的,是注定失败的,因为自动化测试是无用的东西,我们看到过太多的尝试,太多的失败,太多的先驱变成先烈,太多的媳妇熬不成婆,所以我们可以自豪的说,中国是没有自动化测试滋生的土壤的,一切妄图进行自动化测试的行为最终都会以失败告终,被遗忘在历史的角落。
让我们回到没有自动化测试的那遗失的美好的时代中吧。那时候没有自动化发布,没有自动化打包,800台机器一台一台人工发布,修改配置文件。尽管效率不高,但好在可控;尽管人工操作会犯错(笔者曾经以root身份rm -rf /*过),但人非圣贤孰能无过,大不了影响一下用户或客户,这总比绞尽脑汁写发布脚本,搭建发布框架要好的多。脚本和框架写起来是很费时间的,有那个时间我们早就发完800台机器了。
那时候也没有自动化测试回归。回归时间紧张?没关系,中国别的不多,就人多,我多招几个来点,加班加点的点,总能勉强完成赶上deadline;回归时人会出错,从而遗漏bug,没关系,大不了影响一下用户和客户,这总比费尽心力去写自动化测试脚本要好,有那个时间去写脚本,我们早就回归完好几轮了。而且这个项目是一锤子买卖,一咬牙,一闭眼,一个项目就交付了,一闭眼,一咬牙,一个版本就发布了。尽管回归很痛苦,但是忍过去总会守得云开见月明。
没有自动化测试的时代确实是测试人员的黄金时代!从业三年的测试人员,除了点来点去还会什么?
会写测试用例?可以不客气的说,刚毕业的大学生也会写,价钱便宜还主动加班,用例写的一坨一坨的,价钱便宜量又足;
懂业务逻辑?不好意思,现代社会变化太快,业务逻辑这东西也不是一成不变的。搞不好哪一天一觉醒来,原先的既定业务逻辑就变成了过去时,懂的越多反而越是负累;
有经验,做过项目?很可惜,这种经验不是核心竞争力。但有人成本比你低的时候,经验完全就是奥尼尔的罚球———可以随意忽略。
那这个测试人员到底会什么?答案很简单————点来点去。除了点来点去,录一个bug,跟开发人员争论,与客户周璇(很可惜,最底层的测试人员连客户的影子都见不到),会写一些项目必须的文档(测试策略,测试计划。很可惜,低级的测试人员连写这些文档的权利都没),除了这些,到底还有什么呢?
有时候现实就是这么残酷,静下心来仔细想想,除了点来点去,很多测试人员真的什么都不会。
我不是说写测试用例,懂业务逻辑是一文不值,这些技能是不错的,而且经验有时候确实很重要,但这些都不是核心技能。就像LOL和dota里的英雄,如果他们没有大招那会怎么样?没有大招的英雄就是万年陨石坑!同样没有核心技能的测试人员自然就不太那么值钱了。于是只能叹息自己入错了行,鄙视开发高薪低能(拿那么多钱写的代码还全是bug),自怨自艾,不思进取。