天天看点

手工测试转型专做自动化测试(自学路线)

在开始之前先自学两个工具

  • 商业web自动化测试工具请自学QTP;QTP的学习可以跳过,我是跳过了的。
  • 开源web自动化测试工具请自学Selenium;我当年是先学watir(耗时1周),再学selenium(也耗时1周)。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-65QPYa7i-1607694608002)(https://upload-images.jianshu.io/upload_images/25278406-18e4071f6852e7fa?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

    这里主要讲一些能让读者和普通菜鸟区别开来的东西,这些请和上面的两个工具穿插地学:

基础:

  • 1.浏览器前端相关的简单技术基础:就是那些什么html、xml、css、javascript、等等,详见b站有教程
  • 2.学习使用一个单元测试框架或者叫做测试执行器,建议testNG,学完testNG,你应该具备了3小时学会任何一个测试执行器的能力,我用过的有 testNG/Junit/Nunit/rubyunit test/python test unit/visual studio里的测试执行器、等等;
  • 3.学习一个语言的基本语法: 静态语言建议java、动态语言建议python;只需要学基本语法,一般三个月之内都可以学完。我顺便学了一些ruby、groovy、shell脚本等。
  • 4.学习一两个版本控制工具的使用: svn和git; 我那时候还顺便学了hg,不过现在没多少人用了 只要使用,很简单,请自己找资料
  • 5.学习page object设计模式: selenium官网有例子,极其简单; 理解这个设计模式花了一两天。用这个模式改写一个网站的全套回归测试用例花了我一个月。
  • 6.学习jenkins的使用: 只要使用,很简单,请自己找资料; 这一点大概花费一个下午时间。
  • 7.学习自动化构建工具的使用: 至少学ant和maven; 这个在学testNG时顺便掌握,只需要简单应用。

提高:

  • 1.浏览器是怎么工作的:How browsers work 这个听说有中文翻译的,自己找吧。

    - 2.学习了解一个关键字驱动的测试执行器,建议robot Robot Framework 有前面的基础,这个大概学一个下午可简单掌握,深入掌握清熟读官方文档。

  • 3.学习了解一个BDD业务驱动的测试执行器,建议cucmber Cucumber个人对BDD持保留意见,有testNG的基础学这个大概一两个下午(这个是用ruby的,我假设你顺便学了ruby语法)。另外我顺便花了一两个下午看了看JBehave(Java的)、Spock(groovy的)。
  • 4.学习几个数据库的简单使用:mysql,mongodb; 这个w3cschool有教程。自己找。我其实还没看。
  • 5.学习服务器端的操作系统简单使用: linux,unix及shell脚本之类的; 这个比较费时间,推荐鸟哥的linux私房菜系列。
  • 6.学习其他的商业工具或自动化测试工具原理都是差不多的,大概有几十种可以学,但都差不多。这个我断断续续把网上能找到都看了看,大概看了几十种吧。其中不乏很奇葩的产品比如fit和fitness
  • 7.继续扩展学习各种开发框架、网络协议等。如果你想去巨头互联网公司做测试开发,学完这条才是刚刚开始;这也是为什么转型做专职的自动化测试、测试开发人员对很多手工测试人员而言这么困难。

    当然互联网公司的测试开发前面的很多东西可以跳过不学。有的人跳过的东西太多了,就会开发出各种奇葩的测试框架/工具,但他反正可以做到这个职位了。

  • 8.扩展到其他方向如app自动化、性能等等。如果想去新创业的互联网公司做测试开发,app的自动化肯定要学,但有前面的基础,学这个易如反掌。

其他可有可无的知识(主要用途是吹牛逼、给别人讲课、写文章吹牛逼):

  • 1.黑盒测试理论;一周入门,三个月精通。大部分人学到三个月就够了。觉得自己很懂的同学其实要知道你还不是很懂。因为这块挖深了可以挖出很多神奇但对找份好工作没多大用的理论知识。建议你到架构师层次再来深入学习这些理论以便更好地给人讲课、吹牛逼。
  • 2.白盒测试理论;这个建议还是要懂一点的。比如桩啊驱动啊,覆盖率啊;工具方面可以自学sonar,并尝试和jenkins一起用,集成进一个小项目中。工具不学也没关系因为很少有公司用。个把月可以掌握。但一般在前述很多东西学习时顺便掌握。
  • 3.自动化测试理论;这个N多的人其实压根都不懂。比如你跟他说个数据驱动、业务逻辑和测试实现分离、False alarm误报之类的自动化测试的专有名词他都不知道你说什么鬼。但这种人也可以做自动化测试,做测试开发,所以这个也就是可有可无的了。当然我建议还是要有。顺便你可以看下别人研究的自动化测试ROI的错误计算方法(因为大部分计算方法都是错误的)、自动化测试和手工测试的区别等等。还有什么基于模型的自动化测试设计理论、正交设计法和全配对(pariwise)设计法的异同等等。这些学了之后可以用于吹牛逼和给别人讲课。
  • 4.测试管理理论、项目管理知识:你学了如果没机会也做不了管理。你不学有机会了也可以坐上管理的位子。

相信看到这里的,不管是新手还是前辈,都对测试行业有了一个大体的认知。希望这篇文章能帮助新人更好地了解软件测试行业,希望这篇文章同样能帮助已经有几年测试经验的前辈们做好自己的职业定位,确定未来的发展方向以及做好技术沉淀。

不管你是否选择软件测试行业,是否决定在测试行业继续发展,是否是软件测试人员,我都希望本文能够帮助到需要帮助的人,如果确实对你有帮助,我将感到非常开心。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lYlb4302-1607694608004)(https://upload-images.jianshu.io/upload_images/25278406-db3c88def7c0307a?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

最后再打个广告:我创建了一个学习交流的社群,如果大家对测试行业刚兴趣,可以加入一起交流,里面也有大牛分享学习经验,这个是裙号:785128166。谢谢大家~