自己之前为了学习自动化测试加了几个自动化测试的群,在群里和不少大牛交流,也和不少新手(菜鸟)交流。因为自己也是一个自动化测试的新手,就想着总结下自动化测试学习工作中遇到的问题,也希望如果有想学习自动化的童鞋,可以学习前看下这篇感想,可能对于你的学习有所帮助。下面我所说的东西都是群里好多自动化测试新手遇到的,有技术方面的,也有工作中遇到关于自动化的问题(很现实。。。)
NO1. 学习自动化难不难?自动化测试如果仅仅是使用录制回放来进行自动化测试是一点都不难的,这种使用工具进行录制回放的自动化测试(例如Selenium使用SeleniumIDE)不需要你懂代码,不需要你像性能测试那样录制完成还要进行分析总结(性能测试我认为最叼的不是工具的使用,是对测试结果的分析,并且给出合理的性能优化方案)。这种录制回放有的可以是为了BUG的更好的复现,有的就是做下回归测试冒烟测试。那么有的新手就会疑问,录制回放是自动化,写脚本也是跑自动化,为什么非要写代码?
1.录制回放的局限性太大。录制回放的仅仅是一个用户的一个操作过程或者说一个业务实现过程。以我的实际工作例子,一个客户的账号会有多种状态(正常,挂失,部分冻结,全部冻结,只收不付,只付不收...),如果要测试不同状态的账号的业务,难道要录制多遍?它们仅仅是账号有区别,如果自己写脚本,弄个数据驱动就搞定了。
2.从原因1中我们可以看到,录制回放仅仅是一个个零散的case,作为一个自动化测试项目来说,没有一个好的自动化测试框架,仅仅是一堆录制回放的case,那这样的自动化测试还有存在的意义吗?有了问题就重新录制?自动化的本意就是解放重复的手工测试,一次次的录制也是重复无用的工作。
3.有一个好的测试框架编写脚本,可以增强测试的业务逻辑性,与业务的各种需求连接更加紧密,更好的提高业务需求人员与测试人员的协同工作。
从上面可以看出,仅仅使用录制回放来进行自动化测试是很简单的,但是效果是没有那么好的,像我们公司也使用testwriter进行自动化测试,实际的效果没有很明显。那也会引出另外一个问题:自动化是为什么而做,它高大上?部门老大让做就做?先把第一个问题解决完。。
那么写自动化脚本难在哪?作为一个开发转测试表示没有难度......勿喷勿喷,但是作为一个没有开发经验没有代码经验的新手来说写自动化测试脚本难吗?不难!!!从我自身来说,我是学的Objective-c,但是我是用java写脚本的,java我也是自己现学的。我们来看写自动化脚本需要用到开发语言的哪些东西。
这是我学习自动化测试Selenium时参考的书籍资料,当然从开发角度来看这点东西塞牙缝都不够,对于没有语言基础的人来说,这些东西的学习(以上班族每天晚上2-3个小时的学习时间来说,别跟我说挤不出学习的时间)最多一个月。注意注意!!!经常在群里看到有新手这样问,这行代码怎么会出错误啊,这个怎么会报错啊,我按网上搜到的代码写的怎么报错啊诸如此类的,这都是一个原因,语言基础不好或者是没有语言基础强行写脚本。连最基本的语法都搞不懂,怎么去写出高质量的代码,写代码不像是学习一个工具的使用,工具的使用你可以直接拿一个案例来运行,边使用边学习,熟能生巧,但是代码是不同的,不懂最基础的语法,模糊的知道这行代码是干嘛的有用吗?随便换个场景,换个逻辑就又蒙蔽了。所以不要急于求成,必须要掌握最基本的语言基础,最好每学习完一个东西辅助性的做些练习题,代码是敲出来的,不是看会的。
NO2.自动化是为什么而做,它高大上?部门老大让做就做?经常有群里的小伙伴说,哎呀自动化搞了半天也没测出几个问题,老大叼我了;哎呀,我们老大说自动化挺厉害的让我学习搞一下;哎呀,这个自动化能代替手工测试吗,各种测试案例都能写出脚本来执行吗?有的小伙伴在学习自动化的时候可能看到过一些大牛说过什么样的项目可以进行自动化,但是都有一个模糊的概念,那通过这几个问题就很直接反应出我们能必须认知的东西:做自动化一定要知道为啥做。
1.考虑项目是否适合做。
2.认识到自动化与手工测试不是矛盾的,不是谁可以代替谁的。
3.自动化测试一般用于回归测试和冒烟测试。
以上三点可以解决群里小伙伴们的问题,就算是部门老大问你,你也可以这样说。
NO3.新手如何进行自动化测试。只说一句,学习是循序渐进的,不论你上面领导要求你多久上手自动化,都应该一步一个脚印去学习,不要拿没时间压力大当借口。我对于那些在群里问那些最最基本问题的新手感觉很不爽,熊瞎子掰棒子,没有会爬就想跑,这样学的很不扎实,做起来也会很不顺利。以学习Selenium为例
1.学代码
2.学习SeleniumAPI(就是封装了许多方法的一个测试框架)
3.学习自动化测试项目的构建......
没有学习的心,做什么都很难,以上是我的一些吐槽和感想,不吐不快。。。。。。人若没有梦想,那跟咸鱼有什么区别!!!