【转】你应该了解的基础和2017测试行业的趋势
背景
今天偶然在某个Q群看到大家在聊测试行业发展的趋势,作为一个有那么些经验的娱乐型测试选手,简单写写自己的想法。
方向
测试的发展基本上就两个方向:技术和管理。而我认为这两者是都要学的技能,也就是所谓的经济基础决定上层建筑。当然不是说没有技术就不能做管理,外行管内行自然也有方法,否则所有CEO都得懂各种技术了。
技术
技术方面我认为这么一些是必备的:
- 测试基本知识
- Linux系统的简单操作
- 一门脚本语言
- 五花八门的开发知识
测试基本知识不用多说,整套研发流程下来的需求分析、用例设计、评审、缺陷管理以及书写测试报告,这些能力是一个测试人员基本的素质。
接下来的知识都是测试发展的趋势,Linux系统的基本操作要会,简单部署和构造测试环境的能力还是要有的。脚本语言是为了提升工作效率以及一些自动化工作的执行。五花八门的开发知识是用来应对各种突发的状况,比如你一直都在测服务端,突然让你去测试web端,起码对web端的基础知识比如HTTP、JS、Ajax等知识要有个概念。
管理
我觉得管理分为这么几个方面:自我管理、团队管理和向上管理。
- 自我管理
自我管理始终是一个非常难的命题。
日常的测试工作中,通过自我管理可以极大的提高工作效率。比如重复的工作通过一个个自动化脚本来处理,假设一天有10个工作是重复的,每个工作平均耗费10分钟,那么这部分工作全部自动化之后,你就能富裕100分钟的时间来做其他事。
工作之余,需要自我管理来为自己充电。我之前写过,测试需要会的东西多,从数据库到服务端到web端到移动端。很可能一个需求下来全部得涉及,随时保持一个学习的心就非常重要了。
- 团队管理
团队管理也是一个非常难的命题。
一个人单兵作战很容易,只要提升自己的能力即可,但是一旦上升到一个团队,问题就变得很复杂了。团队人员的素质参差不齐,需要让不同能力的人都能有很好的发挥空间,并且能够有提升,团队还要往好的方向发展,还要防止人员流失。举个例子,在需求评估阶段,需要评估测试时间,那么首先需要了解团队现有的工作量,富余的人力资源的工作能力,需求设计到的其他资源(跨部门配合,环境,数据)以及测试周期时间线上可能发生的资源抖动。在提前计划时就要把整个工作周期的大部分情况预见并且设计出偏差的备选方案。
- 向上管理
这个知识点是2016年底才了解的知识,也是我认为最难做好的地方。
国内软件行业发展到现在,测试行业前进的步伐非常小,并且由于测试的价值无法量化,导致了公司的资源基本上都往产品开发运营倾斜,所以如何跟领导沟通,获取一些资源(时间人力数据以及其他)成为了一门很重要的学问。由于历史原因,导致99%的领导对于测试的概念还是鼠标点点点,手指点点点,如何给他们科普正确的测试观,也是一个非常大的问题。
趋势
我觉得2017年测试行业的趋势有这么些:
- 功能测试依然存在,但是会变得越来越难找工作
功能测试不可能消失,即使Google这种高技术的公司,也依然存在功能测试,所以功能测试肯定不会消失,但是工作一定会越来越难找。国内的企业招聘都是从众心理,大家都觉得BAT的招聘是业界的方向,所以现在都开始要求测试人员必须会各种编程语言,实际上他们也不知道自己要什么,入职后也可能还是点点点,但是由于他们都这么要求,如果不会些代码,工作必然是难找的。
- 自动化接口测试会越来越受到重视
在移动互联网时代,对于质量的要求比PC时代高的多,而投入产出比最高的自动化接口测试,将会是大部分公司的首选方向。在快速迭代的过程中,一个完善的接口测试体系能够在很大程度上保证产品的质量,而这部分的投入相对于单元测试和UI自动化测试来说,并不多。
- UI自动化测试的真面目慢慢会被发现
过去在PC端的UI自动化一度让QTP大放异彩,各种培训机构层出不穷,然后在移动互联网时代,UI自动化的问题越来越明显,快速迭代中产品前端的快速变化,会使UI自动化代码的管理复杂程度呈几何级数的增长。如果没有规划好,那么修改代码的成本将是一场灾难,即使自动化系统高度解耦,UI元素的管理和调试的成本也非常巨大,相对来说手工点点点更划得来。
- 单元测试依然不是主流
无论是测试行业的大佬都在强调,还是那个标志性的测试三角都在告诉我们单元测试是非常重要而且非常有必要实施的。但是单元测试成本大确实是不争的事实,单元测试要做到持续集成,需要的开销太大,对于测试这种无法量化收益的部门来说,这样的开销大多数公司是承受不起的。所以虽然单元测试很重要,但是依然难成为主流。
- 性能测试依然是稀缺的大肥肉
性能测试以前,现在以及将来,都会是稀缺的大肥肉。性能测试不是简简单单的用LR或者Jmeter弄一些高并发就能称为性能测试。要测试性能,首先要非常懂开发语言,还要非常熟悉系统,能够分析出系统的性能瓶颈,性能断点,并且针对性的提供解决方案,大部分有这方面能力的人,都转去做开发了,毕竟开发拿的钱多。
- 综合素质依然是非常重要的指标
企业越来越需要综合性的测试人才,从流程上看,测试介于产品和开发之间,需要懂人话(和产品沟通),也需要懂猿话(和开发沟通)。没有一定的综合能力很难胜任这份工作。
- 持续集成是近期的技能亮点,远期的基础技能
持续集成是目前非常流行的开发方式,如果能够掌握这项技能,在近期绝对是应聘的大杀器。但是从远期看,这将会是一个基础技能,类似现在招聘要求会脚本语言一样,以后这门技术也会成为一个标配。
- 冷门测试技术是未开垦的肥地
大数据、人工智能、区块链等新兴顶尖技术的测试人才极度匮乏,这个方向应当是一个有肉吃的方向,比如开发写了一个智能荐股的程序,推荐了一直股票,那么怎么确定开发的程序是没错的呢?