51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2301|回复: 2
打印 上一主题 下一主题

[讨论] 自动化测试的发展前景

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-6-5 15:50:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我曾经做过测试自动化,也维护过测试自动化框架,还做过培训师,也做过测试自动化教练。

测试自动化和任何其他一个职位或角色都没有区别,无非就是干个活,只是所需要具备的技能不同而已。
拿测试和开发比,就像拿着桃子和葡萄比,有什么意思呢,两者都有价值,而且还得合作才能创造更大
的价值;至于测试和测试自动化,很多人混为一谈,以为是差不多的玩意儿,其实这个中间的区别很细
致且很多。

自动化的前景完全不必担忧,且不说人类社会发展的大方向就是自动化,难道我们如今不是把很多很多
的工作都交给了各种工具么?这些工具不都是什么看得见的机器人,软件和网络服务也是在自动化我们
以往必须动手的工作。想一下Excel里给财务数据排个序,谁还能回想一下没有类似工具的时候我们是怎
么做的?以及,没有计算器的时候,我们怎么计数?

如今连富士康这种劳动密集型企业也终于幡然醒悟开始引入自动化机器人的时候,还在这里争论测试自
动化的前景,真的没有必要。但是,同样一个东西,也有做得好做得不好的区分。你说,手机有没有前
途?平板有没有前途?苹果来做,那是真有前途;山寨呢?就算是看得见市场的前景一片光明,他们也
不见得一定能走向这段前途。

市场有没有前景是一回事,自己能否把握住,是另一回事。测试自动化一定是未来的方向,目前软件开
发这一块所流行的敏捷、DevOps、持续交付、持续部署啥的,通通都是以自动化为根基的(不仅仅是
测试的自动化),没有自动化能够做到么?

测试和开发的技术含量这个问题太热门,但很多人在讨论中都缺乏逻辑。什么是技术含量?哪些技术?
如何比较?拿苹果跟葡萄比汁水多,不是找抽么。测试工作的关键或核心品质在于思维,测试思维,手
头的操作能力固然重要,但是没有相应的测试思维,设计出来的测试用例执行再快、各种图形化显示
再炫,也是垃圾测试用例,因为它们没有效果啊!拿测试工作人员去跟开发工作人员比拼谁代码写得
好,有意思么?要是代码写得很好,又在犹豫这个问题,那你应该直接去做开发,更能够发挥自己的
长处。当然,肯定有一些朋友是代码写得好,又很有测试的思维的,那就更好啦,路非常宽:去做开
发,他们的测试思维能帮助他们写出更好的代码;去做测试, 他们的编码能力能够帮助他们更好更快
地帮助开发人员找到问题的根源并解决问题,甚至于他们可以直接修复问题,从研发整体来看可以降低
bug修复成本、提高bug修复速度,因为他们在发现bug的一线就把bug给修复了。

测试的主要工作就是收集证据、形成假设,执行操作、验证假设。和CSI很像,这也是Cem Kaner他们
在一次演讲中就说过的。测试人员的关键在验证“逻辑”,验证“合理性”,而开发人员的关键在于证明“
可行性”。这明明就是两种不同的工作内容,要去比较他们的技术,该如何比呢?都是做软件,都是做
同一个产品,自然有很多相同的都要懂的东西,但是需要懂的程度各不相同,如果一定要比较,那也
是有高下的,开发人员的测试技术含量一般来说没有测试人员高,而测试人员的开发技术含量一般来
说也没有开发人员高。这种结果比出来也是很无聊的,对不对呀?同一个系统,开发人员要对系统进
行修改和增加功能,他们必须要知道系统的设计原理、架构,以及相应的开发语言和环境,还要去读
代码,理解代码的实现,因为这些都是他们增加新功能新代码的时候会涉及到的。而测试人员呢?当
然也要了解系统的设计原理和架构,因为这样才能相应地设计出充分且足够的测试用例去覆盖,语言
和代码部分了解即可,环境当然也要懂,但主要的不是开发环境,而是测试环境。那么,我们可以说,
开发对系统的熟悉要达到“掌握”的程度,而测试熟悉到“理解”程度也差不多够了。

但是我们再回过来看的话,开发通常只需要也只能够了解系统的一部分,因为他们要深入,要掌握这
一部分所有的细节。而测试呢,因为不需要深入了解实现的过程和知识,更关注的是软件的呈现,通
常所负责的范围会比开发的宽,知道系统更多部分的原理。从这个角度来比较,开发的知识量远远不
足啊,就好比是开发只知道一个模块,而开发却知道好几个甚至十几二十个模块,谁更牛?

有些朋友可能不爽了,说开发也懂很多模块的啊?别拿个例来说话,那测试也一样有很牛逼的人呢。
我们说的是一般情况,也即average的情况。任何一个人只要肯投入时间不断地精炼自己的能力,横跨
几个领域不也是很正常的事情么,这一点《异类》等文章里有描述,不多说。但另一点不得不提的是,
上述的说法也取决于所处的行业以及产品的关键因素在哪里,也决定了开发、测试的边界在何处,也
决定了开发、测试人员的比例以及他们对这个问题的回答。比如coolshell在博客和微博上都有表过的态
,他认为不需要有专职的测试(有兴趣的去看他博客、微博,此处不讨论)。

提升自身竞争力,跟担当什么角色没有关系。只要你能认清楚角色的价值、所需要具备的技能,不断
地修炼、反思和继续提高,就行。开发工作每天都有写代码这个很明确的任务驱动着,要学习什么通
常也有解决问题(例如需要找到某个API来实现某个功能)来驱动着,所以相对来说,提高的进度更可
见。而测试人员,更重要的是理解各种“道理”,也即系统运行的道理、各模块集成的道理、客户提交
bug背后的道理,这些,则是不那么容易见效的东西,而当你认清楚了一个道理的时候也并没有那么
容易被人看见,所以只是相对来说,提高的进度不那么可见。因而会让大家觉得好像测试的提升没有
开发快。

但测试有一个好处,就是道理通常都是想通的,在顺畅的情况下,到了职业发展的中期,相对来说会
体现出更大的优势,因为,由于工作所养成的习惯,更喜欢也更容易做到触类旁通、举一反三。(别
跟我谈开发也可以,当然可以,他们学好了一门语言,学另一门自然快。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-25 09:26 , Processed in 0.069279 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表