前一阵子有个小学弟向我诉苦,说本人在加入某大厂测试面试的时候被面试官怼得理屈词穷,局面让他一度非常难堪。
印象最深的就是上面几个问题:
- 依据你以前的工作教训和学习到的测试技术,说说你对质量保证的了解?
- 非关系型数据库和关系型数据库的区别,谈谈劣势比拟?
- 在自动化方面有什么成熟的计划,有没有做过二次开发?
- dubbo 接口理解吗,它的测试外围是什么?
- 质量部如果须要定制化一个质量体系平台,你会思考哪些问题?
不到半小时,这位小学弟的面试就完结了。
而后小学弟就收到了“回去等音讯”的告诉。后果,他当天早晨就看见面试官发了一条这样的朋友圈:
小学弟看完很受打击,就来找了我。明天就来好好掰扯一下“自动化测试”这个问题吧。
什么是自动化测试呢?
对于这个问题,可能没有精确的答案。
普遍认为的是接口自动化测试,WebUI 自动化测试,App 自动化测试等被冠以自动化命名的测试计划。
其实不然,自动化测试是绝对于手工而言的,用代码或是借助于第三方工具,把简约的测试工作从手工转化为机器主动执行的测试计划,能够统称为自动化测试。
除了下面所说的三个方面的自动化测试,当然还包含日志过滤,日志回放,接口监控,服务监控等等,依据具体业务需要通过代码把人力从中解放出来的代码伎俩。
为什么要做自动化测试?
从工作角度来说,目前互联网行业需要迭代十分快,人员流动也比拟快,所以一个需要从提出到上线工夫比拟紧急,同时对于其影响的范畴也可能不太分明,在上线之前必须对原有性能进行回归测试。
不论是接口还是从客户端,都须要大量的测试工作,而且在大数据时代,测试用例量也是十分宏大的,如此简约枯燥的工作让人工来测试的话,基本不能保障效率和品质,所以必须要借助于非人工伎俩来实现。
从集体倒退方面来讲,时代在倒退,对咱们的要求也越来越高,所以咱们要迎接变动,一直晋升本人才行。尽管你能够保持手工测试是根底,是王道,可是并没有企业违心为你这个信念买单。
除非你生存无牵无挂,能够保持本人的信念,否则你就要尊重业界倒退的法则,一直充电从而使本人更有价值。或者再过几年,自动化测试会成为从业者的准入门槛,如果做不好自动化测试,所谓的高薪也就无从谈起。
那该如何学习自动化测试?
既然自动化测试是手工测试晋升的一个必经之路,尽管自动化测试没有那么高大上,但也是必不可少的。那作为一个有现实的测试人员,应该如何去学习自动化测试呢?
(1)精确定位本人,明确指标
有不少同学意识到了自动化测试的重要性,就去网上查问材料啊,或是报培训班学习啊,可是到最初越学越迷茫,处于会与不会之间,前路不知如何去走?这是什么起因呢?
这是因为你在学习自动化测试之前没有想明确几个问题:我的实在程度如何?如果学习一项新的技术或是语言,我违心投入的精力是多少?从当初开始学习,三个月或是半年后应该达到什么指标?我理解当初业界的自动化测试类型或是体系吗?想好这些问题再去动手学习或培训,必然事倍功半。
(2)全面理解,选好切入点
目前自动化测试方向大略有以下几个:
- A、辅助测试脚本方向:以 Shell,Python 为主来简化反复的工作,过滤日志等;
- B、接口自动化测试方向:Python+Unittest+HtmlTestRuner+Jenkins 和 Java+Httpclient+TestNG+Jenkins,当然还有很多其余二次开发的框架或工具,不过外围是一样的;
- C、页面自动化方向,次要有 Python+Webdrver+HtmlTestRunner+Jenkins,Java+Webdriver+TestNG+Jenkins, 以及其余的框架和工具;
- D、App 自动化测试方向:以 Robotium+Java+TestNG+Jenkins, Appium+Java+TestNG+Jenkins,Appium+Python+HtmlTestRunner 为主。
当然这里介绍的都是简略的,最根本的实现计划,作为入门学习比拟适合。其余形形色色的二次开发的框架,蕴含泛滥性能的计划留待你当前晋升。先从这几方面理解动手,抉择一个语言体系,倡议从接口自动化入后,而后再去学习页面和 app。
(3)步步为营,不要贪多
咱们在晋升本人的时候,发现有好多货色须要学习,于是就很着急,想同时学习很多货色,其实这并不好。学的太多容易产生混同,而且不容易消化,你认真调研一下就会发现,很多货色都是通着呢。代码架构,用例治理,执行策略,继续化集成思维都能够触类旁通,要害是本人要入手真正施行起来,在公司当初的框架上写用例,不论你写多少,不理解整体构造都是没有用的。
(4)摈弃工具,多用开源
业界如同从来不短少自动化测试工具,QTP,RealobotFramework,LoadRunner 等等,出名不出名的不可胜数。先不说这些工具成果如何,目前大公司是从来不用这些工具的,大家都应用开源的框架,工具进行定制化本人的测试计划。
所以刚刚学习自动化测试的时候,也不要依赖工具,应用开源 Webdriver,Appium,Robotium 等搭建本人的自动化测试工程。把握一个整体的自动化工程工作原理,为当前搭建本人的自动化工程,工具,平台做筹备。
不论你对自动化测试是爱,是恨,它都是从手工测试转为测试开发必经的阶段。可能你理解到自动测试没有用,施行起来保护老本高,执行效率低等负面信息,其实这不是自动化测试的问题。
要晓得,它只是一个工具,一种测试计划,最终的成果还是由施行的人来决定的。在 12,13 年的时候,用 Jenkins 做继续化集成比拟热门,接下来几年如同没有那么火了,然而近两年 docker 技术的呈现,又使 CI,CD 变得炽热起来。咱们是不是应该端正对自动化测试的态度,明确什么才是你想要的,找准办法,一直晋升本人呢?
自动化测试学习路线图
置信看到这里的,不论是老手还是前辈,都对自动化测试有了一个大体的认知。心愿这篇文章能帮忙新人更好地理解软件测试行业,也同样心愿这篇文章同样能帮忙曾经有几年测试教训的前辈们做好本人的职业定位,确定将来的倒退方向以及做好技术积淀。
不论你是否抉择软件测试行业,是否决定在测试行业持续倒退,是否是软件测试人员,我都心愿本文可能帮忙到须要帮忙的人,如果的确对你有帮忙,我将感到十分开心。最初我也收集和整顿了一份自动化测试材料,有须要的小伙伴能够关注公众号:程序员二黑,收费获取!