软件测试行业趋势分析和思考

 

软件测试行业趋势分析和思考

 

 (源文件地址:https://github.com/zhengwh/share-tech/blob/master/dev/the-trend-of-soft-test.rst)

 

1   绪论

本文先对互联网对时代和社会变革进行了论述,而后再由互联网时代对软件工业模式变革进行了介绍,最后引出附属于软件工业的测试行业在新形势下的需求变化,并对趋势进行了分析,并最终给出了相关的从业人员的职业发展建议。前端

本文开题较宏大,但最后仍然会聚集到具体的测试行业的话题上来,为了不被你们误解成“有始无终”,特作以下申明:python

  • 请不要认为开局话题太大,有点天马行空,不知所云。由于在社会上,小人物的命运每每是和大时代绑定在一块儿的,你干脆与世无争,能够什么都不用理会,可是一旦你还在追求我的的人生大理想(实现人生价值)或者仅仅是改善生活物质条件(马斯诺第一二三层次需求),就必须懂得什么叫顺势而为。能够和天斗,和地斗,和现实斗,可是不要和趋势斗。
  • 请不要认为最后的落脚话题过小气,由于无论是哪一个时代,社会都是由一个个鲜活的个体去实现的,而咱们当中的绝大多数都属于这样的个体,穷则独善期身,达则兼济天下。做为现实生活中目前还处于小人物地位的芸芸人生的咱们,仍是先脚踏实地一点吧。

2   信息产业十年巨变

高晓松在一期《晓说》的“大航海主题”节目里面提到,他认为目前为止,他以为 人类历史上最伟大的两项发现是:linux

  1. 大航海时代
  2. 互联网时代

两样东西都有一个共同特色,就是将这个世界抹平了,让当时的人们可以以全新的视角和思惟认识这个世界。android

大航海时代伴随着地理大发现,让世界的各个地方的独立孤岛融入到一个世界观中,造成了文化大碰撞,物种大交换,人类大移民。git

一些主要的冲击体如今 [1]github

  1. 粮食物种大交换

    欧洲人从美洲引进了土豆和玉米,最低产的土豆也是最高产的小麦的18倍,并且不依赖水。,高的能够达到几百倍。极大解决了欧洲人的农业生产力问题,并且这两种做物被引入中国,促使中国在康熙年间人口终于突破了1亿,达到空前繁荣。web

  2. 病毒大交流

    欧洲人给美洲带去了欧洲的疟疾,并从美洲带出了天花。致使两边的人都出现了极大的死亡率。算法

  3. 矿产大发现

    西班牙人在南美洲玻利维亚发现全球最大银矿,产出了40亿俩白银盛产白银,而当时的超级大国中国明朝一年的财政收集才几百万两白银。致使当年西班牙一跃成为世界最富有的国家,可以买下全世界 。购买力极强的十亿白银大量涌入中国,造成了巨大的通货膨胀,间接致使了后面的禁海和闭关锁国,以致于后面远远落后于世界化进程。sql

  4. 人类大移民

    最先白人集中在欧洲地区。可是大航海时代的地理大发现致使如今 美洲,非洲,大洋洲和东南亚洲处处都是欧洲白人的地盘了。shell

这系列的事件,影响了后面的整个世界的地理,政治和经济格局。

上面谈到的那些事件和现在和互联网时代存在太多的类似性。

每当我向别人宣扬互联网的巨大力量时,总会有人提出质疑:互联网这个东西并不像制造工业那样产生一些实际的东西,可是如今如此的热,确定会出问题的。

我认为,互联网不产生新的实物,它就是增长效率,优化资源配置,抹平信息鸿沟,制造更平等的认知世界的机会。互联网为什么这么热,缘由在于咱们这个社会运行的状态是很低效的,信息很不对称的,因此互联网每进入一个领域,都会带来这个领域的巨变,互联网的动做模式会把传统的动做管理模式的规则所有给颠覆,若是传统模式不作出改变,只能被狂风扫落叶的扫出历史进程了。

关于IT行业的前几十年发展史,有兴趣的能够推荐吴军博士写的《浪潮之巅》,做者以浪漫主义的笔法书写了IT行业的几十年和恩恩怨怨和浮浮沉沉· [2]

下面本文将主要列举近十年(2005~2015)年来,IT行业的一些重大事件。

[1] 晓说.大航海系列-黑人奴隶地位高要天价.20140110
[2] 吴军.《浪潮之巅》.2011

2.1   国际情况

  • 当年功能机时代的巨头 Nokia,2014年将设备和服务业务出售给微软,如今已轮为微软的附庸。
  • 发明了第一款手机的 Motorola,则在这十年几易其主,先被Google收购,后来又转卖给联想。
  • 当年美国可能还比较弱小的Google,现在已经成长成世界的顶级IT巨头。
  • 当年IT的最红火的明星Microsoft,现在已经走下神坛,被新的明星给取代。
  • Facebook在2004年由大一的毛头小伙创办,现在2015年也成IT界一极。
  • 苹果公司2007年推出Iphone系列,引领移动互联网的新浪潮。
  • Google在2008年发布第一款Android智能手机。现在已和苹果在移动互联网时代势均力敌,比肩而立。
  • 移动互联网应用时代四处开花。各类创业公司兴趣,四处掘金。
  • 互联网公司在传统行业攻城略地,打得措手不及。

2.2   国内情况

  • 当年流行的电子通信设备 小灵通,如今恐怕已无人记起。
  • 当年不那么起眼的腾讯,这十年内同时在线人数突破1亿,成为通信行业巨头。
  • 微信在腾讯内部掘起,让腾讯成为首个拿到移动互联网时代船票的公司。
  • 阿里上市,创造了世界上前无古人的最大IPO。也将马云送上了亚洲首富的位置。
  • 小米用了4年的时间,就从零到了400亿美金市值,目前也成为中国互联网一极,并且前景无限广阔。
  • 联想收购了摩托罗拉。
  • 小米模式给传统的电子设备厂商打了几记响亮耳光
  • 支付宝们让国有银行们开始颤抖。
  • 微信们让国有通信巨头感到危机。
  • 电子盒子们让广电部门寝食难安。
  • 滴滴和快滴们让国有运管部门恐慌了。
  • 专业们给出租运管行业来了更完全的革命。

生长在这个时代的年轻人,要么创造了这些历史,要么见证了这些历史,要么如今正在创造这些历史。

2.3   总结

前面陈述了各方面的东西,其实总结为以下几点:

  1. 互联网时代是一个不可小视的时代
  2. 互联网的影响才刚刚开始,可是它的影响将毫不止于当前
  3. 互联网公司已经成为IT领域公司的绝对主角
  4. 互联网已经从PC上转移到移动端,从此的趋势则是转化为万物互联
  5. 传统行业若是不在观念和技术上紧跟上时代的步伐,只能是坐等被收割的命

3   软件工业模式变革

3.1   两种经营理念

可能不是全部的人都清楚,虽然同叫IT公司,可是IT公司仍是能够分红两大类的:外包项目驱动型公司和自主产品驱动型公司。

3.1.1   外包项目型

在百度百科里面对“外包”进行了以下的介绍:

企业在管理系统实施过程当中,把那些非核心的部门或业务外包给相应的专业公司,这样能大量节省成本,有利于高效管理  [3]

总体来讲,绝大多数的外包具备以下特色:

  1. 入行门槛比较低。基本会个数据库的CRUB就能够挑起全部的信息信息项目了。
  2. 技术线路短。须要会的东西杂而多,不须要精钻。
  3. 开发过程要求极度规范。
  4. 以项目为驱动。常常是什么来钱作什么。
  5. 开发组中项目经理是灵魂人物。
  6. 公司成长每每比较中规中矩,有点相似实体企业中的制造业。
  7. 每一个项目都是有开发周期。不少项目都是一次性项目。
  8. 执行力大于创造性。给每个客户交付他们想要的东西就算完工了。
  9. 属于体力密集型,很是依靠人力,加班通常都比较严重。
  10. 节奏平缓。每每能够很长时间内造成百花齐放共生的局面。
  11. 从业人员的待遇,每每是和软件产出量挂钩。收入比较稳妥,但天花板也很容易触及,毕竟人的人力有限,精力有限。

这一类的传统IT公司公司目前对外包装都是“提供IT解决方案”的公司,好比:像东软,软通动力等等是比较典型的。这些公司的销售常常会在各类招投标现场看到,或者在华为公司里面有些外公司的人,不少就是这些公司派去驻场开发的,里面的员工每每会有一种“同工不一样酬”的失落感。

这一类的公司,我的认为会面临逐渐被集中到少数的大集团里面,或者分散在一些兼职的个体软件工程师中。由于这项服务确实是一直被社会所须要的,社会的的更改化发展也确定是专人作专事,外包确定不会消亡掉。这个市场会一直存在,可是从业人员的营生类型属于赚一些辛苦钱,拼个体力而已。

[3] 百度百科.“外包”词条

3.1.2   自主产品型

这一类公司,你们比较熟知的主流互联网公司基本上都属于这一类型的。这一类公司具备以下特色:

  1. 公司成立之初,就有本身专一的领域,并且每每是很小的一个切入点。
  2. 技术线路长。像BAT,发展到现在这个体量级后,每一个公司都有本身独一无二的技术高度。
  3. 以产品为驱动。注重迎合客户的痛点需求。
  4. 开发组中产品经理是灵魂人物。
  5. 虽然也号称以项目为驱动,可是实际上将产品的不一样迭代周期进行分期按项目实现。像QQ客户端从腾讯创业起到如今仍然在开发中。
  6. 项目不是一次性项目,而是持续累积的项目。
  7. 创造性的需求大于执行力。
  8. 属于智能密集型。虽然加班也每每很严重。
  9. 节奏超快。也很容易很快造成垄断局面或被彻底淘汰出局。
  10. 历来人员的待遇,不一样水平的人差别很大。可是总体均可以有一个相对较高的水平。

目前国内这一类的主要公司有:TABLE互联网五巨头。

3.2   两种生产方式

3.2.1   软件工程

在传统的软件工业,软件产品以光盘为载体以相似于实物的方式进行生产和出售,软件的产出方式也是严格遵照软件工程的流程。

  1. 需求分析。按照标准严格组织文档,一个长周期。
  2. 系统分析。按照标准严格组织文档,一个长周期。
  3. 系统设计。按照标准严格组织文档,一个长周期。
  4. 系统开发。组织大量的人开始按照设计文档稳步执行和推动项目进程,一个长周期。
  5. 软件测试。组织大量的人按照设计文档对功能进行测试,一个长周期。
  6. 软件交付。内部测试和客户验证测试都完毕后,软件投放市场,而后运气好能够卖个好几年。
  7. 再按照上面的方式花N长时间开发一下项目,或者开发下一代产品功能。

这样的的生产方式和传统的制造企业是极其相似,并且若是这种模式发展下去,确定会愈来愈照搬传统制造企业的模式,由于都是须要追求流程的标准化,这样才可以保证生产和规模化和有序化。

在传统的项目驱动型的软件企业里面工做过的软件开发人员必定印象深入:

  1. 开会,沟通,评审,确认。
  2. 文档,文档,文档……
  3. 集中式的闭门大生产。
  4. 闭关开发出符合文档的产品。

为什么要这么严格的评审流程,为什么要如此多的开会和文档?其实上面提到的那些行为都只是操做手段而不是目的,真正目的在于为了防止如下状况的发生:

  1. 避免甲乙双方纠纷

    从提出需求,到最后完整当初约定的功能软件,周期较长,每每存在至关多的不肯定风险,对软件项目的参与者进行协议上的约束,因此须要和甲方进行沟通和文字记录,同时开发人员

  2. 减小沟通成本

    由于周期长,开发人员众多,减小沟通成本,必需要尽可能多的文档。

这些都是创建在一种信息不对称,信息流通不畅的年代所产生的开发过程。后面将提到一种新的软件生产思路。

3.2.2   敏捷开发

这是在互联网兴起以前的年代的一种软件生产思路。

主要开发流程以下

  1. 肯定本阶段最重要的线路目标。
  2. 需求分析设计和开发。仅必要的文档,一个短周期。
  3. 持续集成和持续自动化测试并发布上线。

主要的特色以下:

  1. 产品的的新功能发布周期要求极短。
  2. 对需求的实现及客户确认周期很短。
  3. 每一个短周期都有可交付的并在线上运行的版本。
  4. 一个好的产品能够永远作下去。
  5. 所作的内容每每具备很强的继承性的传承性。
  6. 由于互联网的存在,绝大多数的问题均可以在开发场所消化解决掉。
  7. 由于持续在线发布,能够时刻让实践去检验产品,直接随时和一线需求保持链接。

这种开发模式的最大特色是:快!

  1. 迭代速度快。

  2. 新功能发布并呈如今客户面前快。

  3. 问题的发现快。

  4. 问题的解决速度快。

  5. 若是方向不对,项目死掉的速度也快。

    这实际上是优势,若是是坑,及时可以暴露出来也是好事

3.3   我的经历及感悟

前面提到的两种公司和两种模式,目前在中国都存在至关大的市场。从我的的角度来讲,更看好自主产品型的公司及开发模式。

本人第一次创业经历,就是长达两年的时间开发一个大型软件系统,最后都没有成功交付而胎死腹中。此次惨痛的经验教训,让我今后之后对外包型的创业模式深感恐惧和抵触心理。第一次创业里面作的项目,很累很累,很用心很用心,同时结局也很惨很惨。

第一次创业失败以后,又加入了如今的这个创业团队。是一种彻底的互联网经营和生产模式,彻底是一种久旱甘霖的畅快感。做为开发团队的一员,你的代码时刻都在生产服务器上运行着,天天开发的功能都在线上发挥着做用,你敲下的每个字符都发挥着它的做用,并且为后面的开发在铺路。

4   软件测试的变革

前面花了很大的篇幅来说大背景和大变革,如今才正式开始进入“软件测试”这个议题。我的认识仍是颇有必要。由于大部分开发人员都是思想和交际圈子相对比较简单的群体,打交道的对象每每是代码或者机器,每每不肯意跳出技术的思惟和习惯,从更高的视角来审视本身作的事情。由于我之前就是这样的一个技术人员,每每把全部的路线选取寄托在别人身上,并且本身缺少独立思考的能力,结果致使本身虽然很努力,可是却老是达不到本身想要的效果。

做为普通一我的,必然没法避免个体命运会随着大时代的背景进行浮沉。具有独立思考的能力至关重要,可以洞察趋势,顺势而为,必然会事半功倍。

4.1   软件测试的概述

软件测试(英语:software testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。 换句话说,软件测试是一种实际输出与预期输出间的审核或者比较过程[4]

无论是传统企业仍是IT企业,都会有这样的一岗位,叫QC(QUALITY CONTROL的缩写,中文“质量控制”) [5],专门负责品质控制的。在制造企业里面是对具体的物品进行 相应的质量检测。

无论是实物工业生产仍是软件工业生产,最终的目的都是将产品交付给相应的使用人或者使用场景,使产品稳定的发挥其做用。那么既然存在交接,就必然存在验收。而关于产品的问题的发现,从生产方来讲,最好是在内部就能消化和解决,而不是到投放市场以后由用户来发现,那样会对产品和企业形象都是很大的损害。因此每一个企业都须要这样一个角色,用来作质量审核和把关。

在传统实物生产工业,产品质量控制主要划分为4个阶段 [5]

  1. 进料控制(Incoming Quality Control缩写为IQC)
  2. 过程质量控制(In Process Quality Control缩写为IPQC)
  3. 最终检查验证(Final Quality Control缩写为FQC)
  4. 出货质量控制(Outgoing Quality Control缩写为OQC)

一样在软件工业,特别是目前外包或者众包的协做模式逐渐兴起,软件工业也逐渐像实物工业同样造成了所谓的供应链,也同样产生了如传统工业的品质控制岗位。

  1. 做为甲包的验收测试
  2. 本公司软件流程优化,和小版本迭代测试
  3. 本公司阶段发布版测试
  4. 交付下游企业的交付测试

总之,软件测试是在软件工程里面交付可靠软件的必要步骤。具体有有兴趣的能够查看软件工程相关书藉。可是查看这些的时候,请只看软件测试的定义及在软件工程中所扮演的角色部分,后面的具体操做手段能够忽略,由于随着近些年互联网和移动互联网的掘起,不少传统的软件工程组织方式和理念已经严重落伍,已经逐渐被行业给淘汰,做为软件工程中的一个环节,软件测试的手段也发生了巨大变化,这个在后面会谈到的。

[4] 百度百科.'软件测试'词条
[5] (12) 百度百科.‘QC’词条

4.2   当前从业体验

关于从业人员的体验,如下论述事实都来自于当下热门社区“知乎”。

如何成为一个优秀的软件测试人员? [6]

  1. 软件测试的基本原理,我称之为 测试 1.0 时代, 如 软件测试 (豆瓣);
  2. 与敏捷开发结合,我称之为 测试 2.0 时代 , 如 敏捷软件测试 (豆瓣);
  3. Test is Dead , 测试已“死”,适应互联网新时代的要求(好比 精益创业 (豆瓣)),“无论黑猫白猫,捉到老鼠就是好猫”,当你跳出了“测试”这个圈圈,思考测试的价值了,我称之为 测试 2.5 时代 如 Google软件测试之道 (豆瓣), 持续交付 (豆瓣),
  4. 将测试和复杂 (豆瓣)相结合,我称之为 测试 3.0 时代,可是如今的实践还比较少

QA在中国有前途么? [7]

文章主要观点:

  1. QA是个比较有前途工做
  2. 黑盒手工测试工做将逐渐被白盒和自动化代替。
  3. 使用第三方自动化测试工具如QTP的测试人员,处境将比较尴尬。由于本质上只是黑盒自动化。
  4. 测试工程师的趋势是和开发愈来愈接近。
  5. 拥有代码开发能力或者数据分析能力的测试工程师才有光明前景。
[6] http://www.zhihu.com/question/20254092
[7] http://www.zhihu.com/question/19666055

多看一些相关话题及相关人员的回复,能够明显感觉到测试岗位正在朝着”自动化,专业化和技术长线化“的方向在发展了。

4.3   人才市场需求

若是说知乎上的我的的回答可能会带有浓厚的主观色彩,或者说是我的认知的局限性。那么来自人才市场的需求应该可以成为比较客观的风向标依据了吧。毕竟,规划本身的职业方向的主要目的无非是以下两点:

  1. 高薪需求。本身所从事的工做的收入是可观的,这是最实在的,也是绝大多数普通人所想的。
  2. 价值体现需求。一方面是社会价值体现,产生经济效益和社会效应,另一方面是自我价值体现,实现人生知足感。这种价值体现需求会反过来影响”高薪需求“的实现。

本文经过对2015年5月份来自互联网的垂直招聘网站 拉勾网 的测试相关岗位的招聘要求和薪资待遇进行了研究。

关于测试岗位,工资差别很大,要求的差别也很大。

  1. "北深杭"由于有TABLE这些互联网巨头存在。待遇广泛远高于其它城市。
  2. 主要互联网巨头招聘测试,只招懂开发的测试。待遇和开发人员没有差别。
  3. 武汉这一类二线城市,招聘测试,待遇很低(每每只有互联网巨头测试岗位的零头),要求基本上流程性文档维护和手工测试。

4.4   具体需求及待遇

以”测试“为关键字进行职位搜索,发现出来的岗位待遇差别巨大,下面将针对不一样的薪资结果来举例对比。

4.4.1   高薪组

  • 京东
    • 要求
      1. 熟悉测试流程和规范
      2. 熟练掌握软件测试方法和经常使用测试工具
      3. 有性能测试经验、自动化测试、安全性测试经验优先
    • 待遇

      10K~20K

  • 小米
    • 要求
      1. 对大规模产品设计合适、完备的测试方案
      2. 对产品质量进行控制,对产品的最终质量负责;
      3. 参与通用的自动化测试平台系统的搭建;
      4. 开发和维护测试和编程标准。
      5. 具备3年以上性能测试经验,具备性能测试流程搭建的经验、性能指标设定、性能数据分析、性能瓶颈定位的经验者优先;
      6. 精通LoadRunner,webstress,Jmeter等性能测试工具;
    • 待遇

      15K~30K

  • 阿里
    • 要求
      1. 熟悉测试流程和规范
      2. 熟练掌握软件测试方法
      3. 一些经常使用测试工具
      4. 熟悉Windows系列和Linux操做系统的基本操做和配置
      5. 熟悉网络协议和网络环境的应用
      6. 熟悉经常使用的自动化测试工具和Bug管理跟踪软件,版本控制软件。
      7. 有性能测试经验、自动化测试、安全性测试经验优先
    • 待遇

      20K以上

  • 腾讯
    • 要求
      1. 数据结构

      2. 算法

      3. 数据库

      4. 进程通信

      5. 网络协议TCP/IP

      6. 性能测试/性能优化/安全/容灾

      7. 软件工程理论和测试理论

      8. 基本工具使用
        • linux/python/shell
        • Java或C++基础
        • wireshark
        • ab和webbench压力工具
        • Jmeter和loadrunner
    • 待遇

      10K~20K

4.4.2   低薪组

  • 武汉神微资讯
    • 要求
      • 熟悉软件测试理论和方法;
      • 可以熟练应用多种测试工具并能按时完成软件测试工做任务;
      • 较强的英文语言表达能力和文档撰写能力;
      • 计算机及相关专业,本科及以上学历;
      • 能独立完成工做,有良好的团队合做精神;
      • 无经验可,有零售相关经验者优先
    • 待遇

      3K~5K

  • 软通动力
    • 要求
      • 有手机应用测试经验,对有android系统上的测试工做经验优先。
      • 了解测试理论和方法,熟悉软件测试流程,可以进行测试计划,测试用例,测试进度,测试报告的编写。
      • 良好的沟通能力,团队合做意识,强烈的责任心。
      • 试工做,工做细致认真,有耐心。
    • 待遇

      4k-6k

  • 卷皮网
    • 要求
      • 计算机相关专业大专及大专以上学历;
      • 能根据需求文档、设计文档编写测试计划、测试用例以及测试报告;
      • 对软件测试有浓厚的兴趣和丰富的经验,有很强的分析能力和定位问题的能力;
      • 有较强的表达和沟通能力及文档编辑能力,对细节认真思考,有至关的逻辑能力;
      • 熟悉常规测试软件(如Loadrunner,QTP等);
      • 熟悉PHP脚本语言、Mysql数据库、服务器工做原理者更佳;
      • 熟悉Web和数据库开发技术的优先,熟悉b2c电子商务和b2c在线交易流程者优先。
    • 待遇

      4k-7k

4.4.3   对比总结

  1. 互联网巨头已经只须要高端测试人员了。
  2. 高端测试人员其实是一个懂测试的开发人员。
  3. 互联网公司的低端测试工做直接外包出去。(例如腾讯的外包给了软通动力)
  4. 高端和低端测试人员薪资待遇差距能够达到近十倍。

经过对更多的高端测试岗位的技能要求作总结,绘制出以下的一个技能和事务树,供你们参考:

 

5   最后结语

自从离开校园以后,好久没有沉下以来认真地写点东西了。主要是本身在刚跨入社会的时候,犯了一个很严重的错误,老是想用”战术的勤快来掩盖本身战略的懒惰“,一直忙低头作事,而不多停下来冷静地独立思考。还好,如今开始有这个意识,也不算太晚。

以上的内容一方面是对本身这三年思想转变和职业规划转变的总结,同时写出来,也但愿可以对走在相同道路上,一样有过困惑的同行们多一点借鉴参考吧。

以上全部的结论都源于:

  1. 做者我的的人生经历。
  2. 所接触的视听数字消费产品。
  3. 主要社交和招聘网站产生的观点或事实。
  4. 看的相关专业书藉。

虽说尽可能让依据来源丰富化,可是在在选材过程当中确定不免带有一些我的主观色彩,并且做者的经历也不能表明你们的经历,因此分享此文出来,还但愿此观点可以传播出去让更多的人看到,正如前端的互联网产品的开发思路”让产品尽早上线,尽早接受更多的用户考验,好坏天然分明“,因此欢迎你们来 点赞或者拍砖。

这是后续的软件测试系列的第一篇,先以概述来定基调和方向。后面将分享此基调和方向下的相关技术和手段。

相关文章
相关标签/搜索