51Testing软件测试论坛

标题: 自动化的路怎么走,让我们迈出懦弱的一步吧 [打印本页]

作者: 云层    时间: 2013-11-11 10:14
标题: 自动化的路怎么走,让我们迈出懦弱的一步吧

自动化的路怎么走,让我们迈出懦弱的一步吧


曾经我们觉得自动化很神奇,曾经我们觉得自动化很难,曾经我们觉得掌握了QTP就掌握了自动化,若干年过去后,我们看看自己还在追赶国外的技术,我们真的有那么大的差距么?我想说的是未必!


大家可以看看行业中有名的那本自动化经典之书《QTP自动化测试权威指南》(印度人写的),在没看过之前,在我没有深入自动化之前,我也觉得我们离得可能很远,但是等我看到原版,看到翻译版,我觉得just so so,技术?我们从来没有学不过别人的,而唯一缺的却是胆量!就是认可自己的想法,认可自己的判断,而不是简单的重复前人走过的道路,我们需要勇敢的面对自己的判断能力,迂腐的把责任都推给别人。


常常我们会觉得IBMHP的测试工具代表了测试的顶端,而其实他们就不是一个测试公司,而测试产品不过也是并购别的测试工具公司。回头看看包括我自己也是如此,总是觉得国外的月亮比自己的圆!但是在我看到越来越多客户在使用国外测试软件中遇到的问题时,我开始彷徨;当我开始分析和设计自己的测试工具的时候,我也逐渐找到了信心,而我现在想说的是,我们应该相信自己,特别是当我看到恒大赢球的那一刻,我勇敢的写下了现在的这篇文章,让我们相信自己,而不要总是徘徊吧。


下面我从4方面来说说我对自动化的理解:

A.为什么要做自动化

手工测试逐渐被大家定义为了低技术含量的工作,而确实大规模的手工测试不但效率低下而且质量还得不到保证。通过自动化测试,我们可以解决两个问题:

1.相同成本下,自动化能做的比手工更好

2.相同效果下,自动化能比手工更省钱

对于现在很多行业中需要短时间大规模的发布,传统的瀑布模型长周期测试已经完全不能支持,自动化测试成为了必修之课。

B.自动化到底能做什么

其实自动化对于现在国内的企业来说,大多数情况下,是毫无用处的,主要原因在何处?相信做了自动化测试几年后的朋友会有点感受,对一个正确的东西跑100次还是正确的,除了能够看到一个报告能够满足一下自己YY的心理想法和获得一个自我心理安慰意外,真的提高了软件质量么?

没有!问题在什么地方?就是使用工具的人和使用工具的目的产生了偏差,偏差在于手工测试的设计没有达到标准,如果没有办法有效的测试用例,自动化的效果会非常的低,而另一方面为了自动化而自动化,既然没有能力控制版本变化,那么就用自动化做全面回归测试吧,这样看起来很Cool

其次自动化并不是什么高深的东西,但是往往由于在研发中没有考虑到自动化的一些需要,让自动化做起来总是那么的别扭,简单说就是总是让测试去配合开发的不规范,而不是反过来。做过单元测试的朋友应该深深理解这句话,你这个东西就做的不规范让别人怎么测,还得配合你这个来测?

我们现在要做自动化,并不是简单购买个工具就行的,而是真正成熟了团队、流程、去选择自动化工具来适合自己的团队,而且购买工具只是开始,实现自动化体系才是解决问题的关键。而自动化体系的实现无非就是两种:

1.招一个高手,自己内部探索实现

2.通过第三方咨询模式


C 自动化框架应该怎么做


首先要提一个问题,为什么要做自动化框架?


对于所有自动化工具来说都提供自身框架,但是这些框架都只能做到方面用户使用,却无法做到真正的自动化体系,该体系就是打通自动化与各个系统的关系,而不是让自动化执行成为自动化唯一的孤岛。


自动化体系需要体现的是从需求到研发,从研发到发布,从发布到测试,从测试到分析统计等方面的全方位自动化,将人从繁重的执行工作和收集整理数据的工作中解放出来,把精力放在设计上,这才是自动化测试的目标。而自动化框架就是要解决工具的孤岛问题,将业务和技术分离,一方面让了解技术的人可以将复杂的技术简化给业务人员来用,另一方面将周边的各个系统都整合在一起,做到全方面的自动化。

简单来说例如微信能解决你简单的查账、支付,但是它仍然是一个信息孤岛,能不能进一步的成为账号互相支付,理财,信用卡还款等一个完全的集中式的金融中心呢?其实支付宝已经做到了部分,现在出来了一个叫做来往的客户端,看来往能做成什么样吧!


每个公司都有自己的业务特点和使用习惯,自动化框架就是在这个基础上定制一套适合自身体系的流程自动化工具,其中困难的地方是在自动化流程的梳理和自动化工具的定制方面。首先公司很难有一个能在大局上把握住自动化流程体系的人物,其次由于大多数开发都对测试并不怎么认可,所以开发一个测试工具在需求沟通上就会存在很大的问题,往往测试人员由于自身开发能力的不足导致自动化框架在架构上设计上存在较多的问题。


最终导致很多框架做出来要么是技术有余业务不足,要么就是业务有余技术不足。

D . 怎么去在公司开展自动化

从上面两点来看第三点就比较清晰了,对于公司来说开展自动化并不是购买一个工具,而是全方面的评估考察,来帮助公司获得最佳的ROI(投资回报比)。

工具永远都是最后考虑的内容,而整个系统需要自动化支持的原因,希望达到的目标,团队的规划是首先应该考虑的,根据公司被测系统的特点和相关人员的技术情况进行自动化工具评估,再逐步进入采购后的落地。首先将关键业务通过自动化实现回归,后逐步提高自动化覆盖率并加入其它自动化模块进入框架设计。

当然在这其中你可能会遇到一些困难,因为一个人很难改变行业中的某些舆论,例如:

1.选一个工具就选主流吧,QTP错不了!

做一个简单的事情其实用什么都差不多,适合自己情况的才是最好的,而未必是某一个工具。

2.我就算不选QTP,我有别的选的么?有,但是我不知道

行业的宣传导致了这个结果,我们简单的认为了QTP就是自动化,自动化就是QTP,还好最近两年Selenium的异军突起,让我们开始认可或者正视QTP的霸主地位正在动摇。

3.我不选QTP招不到人怎么办?

作为一个招聘企业,其实换个角度来看更容易招聘到优秀的人才,别的公司都在招聘QTP人员,这类培训或者学习的人很多,但是素质、基础其实存在相对较差的情况,而自动化本身是很简单的,学会一个自动化工具再去学习别的自动化工具非常容易,更重要的学习和理解的能力,如果招聘在这方面另辟蹊径,反而可以从众多的简历中选择出真正理解自动化测试的人员,将招聘的主动权拿在自己手里,而对于员工来说也对公司的更加认可。


最后还是来说几句心里话:

主流只是现在,不是未来,在我看来谁主动进入编程开放的年代,谁掌握了未来,QTP你已经Out了,因为你的懦弱,QTP just a tool,not mind,not soul

选择工具需要正确的比较,是要有真材实料而不是小便宜策略,开放式的病毒营销对于普通用户可能有效,对于专业用户是没有用的,我们应该来拼实力而不是所谓的宣传。

不要等待别人来配合你,你应该推动行业,谁走在前面,谁能收获优秀的人员,谁能获胜,选择庸俗的人员只能让你的团队庸俗,带一群猪一样的队友怎么去战胜神一样的对手!


作者: lsekfe    时间: 2013-11-11 10:33
不错。支持下!值得学习!
作者: 六月天    时间: 2013-11-11 15:15
值得一顶的好文
作者: 冬儿    时间: 2013-11-11 16:45
写的不错 期待有更多的文章
作者: yetties2005    时间: 2013-11-11 17:10
云板语言组织能力一如既往的好。
作者: yetties2005    时间: 2013-11-11 17:43
现在很多公司都在做自动化这块,但由于前期对自动化期望太高,不经调查就投入资源去做这件事,往往都夭折了。还有许多人或略了自动化测试不适用于快速迭代项目。一般都是报着试试看的态度,投入三两个人去做这件事。需求变更都跟不上,等自动化这边可以有产出的时候项目结束了。
作者: 楠族开心果    时间: 2013-11-12 09:11
顶贴的。云哥写的实在棒
作者: fwind1    时间: 2013-11-20 23:53
有深度
作者: 开着拖拉机上班    时间: 2013-11-22 10:11
妖西!
作者: duke_mail    时间: 2013-12-5 12:13
不错,顶一下,陈老大
作者: wuzhenwu    时间: 2013-12-6 17:49
刚接触自动化,一切尽在学习中…………
作者: jifang    时间: 2013-12-11 10:58
老大的语言果然犀利,我喜欢这句话:带一群猪一样的队友怎么去战胜神一样的对手!
作者: 测试小书童    时间: 2013-12-30 10:38
每个公司的测试点与环境不同,所以需要的工具也不同。
建议按照公司的需求,自己开发小工具去自动化比较符合需求特点
作者: wangll    时间: 2013-12-31 14:39
自动化的路,任道重远
作者: xiamaoyuan    时间: 2014-1-2 10:40
支持一下 写得不错
作者: lcx1988fei    时间: 2014-1-8 14:25
写得很好 但不够实质
作者: wendydx    时间: 2014-1-13 15:46
顶,希望能看到更精彩的文章
作者: wo_cui    时间: 2014-1-21 16:18
经典好文章。
作者: lsekfe    时间: 2014-1-21 16:23
格式有问题啊!帮你改过了~~
作者: CarlHW    时间: 2014-2-14 22:24
这看你怎么看待自动化的,你希望自动化帮助你发现问题?OK,请提供严谨的开发流程,控制版本偏差,需求变动,让测试参与前期规格制定,提出易测性的需求,并且保证自动化的投入,否则的话,还是回归手工测试吧,自动化顶多给你提供一些小工具小便利,能达到半自动化就了不起了。
作者: CarlHW    时间: 2014-2-14 22:25
纳尼?!怎么回帖看不到??
作者: linda84    时间: 2014-2-21 17:22
我们公司目前的情况是,自动化测试的投入很大,有专门的TA部门。但是对于手动测试,自动化测试永远不会取代。而且对于接口比较复杂,应用程序界面比较多的案例,自动化很难调试的好。特别是对手动测试又不是很了解,就是对测试步骤不是很了解的情况下,自动化测试收效甚微。因为不能够准备的了解case设置时候的每一个check point,自动化实现的仅仅是case中写明的check point.实际上在手动的测试中,很多bug是意外或者牵连发现的。当然,自动化测试对于性能测试这点是手动测试无法媲美的。
作者: auto_tester    时间: 2014-3-11 12:49
写的不错
作者: zzsyanfei    时间: 2014-3-12 11:54
很多观念还是很赞同的。我与自动化测试同仁的路有点反过来,首先我是做自动化测试平台的开发,之后又开始做自动化测试框架开发,最后做QTP的自动化测试,有点顺序颠倒的意味。
1、在我做自动化测试平台的时候,我需要了解测试业务,测试流程,才能搭建更好的测试平台;
2、自动化测试框架的时候,需要了解产品业务框架、技术框架,才能写出适合自身产品特点的自动化测试框架;
3、最后做真正的测试,也就是QTP录制脚本,测试具体的业务的时候,才发现业务千差万别,QTP真心扩展性不强,给人了最便利的同时,但是也很局限人的思维。
自动化测试,反过来说就是测试自动化,既然测试可以自动化,那么其他一切手工可以做的,特别是符合一定的流程或者规范的东西都是可以自动化的,智能家具等,汽车还分为自动档和手动挡,余额宝都可以说用了自动化的理念,把人们买货币基金的过程自动化了,所以自动化的领域很宽,很酷,期待大家的探索。
作者: zzsyanfei    时间: 2014-3-12 12:01
其实因为Web浏览器以及窗体程序的标准化比较好,所有出现了通用的测试工具,QTP、selenium等工具,试想,如果没有HTML,http等规范协议,工具毫无意义。其实说白了,它们只是一种工具而已,萝卜白菜各有所爱!
作者: ndj198808    时间: 2014-3-12 14:10
很受启发,顶一个
作者: BadDrive    时间: 2014-3-16 09:56
自动化技术远没有成熟
作者: 风暖    时间: 2014-3-26 10:22
自动化,目前正在学习中。。。
作者: heei3k    时间: 2014-4-9 11:05
之前做了一段时间的selinium,对测试人员的编码能力有较高的要求。越到最后,感觉自己越倾向于开发新代码,而不是测试开发写的代码。由于自身能力有限,开发代码的速度远远没有开发人员那么快速高效,所以搞了一个星期,也就写出了一两个可以跑通的测试用例,所以最后还是放弃了。自动化远看很美好,真的要做好很难。
作者: langhai5212    时间: 2014-4-17 17:21
本帖最后由 langhai5212 于 2014-4-17 17:30 编辑

回复 20# CarlHW
完全同意20楼的兄弟说的,楼主一看就是没有大规模搞过自动化的。至少有两个观点我不同意,

相同成本下,自动化不一定能取得效果有可能是鸡肋。
相同效果下,自动化的财务成本正常情况下要比手工贵。


简单说一下,自动化不是发现bug的是发现问题,发现异常的。是不是bug还得由人来定。自动化之所以在
这个快节奏的背景下被重视,重要原因是它可以将测试前置到手工不能做的阶段。能够在非工作时间
执行,从而抢回时间来。使测试不再成为整个软件开发过程中的瓶颈。
其他的就不说了,这篇文章看似鼓舞人心,其实没什么营养。自动化做到什么程度要和组织的能力成熟度匹配
,再牛逼的技术,如果团队整体能力成熟度是个作坊级的,是不会有什么用的,反而自动化会成为鸡肋。
作者: 挖掘    时间: 2014-5-12 20:04
云层能来个一般情况下的ROI分析的列子么?
作者: qilaidi    时间: 2014-5-13 21:38
膜拜
作者: 大家的好老龚    时间: 2014-5-14 11:30
看了霁哥的文章怎么感觉有点沉重啊...
感觉自动化要向前走,必须要将其放入整个软件生命周期,而不仅仅是测试周期中.
作者: 静洁815    时间: 2014-5-16 16:34
写的真好,顶了
作者: Miss_love    时间: 2014-5-19 13:28

作者: slxmikesong    时间: 2014-5-26 14:50
学习了
作者: meimei_0    时间: 2014-5-28 17:52
对于我这个一直不敢涉足自动化的新手来说,给了我一定的勇气去探索、学习自动化。
作者: cj_51Testing    时间: 2014-6-10 11:16
用QTP作自动化使用描述性编程,这样不是会灵活很多么
作者: yin2011yin    时间: 2014-6-12 16:05
写的不错,学习了
作者: 云层    时间: 2014-6-13 10:42
回复  CarlHW
完全同意20楼的兄弟说的,楼主一看就是没有大规模搞过自动化的。至少有两个观点我不同意,
...
langhai5212 发表于 2014-4-17 17:21



    既然有人吐槽了,我觉得这是好事,我介绍一下这两个观点的角度。
1.
何为相同成本下,自动化能做的比手工更好。其实在这段的后面我就提到了和你相同的观点,自动化的目的是抢时间,手工的执行时间成本很高,自动化的执行时间成本很低,如果再一个相同的成本(时间或者总的成本)来考虑,自动化在大规模的核心或者关键业务上的自动化能够更全面的完成测试的执行任务,那么在时间不充分的情况下自动化肯定做得比手工好,至少效率可预估,质量可保证。

2.
何为相同效果下,自动化能比手工更省钱。也就是说在只是通过自动化完成手工测试的内容,那么不考虑使用自动化做探索或者模糊测试,那么如果公司成熟,从多次回归的角度来说一定自动化比手工省钱,当然你说1-2次这种测试显然手工有优势,但是如果你自动化熟悉了,你也知道其实做个自动化脚本真的比手工测试的时间会长很多,成本会高很多么?未必!特别是现在测试执行自动带录制回放的策略越来越多,某些情况可以认为就是验证一次就自动化脚本出来了。

这两点从传统行业例如汽车制造中也可以参考。

我对你这边有些不同的看法的地方在一下几点:
1.自动化发现的bug是不是bug?
自动化是手工用例的延续,如果自动化的检查不包含业务或者用例的预期结果,只是运行等待系统的某些异常或者脚本的异常,自然这个就是发现问题不是bug.这个取决去我前面提到的手工用例的完整度来提升自动化脚本的有效性。
2.自动化测试可以将测试前置到手工测试?
这个是我更不接受的部分。无论如何来说手工测试和自动化测试只是在执行策略上的不同,并没有前后之分!真的所谓的前置应该是设计,那么就算是代码阶段如果有好的单元测试用例,我也可以选择手工执行而未必使用自动化。

最后我支持的观点,自动化是一个整体能力的东西,不是一个简单技术,但是从测试的角度来说如果技术好了能推动的事情多,而本文的主题是提醒现在很多做自动化的人出发点都是为了逃避编程和新的技术而已。

ps.问题需要讨论。好久都没人来真的交流。希望和你的会话能继续下去。
作者: 云层    时间: 2014-6-13 10:46
这看你怎么看待自动化的,你希望自动化帮助你发现问题?OK,请提供严谨的开发流程,控制版本偏差,需求变动 ...
CarlHW 发表于 2014-2-14 22:24



    和你的看法其实一样,就和我说着那句话,很多人为了自动化做自动化:

其实自动化对于现在国内的企业来说,大多数情况下,是毫无用处的,主要原因在何处?相信做了自动化测试几年后的朋友会有点感受,对一个正确的东西跑100次还是正确的,除了能够看到一个报告能够满足一下自己YY的心理想法和获得一个自我心理安慰意外,真的提高了软件质量么?
没有!问题在什么地方?就是使用工具的人和使用工具的目的产生了偏差,偏差在于手工测试的设计没有达到标准,如果没有办法有效的测试用例,自动化的效果会非常的低,而另一方面为了自动化而自动化,既然没有能力控制版本变化,那么就用自动化做全面回归测试吧,这样看起来很Cool。
作者: luol1986    时间: 2014-8-14 09:30
写的不错 期待有更多的文章
作者: cissypan    时间: 2014-9-11 14:03
学习了。
作者: xhenxiao    时间: 2014-9-24 16:23
Fighting!!
作者: 965379467    时间: 2014-9-25 15:02
写的不错,我在某大公司做项目,对于自动化这块,近100号人的项目,就只有一个做QTP的,还是边学边做。不知道国内的小公司怎么做了,项目完了,那同事才大概弄清楚QTP,学这个的用处到底大不大?
作者: mew234    时间: 2014-10-14 15:29
很好很强大,我顶,云层老大
作者: 玉兰102162    时间: 2014-11-3 11:45
支持
作者: xiao_si023    时间: 2014-11-13 10:18
现在是个公司要求测试,会自动化,会性能~已经成为了 招聘的第一条了~~
作者: sandy-guo    时间: 2015-1-4 09:36
很有思想,带给人思考,不错的文章,不晓得有木有接触过parasoft测试软件呢?
作者: taotaole2210    时间: 2016-6-29 11:37
赞同作者观点,实际需要是最重要的,学习能力也是招人的一个重要标准。工具是死的,人是活的
作者: 死BEAR熊    时间: 2016-8-30 08:18
写得真好,受教了




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2