很多人都说测试会被开发给取代,这是真的吗?
Posted 程序员二黑
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了很多人都说测试会被开发给取代,这是真的吗?相关的知识,希望对你有一定的参考价值。
软件测试是由于软件开发编程行业高度成熟后所形成的产物。从行业的整体成熟度来讲,软件开发行业的整体成熟度更高,人们对软件开发的理解也更为全面深入。
故此通常讲软件测试和软件开发放在一起做比较。纵然二者都属于产品研发但通常人们的关注点有所倾斜。所以经常用软件开发设计工程师的要求来评价软件测试工程师,仅看到软件测试和软件开发相比的弱势却看不到优势。
大家对软件测试岗位甚至还有更深的误解,比如:
1、 测试的工作没有任何技术含量
很多人都认为软件测试就是安装程序、运行程序、点点鼠标等工作,但是近几年因为用户要求要来越高,产品变得越来越复杂,测试人员的技术知识体系也需要不断更新和完善,并且随着新工具、新流程、新设计方法的出现,软件测试人员也需要像开发一样持续学习。
2、 测试就是找Bug
找Bug、交Bug是测试人员最基础的工作,测试工程师需要把控整个产品质量,代表客户的利益去把控产品、验收产品,因此他们需要做得不仅仅是找Bug。如果没有测试,软件质量就很难得到保证。近年来由于企业对软件质量的要求越来越高,测试人员也随之而来越来越受到重视,探其原因,主要是:
市场竞争激烈,企业对软件开发的周期和质量要求越来越高,如果没有专业测试人员,开发很难在短时间内做出客户满意的系统。
开发很难在自己编写的程序中检查出错误,开发也会遗漏需求功能或者缺失异常处理,需要测试来帮助他们检查软件是否有Bug,是否符合产品设计,是否符合用户习惯,异常是否都已经处理。
现在的软件系统越来越复杂,一个软件可能由几到几十个人来开发,单个开发可能只熟悉他所编写的模块,对于其他有影响但不熟悉的模块,容易产生错误。
如今,在每个软件企业中,测试都处于一个很重要的地位,对于一个合格的测试工程师,不仅要了解产品想怎么玩,用户会怎么玩,运营想要用户怎么玩,还要知道开发怎么实现,测试如何进行,何为技术难点等等。
一个好的测试人员非常难得,要了解用户使用,要懂代码实现,写的了接口测试,做的了性能优化,还能协调各种矛盾。比产品了解开发,比开发了解运营,比运营了解产品,还要最了解测试及产品质量。
这里不得不点破很重要的一点,普通的测试岗位的确很容易被开发所取代,并且也会逐年减少,测试开发才是未来的发展趋势。测试开发的核心职能依然是测试,知识通过开发的首段提升测试效率,当然,这也是需要在保障质量的前提下,测试与测试开发的区别就比如同一个人用人肉来分拣快递,另一个人发明了自动机器人来分拣快递,看起来后面这位更高级,但是实际目的还是分拣快递。
3、总结
软件测试是对开发质量的检测,测试并不会被开发所取代,反而两者间只会分得越来越明显。
那么对于0基础的朋友,应该怎么去学习软件测试。
学习软件测试有2条路可以选。最省事的当然是找个靠谱的培训机构去培训,你就什么都不用想了,跟着培训结构认真的学习就行了。当然,这里并不会给你推荐培训机构,所以这里我们讲的是,怎么去自学软件测试。毕竟软件测试的门槛真的挺低的。好了,正式开始讲了。
第一阶段 测试基础
测试基础是软件测试最最最重要的部分,只要你是做测试,不管是什么测试,测试的基础、理论知识都是必须学会的。
最好学到什么程度呢,最好是能够理解,并能够用自己的话给复述出来。毕竟面试初级测试的时候,问的问题都是从基础理论上进行考核的。
那测试基础有哪些内容呢?
测试的定义、测试的分类、测试的方法、测试的生命周期。
测试计划、测试方案、测试策略、测试用例的编写。
BUG的定义、BUG的分类、BUG的六要素、BUG的生命周期。
测试和开发流程的关系、瀑布流、V字形、W字型(双V)、螺旋型、敏捷等等。
PDCA、5W2H等分析管理的方法质量管理体系CMMI(了解)
嗯,大概就是以上的内容吧,以上全部都是理论和文档能力、只要你肯背、肯写,都是能独立的掌握的。
这些资源我也已经整理好了:零基础学习必看
第二阶段 工具学习
软件测试的基础学完了过后,应该学习工具了。
其实学工具真的很容易,所以大家不用去纠结工具的选择。
把最基础的几个工具学习了就行了,以后用到什么工具就去学什么。
在这个阶段,学习工具什么的,重点在于接口测试的学习,所有的工具的学习,都是在为了接口测试的学习做铺垫。
下面我会列出需要学习的工具和知识点,按顺序学习就好。
- 简单的网络协议:TCP/UDP,HTTP/HTTPS
- Linux的基本操作和常用指令。
- mysql数据库的基本操作和常用sql语句。
- fiddle抓包工具的使用。
- postman接口测试工具的使用。
- jmeter和loadrunner性能测试工具的使用。
以上的这些工具都是纯图形化的,很好掌握,估计就性能测试工具稍微会费点时间。
loadrunner11下载地址:
jmeter下载地址:
链接:jmeter下载地址
有问题可以加群:785128166联系我,其他的工具你们直接去对应的官网下在就行了。
第三阶段
代码学习好了,学完了以上两个部分,恭喜你,你已经是一个出色的初级测试工程师了。
这个阶段,我们应该学习代码了,关于编程语言的选择,我推荐Java或者python。
还有数据库也是必须掌握的!在工具篇的学习里,我认为你已经可以掌握数据库的相关的应用了!
所以现在各位可以去学习编程语言了,不过不用像开发那样,学的那么深入。
比如Java,只需要学完JavaSE的部分就够你用了。 python的话也是一样的,把基础的部分学完就行了。
总之前期你两者二选一的学习就OK了。
自动化方向
等你代码已经基本掌握了,嗯,很好,接下来就要学习各种自动化测试了。
- 各种单端测试框架:unittest(python)、pytest(python)、JUnit(java)
- WEB自动化测试框架:selenium(适用于java\\python\\javascript)
- APP自动化测试框架:appium(适用于java\\python\\javascript)
以上的内容,根据你学的语言进行选择。appiunm和selenium根据你参与的项目进行选择。
不过无所谓了,反正迟早都要学会的。这部分的教程太多了,你学会了编程的基础后,随便百度,好多博客论坛都有教程。而且凭你那时候的水平,你都能轻松的看懂。
性能方向
对loadrunner和jmeter的掌握更加的深入。
可以手写脚本、脱离录制。
学会了多线程编程、能够手写java或者python、不用工具直接实现压测。
学习linux,毕竟性能总是和服务器打交道的。学习系统架构的相关知识、方便你更容易的分析系统瓶颈。说实话、性能方向的提示更难、因为需要掌握的东西太多了。
性能测试做深入了,基本上就是架构师的水平了。
可能你现在看着这个性能方向的学习一脸懵逼。没关系、等你把上面的编程语言学会了你就不懵逼了。
安全方向
- 渗透测试
- SQL注入
- 暴力破解
- 脱库
- 等等
其实安全测试基本上偏向于网络攻防了,也就是传说中的黑客了,不过我们都是好人,这个的发展方向就是白帽子。
部分教程如下:零基础学习必看
我估计你看到这里就更懵逼了。没关系、等你把基础的东西学会就知道我在说啥了。毕竟你现在还是一个小白嘛。不要去纠结这种小事。各位在这个阶段,正常情况都应该是中级测试工程师的水平了。
第四阶段 架构学习
前三个阶段学习完成后,各位就应该考虑怎么写代码更合理了。
怎么去测试更全面。怎么才能更好的保障项目的质量。
我认为,在这个阶段,应该回头重新学习一遍测试基础。
因为这个阶段的提高是思想、方法的提高了。上面讲的都是教你应该怎么做。在这个阶段你要自己去发现、为什么要那样做。跨过了这个阶段就基本上可以成为专家了。学习都是水到渠成的,在这个时候,你应该已经掌握了不少框架了,甚至自己也能开发合适的框架了。自动化测试框架、性能测试框架等等。已经有了属于自己的一套东西了。可能你也学会了一些其他的技术了,甚至在往全栈等方向跨进了。
总之,到了这个阶段就没什么学习路线了,都是靠自己的悟性了。
第五阶段 XX专家专家你好。
专家求抱大腿。到了这个阶段的小伙伴请联系我。到时候让我抱个大腿。
最后有什么不懂的问题都可以加群:785128166,我们一起交流讨论,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路。
这里也为大家准备了一份的学习资源,你能在公众号:【程序员二黑】中免费获取一份216页软件测试工程师面试宝典文档资料。其中资料包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等…
最后送给大家一句话:你想要你就得付出什么。你想要的越多,你付出的也越多。
以上是关于很多人都说测试会被开发给取代,这是真的吗?的主要内容,如果未能解决你的问题,请参考以下文章