很多人都说测试会被开发给取代,这是真的吗?

软件测试是由于软件开发编程行业高度成熟后所形成的产物。从行业的整体成熟度来讲,软件开发行业的整体成熟度更高,人们对软件开发的理解也更为全面深入。

故此通常讲软件测试和软件开发放在一起做比较。纵然二者都属于产品研发但通常人们的关注点有所倾斜。所以经常用软件开发设计工程师的要求来评价软件测试工程师,仅看到软件测试和软件开发相比的弱势却看不到优势。

大家对软件测试岗位甚至还有更深的误解,比如:

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下载地址:

链接: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专家专家你好。

专家求抱大腿。到了这个阶段的小伙伴请联系我。到时候让我抱个大腿。

精彩推荐:

在职阿里6年,一个29岁女软件测试工程师的心声

公司新来的阿里p8,看了我做的APP和接口测试,甩给了我这份文档…

腾讯二面:web测试问题被虐哭了,直到学长给了我这些知识点…

你可能感兴趣的:(软件测试,程序人生,自动化测试)