前一阵子有个小徒弟向我诉苦,说自己在参加某大厂测试面试的时候被面试官怼得哑口无言,场面让他一度十分尴尬
印象最深的就是下面几个问题:
根据你以前的工作经验和学习到的测试技术,说说你对质量保证的理解?
非关系型数据库和关系型数据库的区别,谈谈优势比较?
在自动化方面有什么成熟的方案,有没有做过二次开发?
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变得火热起来。我们是不是应该端正对自动化测试的态度,明确什么才是你想要的,找准方法,不断提升自己呢?
Python全栈自动化测试学习路线1. 自动化测试必备Python编程内容
2. Web UI 自动化测试基础内容
3. Web UI 自动化测试实战内容
4. APP UI 自动化测试基础内容 5. APP UI 自动化测试实战内容
6. API 接口自动化测试基础内容
7. API 接口自动化测试实战内容
8. CI/CD持续集成专项技术
9. 自动化测试框架实战技术
相信看到这里的,不管是新手还是前辈,都对自动化测试有了一个大体的认知。希望这篇文章能帮助新人更好地了解软件测试行业,也同样希望这篇文章同样能帮助已经有几年测试经验的前辈们做好自己的职业定位,确定未来的发展方向以及做好技术沉淀。
绵薄之力我在学习阶段热衷于收集整理资源,并记录踩坑到爬坑的过程。希望能把自己所学,实际工作中使用的技术、学习方法、心得及踩过的一些坑,记录下来。也希望想做自动化的你一样,通过我的分享可以少走一些弯路,可以形成一套自己的方法,并应用到实际中。
> > > 学习路线+读书笔记+测试实用干货精选汇总,需要可以关注一下我的公众号,公众号长期做「有价值的输出」是最低标准,感谢您的阅读。
> > > 一起探讨交流,共同学习软件测试技术、进测试Q群,里面有我们收集的配套教程和技术文档提供给自学的伙伴。请点此处「查看公告处」加入社区方式,(←可点击直达公告处)
> > > 该资料都是测友们在实际工作/学习过程中的一些感悟和总结,最具价值的就是实战项目部分。阅读这份资源,就是在和大佬对话,相信你的收获一定不少。