首页 >

想学软件测试,怎么学? – 网络|

网络安全产品渠道如何拓展,苹果6怎么授权,懒人听书怎么下载想学软件测试,怎么学? - 网络|想学软件测试,怎么学

行业的现状及前景

那么处于2020年,软件测试这个行业又将如何发展呢?偶谈一下几点,如果你处在这个行业,一定能体会到偶说的对不对。

  1. 表面”衰落”的测试行业

鉴于过去的大形势变化,不懂技术的测试工程师会逐渐被淘汰出局.一波测试工程师的失业潮是在所难免的.
虽然早期偶也呼吁身边的人赶紧脱离落后的业务体系,脱离落后的测试技能,但是看到很多人越来越生活艰难,也是挺心痛的.
包括测试工程师的需求越来越少,招聘职位也越来越少,典型的新崛起的巨无霸公司比如facebook早期都没有QA.
甚至前几年一度有QA团队是否值得存在的争论.表面看起来是测试行业衰落了.

有趣的是大家讨论QA团队是否值得存在的初衷,是为了更好的保证质量.这还是挺耐人寻味的.
绝大多数的公司,都是非常支持QA部门的存在的,问题在于QA团队的存在的价值到底是大还是小.
过去陈旧的测试体系,落后的测试人员能力,冗长的测试流程是被整个IT行业诟病的一个关键.
当研发的生产力在逐渐的提升,运维的部署在逐渐的自动化,QA所带来的价值和耗费的成本就越来越不能忽视了.甚至成为了一个项目的最大的成本.
这是任何一家公司都无法忽视的问题.早年阿里巴巴的高管曾经集体去硅谷拜访新崛起的巨无霸,得到的结论就是他们的流程和执行力比国内强很多.甚至facebook早年都没有QA就成长为大公司了.
所以阿里就迅速推动了流程的裁剪.这部分包括裁撤SQA,裁撤需求分析师,裁撤项目经理,削减QA名额.进入产品,研发,测试三足鼎立的最简模式.
QA会不会被撤掉也取决于这个部门的价值.所以不要想当然的觉得”存在即合理”,现在部分的公司已经在试验”无QA”的模式了.互联网唯一不变的就是变化

比如一个典型的例子,在搜索,推荐,机器学习等方向的算法测试是很重要的领域,是需要专业的测试工程师参与的.这个行业能容纳很多的测试团队.
但是测试行业这些年就没形成对这个领域的正确测试方法,结果最后丢失了这个市场.现在都是研发自己保证了.因为找不到合格的测试工程师去保证这个业务.

同样在性能测试领域也是如此,随着性能测试平台,全链路压测,性能监控,ABTest,云压测这类技术和服务的出现,性能测试工程师的需求也会缩小.
越来越多公司里的性能测试都已经变成研发主导了.丢失了这块的业务,性能测试QA的需求量自然会受影响.

一定要记住,业务空间决定QA的生存空间,这是所有行业都通行的道理.
如果你不能满足业务需求,就会被淘汰出局,要么选择退守防御要么选择勇于接受挑战

那测试行业的未来是什么样的那,很多人会担心.不过偶还是整体乐观的.
因为偶喜欢整个行业,这些年也一直在进行不断的思辨.说下偶的看法

2.测试从业人员的规模

从业人员规模跟生产力负相关,跟业务规模正相关.以后能有多大取决于技术和业务规模的双重因素.

首先是大环境因素,随着各种行业的互联网化,IT行业在扩大,外卖,美甲,甚至是无人机汽车航天产业都将成为科技公司.
研发的队伍会扩大,QA的队伍自然也会整体扩大.前提是QA自己要跟得上时代.

其次是随着生产力提升自然就不会需要这么多人的.哪个行业都这样,测试行业并不特殊.
就跟汽车行业一样.早年堆人,然后堆工具,堆技术,上机器人,改进流程.
行业技术改进,测试技术改进,测试工具和测试服务的改进,都会一定程度提高了测试效率,减少了成本.这种改进会导致QA的团队更精炼高效.
人数多意味着大家的价值跟富士康工厂里的工人一样廉价.追求高附加值才是正确的路.这对公司和测试团队都是双赢的.

第三个因素是行业地位.devops的流行是推动了研发和运维的密切合作.一旦这个阶段完成,产品的生产部署会非常的流畅.
随之而来的就是问题会越来越早的暴露,大家对质量会更加的重视.到时候就会进入一个新的时代,DevQA.
运维逐渐会管道化,Dev和QA会成为新的主角.只是到时候能撑大局的不一定是现在的软件测试工程师了会是新时代的测试工程师.

测试行业会越来越专业.人才,技术,工具,开源平台,服务会越来越多.越来越完善.术业有专攻,专业化分工仍然是大趋势.
技术层面上也会有创新.以前的测试只能留下测试用例和业务知识文档没有什么连续性积累.
随着接口测试,质量监控,覆盖率分析,业务建模等技术的突破,QA也会形成自己稳定可积累的业务数据,并逐渐形成自己的平台和业务.
业务空间+技术门槛的双重因素是偶坚信QA部门能长期存在的一个核心因素.

3.测试行业的管理会逐渐扁平化

几乎大部分的互联网公司都在分拆业务和QA团队从而提高执行力.所以管理上百人的总监职位会越来越少,而管理百人以下的总监会越来越多.不排除少量的巨无霸仍然没有改变.或者有些烧钱的初创公司倒行逆施.其中这些测试管理者会遇到一些新的挑战,比如更高层是研发出身居多.不懂研发体系几乎没有发展空间了.测试管理体系失去了上层建筑,对未来的影响还是深远的.会有阵痛,但是结果肯定会是好的

4.测试技术人才需求增多

原因是多方面的.
大公司因为分拆的问题.不再有统一的测试技术支撑部门,所以分拆之后的每个团队都需要组建对应的职能团队,对测试技术人员的需求反而会增多.
中小型公司也苛求质量保证效果,不止是要好,而且要求更快,也需要大量的技术人才.这几年通过各种招聘网站的招聘job的描述也能看得出来.

5.外包测试的灾难和新生

原来做欧美日韩外包业务的公司会因为国内互联网的发展逐渐式微,他们需要转型做国内.
但是国内对外包业务也大多排斥,而且外包业务在效率沟通管理上都有诸多弊端.其自身也无法承载对测试工程师的培养和长期发展.所以这几年会有大量的外包测试工程师转型.
这方面需要有新的优秀的外包服务公司.能做到有自己的测试服务,测试技术和高级的测试研究工程师才行.
比如东软也开始做自己的各种云测平台之类的,就是一种为了迎合新时代的变更.

6.不懂开发的测试工程师已经是新时代的文盲

第一个是工作上已经没有太大的晋升空间.第二个是也很难跳槽.最好的结果是凭借多年的经验转管理.
偶跟行业的很多测试经理交流过,大部分工作超过6年的人,在测试执行上会倦怠,在测试技术的改进上已经无法入门,还不如招实习生.
相对来说,有技术基础的人在工作8年以上仍然会保持自己的学习热情.
所以未来测试团队的架构基本会是多数业务测试工程师+少数测试专家+测试经理的管理模式.
以前不识字的是文盲,后来是不识英文的是文盲,在继各国呼吁加强对IT技术的重视后,新时代的文盲就已经快是不懂开发的人了.
testerhome社区的成立的初衷就是希望唤醒整个行业对测试技术的重视.

7.测试行业的门槛增加

以前处于发展期,行业对人才的苛求是第一位的.现在随着大公司发展稳定,招人已经稳定了.
他们基本只在211院校校招.社招也看学历.初创公司多是融资烧钱为主,在学历上和阅历上也是看的很高.能够不拘一格降人才的公司会越来越少.
偶之前推荐了不少同学去其他优秀的公司,其中有一部分同学就是技术不错,但是学历未过关.所以希望大家技能和学历上能够好好的重视这个问题.
除了学历门槛,如上一条所说技术门槛也存在.所以加油吧,少年!

8.测试行业的薪资在提高

测试行业经过自身的净化洗涤会有新生.典型的变化就是薪资从以前的3k-15k的范围,整体提升到1w-3w之间.
技术含量的提升,责任的提升必然会带来整体的回报.现在只要技术好,学历没问题.工作3年拿个两三万的月薪是很平常的.

后面会详细说薪资的方面。

9.研发工程师进入测试领域

这些年整个行业对测试行业的发展非常不满意,通俗点讲,大家都觉得测试很Low,但是又不能没有。
研发提交项目给测试的心情就跟以前过年要去火车站排队买票一样.要申请测试资源,给测试讲解业务和实现,遇到比较low的或者新入职的,连搭建环境都不会还得手把手教.
研发只是修改一行代码,QA或者测试那边就炸锅了.各种流程足以让研发头发都能掉好几根.
作为参考对比,再思考下运维.当年部署个环境跟提交测试很像.要申请运维的介入,要申请机器资源,然后提交部署文档,还要明确基础环境,依赖库等各种细节的版本号.
遇到本地行发布环境不行之类的问题还得跟运维撕逼.当年运维行业还流行着一句,”人”才是最关键的发布保证者.
而现在随着持续交付和devops的流行.发布都已经做到”丝般柔滑”了,一键发布,自由选择灰度,平时的发布甚至都不需要运维参与.
尝试了新模式的甜头后,对测试行业的弊端已经很难忍受了.
所以在优秀的测试工程师和架构师难找的情况下,已经有越来越多的公司选择直接用研发工程师来顶了.
他们的追求很简单.单测->接口测试->基础的冒烟测试,能够做到自动化就可以了.如果能像运维那样做成测试即服务就更完美了.

搞明白了测试行业的现状,明确了前景,那就要详细说说要学习哪些内容了。

自学软件测试要学习哪些内容?

偶根据薪资的不同,划分成以下几个阶段具体说一下:

  • 月薪5-9k:从零基础入门到能够找到工作
  • 月薪15-25k:测试在职搞定性能测试和自动化测试
  • 年薪30W+:搞定测试开发,进入一线大厂

(文末有测试开发岗位简历模板,自己拿)

第一个阶段:月薪5-9k,刚刚入行,先学会功能测试!

可能你是刚毕业的学生,也可能你是打算转行进入软件测试这个行业,那么首先以下基本的理论你是必须要掌握的:

软件测试的定义、生命周期、工作流程、需求分析;
测试用例的设计、编写、评审;
bug的基本知识以及禅道的使用;
测试计划、测试报告的编写;
SVN、Git版本控制工具的使用;

搞定上上面的这些基本必备内容,就已经知道可以做具体的实战内容,这个时候最好是先找一个web测试项目去做一下,假如一个项目拿到手之后,按照下面的一套流程跑一遍:

发布项目进行立项,建立项目组进行分工;
需求评审,学会如何看需求文档,进行需求分析,罗列测试点;
整理测试点,编写测试用例,然后进行用例评审;
执行测试,比如功能、界面、前后台、兼容性、数据库,对于发现的bug提交到禅道;
分析、总结、编写测试报告;

这个流程完整的跑一遍之后,只能说对于整体的测试流程算是掌握了,但是仍然不足以找到一份合适的工作,想要学会做功能测试,以下的内容也是必须掌握的:

Linux相关技能

操作环境、命令、安装数据库、部署测试环境等

数据库相关技能

各种命令用法、字段、增删改查

接口测试相关技能

接口测试基本理论、http协议、测试方法;
接口测试需求分析、用例编写、评审;
几种工具的掌握,jmeter、postman、soupUI;

APP测试相关技能

安装/卸载、离线、UI、登录等测试内容;
兼容性测试、monkey、fiddler抓包;

OK,搞定了这些,恭喜你已经可以投出你的简历去寻找一份测试的工作了!

简历不会写?文末帮你解决这个问题!

如果你已经入行了,且能够正常上手业务了,那么你就要思考第二个问题:如何获取更高的薪资?

第二个阶段:月薪15-25k,搞定性能、自动化测试,独当一面!

都说自动化玩好了很牛掰,但是性能测试才是互联网企业的核心痛点!

对于性能测试,业界很多都是在“耍流氓”,举个栗子:

偶拿到了一份“流氓”的性能测试报告,上面只写了响应时间、TPS是多少,然后罗列了一下压力机基本配置情况,比如40个并发相应时间是5秒,TPS是260。

那么,偶该怎么判断这次性能测试的有效性:

1.场景是否合理?

2.压力是否传递均匀或者传递到指定目标?

3.是否有干扰因素,或者说那些数据是否有效?

4.有没有一些可信的判断方法?

这些问题的出现,其实就是反映出了目前在做性能测试的一些误区:

  • 只测不调,无法给出研发和运维人员执行建议
  • 无法定位问题,缺乏清晰的逻辑和数据证明价值
  • 性能测试工具≠性能测试
  • 性能测试技术体系落后(loadrunner),急需拥抱开源软件

如果要搞定这些问题,那么性能测试你得这么去学:

性能测试的概念和流程

常见问题剖析、流行工具、方案设计

性能测试工具

jmeter工具的使用、实战;
jmeter多协议、拓展与定制;
分布式压测与任务调度;

性能监控

性能监控体系与监控数据采集

性能实施

分布式服务压测,场景设计、场景执行
测试结果关联分析,TPS、响应时间、线程关联分析,压力和资源使用率关联分析

性能分析与报告

jvm调试与系统调试
性能瓶颈分析

搞定这些,你完全可以很自信的和面试官说自己精通性能测试!

性能测试你能到这个程度,15k那是妥妥的了,如果下面自动化测试的学习内容你能够掌握,那就可以直接冲击月薪25k!

搞定Python或者Java语言,建议先从Python入手

基本的语言知识,语法、函数、模块、输入与输出、面向对象编程
脚本编写、标准库、多线程、第三方库,外部数据处理
unittest、pytest测试框架、参数化、数据驱动

web端的自动化测试

selenium安装、录制、处理
web控件、JavaScript脚本、PO模式

移动端APP自动化测试

appium使用、录制、元素定位方法
APP控件定位、交互,参数化用例
appium问题定位分析、源码分析、二次封装

服务端接口自动化测试

接口自动化测试框架request
接口请求构造、断言
json/xml请求、响应断言
headcookie处理、认证体系

上面这些说的是性能和自动化测试的学习路线和内容,搞定这些,基本上在这个行业,月薪2万以上是非常轻松的事情了!当然如果你想成为技术专家,或者想带领技术团队进行实施落地,那么请你接着往下看,关于年薪30W+的测试开发需要学习哪些内容:

完善测试技术体系

Linux、docker、shell、SQL、Python/java

打牢自动化测试技术基础

web自动化测试

selenium测试框架
PageObject设计模式、原则、演练

APP自动化测试

Android自动化测试框架
appium高级应用于原理剖析
APP自动化测试实战
测试框架封装改造
ios自动化测试

移动专项测试

健壮性测试、弱网测试、崩溃检测、耗电量分析等
移动端性能测试
移动端安全测试

接口自动化测试

接口协议与抓包、代理技术与mock
接口自动化测试框架、HTTPrunner测试框架
dubbo接口自动化测试
接口管理工具swagger、接口安全测试

docker容器技术

docker容器、docker镜像

持续集成/持续交付/devops

jenkins持续集成
Jenkins持续交付

以上内容绝对不是泛泛而谈!建议收藏或关注,日后去验证。


想学软件测试,怎么学? - 网络|
  • php如何通过xmlhttp传送数据 |archlinux安装php环境
  • php如何通过xmlhttp传送数据 |archlinux安装php环境 | php如何通过xmlhttp传送数据 |archlinux安装php环境 ...

    想学软件测试,怎么学? - 网络|
  • PHP开发者必须知道的10个高效数据库操作方法 |docker php官方文档
  • PHP开发者必须知道的10个高效数据库操作方法 |docker php官方文档 | PHP开发者必须知道的10个高效数据库操作方法 |docker php官方文档 ...

    想学软件测试,怎么学? - 网络|
  • PHP如何连接MySQL数据库(详细步骤及注意事项) |mysql 自?B接
  • PHP如何连接MySQL数据库(详细步骤及注意事项) |mysql 自?B接 | PHP如何连接MySQL数据库(详细步骤及注意事项) |mysql 自?B接 ...