查看原文
其他

用 Python 爬了 10 万条软件测试工程师信息有这些发现!

灵智大师 CSDN 2018-07-26

点击上方“CSDN”,选择“置顶公众号”

关键时刻,第一时间送达!

软件测试工程师,听起来蛮高大上的对不?

也是,毕竟测试工程师也是需要前能镇定自若寻找产品bug,后能思维清晰测试代码框架逻辑的好同志。对产品上线之前做个全身检查,责任很重大。

一个完美的产品,要基于合理、卓越的设计逻辑,拥有顺畅的功能、稳定的性能以及美观便捷的交互。一个合格的测试工程师,除了要保证产品上线之前功能完善,还要对产品的性能以及界面交互提出建设性修正/优化意见。

所以「测试」大人们的日常就是:深刻了解产品的功能要求,与「开发」(产品开发工程师)相辅相成,相爱相杀,做产品的一品带刀侍卫,保证完美产品的稳步上线!

随着互联网生态的繁荣兴盛,产品的种类也在不断增加,测试工程师所能进入技术岗位越来越细分,测试早就已经成为一个横向分布领域。我们常见的就有app测试专家、自动化测试专家、性能测试专家、web测试专家、安全测试专家、游戏测试专家、云产品测试专家等等。

我们通过对大招一百网上10w+条测试工程师的数据进行分析,得出的人才画像如下:


岗位硬知识大扫盲


黑盒测试VS白盒测试

通常在测试之前,需要制定一整套测试计划,之后才会进行各个测试环节,包括单元测试(模块测试)——集成测试——系统测试——验收测试。这里边前两步是用到白盒测试,后两步需要的是黑盒测试。

黑盒测试:就是站在用户的角度上,在已知产品的功能设计规格上,在软件的接口处对每个功能的实现可能性以及UI的正确性进行验证。在这阶段,测试人员不用接触源代码(把测试对象看作一个盒子,黑盒子指的是盒子是不可视的,你不清楚盒子内部的东西以及里面是如何运作的,白盒子反之)。因此黑盒测试也称功能测试或数据驱动测试。

白盒测试:则是站在框架搭建者的角度上,依据软件设计说明书对程序内部细节进行严密检验。包括但不仅限于针对特定条件设计测试用例、对软件的逻辑路径进行覆盖测试,以证明每种内部操作的设计逻辑以及使用流程是否符合规格要求。在这阶段,测试人员需要接触源代码。白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。

我们用一个简单的例子对黑白盒测试进行区分。

我们把被测试的产品看作一个人。测试就是为了寻找出人的潜在疾病,然后对症下药保证身体健康。黑盒测试类似于人被查出了头疼,医生通过观察临床反应,给开了副止疼药。而白盒测试则是医生通过望闻问切了解人体的经络、脏腑、情志、气血等,发现人脑子里有肿瘤,最终用手术手段进行切除。

测试环节详解

单元测试(模块测试):基于测试单元功能而开发出来的测试代码,通常代码都比较简短。一般情况下,一个单元测试是专门判断某个特定函数在特定使用场景中的行为。

集成测试:也叫组装测试和联合测试,是单元测试的升级板和扩展版。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。组件再组件,组件组合之间通过不断进行测试,最终让所有的模块进入测试进程。

系统测试:将经过测试的子系统装配成一个完整系统来测试。它用来检验系统是否确实能提供系统方案说明书中指定功能。系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计。

验收测试:验收测试是向未来的用户表明系统能够像预定要求那样工作,保证交付到用户手上的产品功能稳定、性能优越、界面和谐。能够无差池地进行功能操作和任务执行。

注:照理来说,不管是白盒测试还是黑盒测试,都是由测试工程师主导,来进行操作。但是需要注意的是,白盒测试更多的是单元测试——测试人员针对各个单元进行各种可能的输入,然后对其输出进行分析。在这一阶段,测试代码由开发猿编写更容易提高测试效率和测试精度,以证明代码的行为符合期望。毕竟“知子莫如母”,自己的设计思路以及代码自己最熟悉。

所以我们会说,黑盒测试由测试工程师完成,白盒测试由开发工程师完成,才是绝代双测。


测试工程师要需不需要开发技术? 


简而言之,测试工程师主要就是使用合适的测试工具对产品进行质量检查,及时发现产品问题并督促更正,确保产品的正常运作。在这一层认知里,拥有开发技术不是硬性规定,尤其是刚入门的小白,日常就是按照软件测试方案和流程对产品进行功能测验,检察产品是否有缺陷,技术离他们还是很远的emm。但是当你进阶到高级段位的时候,就需要有纵观全局的能力了。不仅要熟练掌握软件测试与开发技术,还要对所测试软件的对口行业非常了解。


且随着自动化测试大潮的袭来,不做自动化测试的产品八成都是在自寻死路。如果是不会开发的测试使用不会测试的开发搞出来的测试工具,你想想这其中的沟通误差,就有点儿迷醉对不对?


所以现在的测试工程师,又有了新的title:测试开发工程师。仍旧属于测试的范畴,但是对于代码能力和编程技术却是有要求:至少得掌握一门语言。而这也是成为一个专(niu)业(bi)测试人员(测试工程师+开发工程师的素养和能力)的必经之路。大环境在改变,做哪一行,都得多艺加身,尽量在上中下游,游刃有余。



岗位大数据



就业人员从业现状


性别分布:



在测试的岗位中,男性占比68.74%,女性占比31.26%。男女比例约为2:1。妹子的能力在测试岗上也是不可小觑。


学历分布:



其中从事测试的人员中,本科学历的工作人员占比73.65%;大专学历占比15.42%;硕士学历占比10.45%;博士学历占比0.09%。搞测试,注重的是学以致用,项目就是你最好的练靶场。


从业人员主要分布区域:


从业人员集中地区Top10


测试从业人员主要分布于我国中东部、南部地区,其中北京的测试工程师最多,其次是上海、深圳、成都、广州、杭州、武汉、南京、西安以及苏州。


雇主普遍愿意支付的月薪情况:



80%的雇主愿意支付7-10K的月薪,20%的雇主支付的月薪在10-15K。


从业人员薪资情况概览:



测试的薪资梯度数据呈现的比较均匀。除了工资在5-10K/月、25-30K/月占比人数相对较少,分别为4.94%、12.38%之外,每一个薪资等级(间隔5K)上都有20%左右的从业人员。其中月薪10-15K之间的从业人员占比18.29%;月薪15-20K之间的从业人员占比21.02%;月薪20-25K之间的从业人员占比22.89%。


高薪资分布地区Top10:



高薪分布地区的TOP10,几乎全部集中在沿海一代。形成一条狭长的线,这是因为互联网行业在沿海地区发展势头很猛,大厂均有在此落户。


从业人员工作经验普遍年限:


地区工作年限最长Top10


测试岗中工作年限在1-3年之间的,占比10.04%,工作经验在4-6年的从业人员占比22.39%,工作经验在7-10年的从业人员占比42.57%,10年以上工作经验的为25.00%。其中在江阴的测试从业人员平均工作年限最长,为10年;长沙的测试人员以9.8年的平均工作年限仅次于江阴;香港为9年;苏州为8.9年;珠海为8.7年;武汉、上海、北京为8.4年;海口、昆山则为8年。


不同经验下的工资水平概览:



通力模型和其他一些数据


从业人员靠前的毕业院校:



从业人员靠前的专业:



从事过的工作:



雇主最看重的能力:



你点击的每一个link


手滑的每一个页面


都由我事无巨细为你检测过


我想


我是真的喜欢你。


——测试攻城狮


重要说明:很多时候,玩游戏反馈体验,也是测试的一种。测试自动化是大势所趋,不会开发的「测试」不是正经「测试」。但是人工测试暂时不会消失。白盒测试的作用非常大,却并非所有公司和产品都会搞,因为很容易失败。


作者:灵智大师,就职于上海脚步网络科技有限公司 。硕士毕业于中国科学技术大学,AI 研究院数据科学家。本文始发于其个人公众号「拿出数据」。此外,文中所有数据皆来自于大招一百招聘平台(www.dazhao100.com)。

声明:本文为作者投稿,版权归作者所有。


  征稿啦!

CSDN 公众号秉持着「与千万技术人共成长」理念,不仅以「极客头条」、「畅言」栏目在第一时间以技术人的独特视角描述技术人关心的行业焦点事件,更有「技术头条」专栏,深度解读行业内的热门技术与场景应用,让所有的开发者紧跟技术潮流,保持警醒的技术嗅觉,对行业趋势、技术有更为全面的认知。
如果你有优质的文章,或是行业热点事件、技术趋势的真知灼见,或是深度的应用实践、场景方案等的新见解,欢迎联系 CSDN 投稿,联系方式:微信(guorui_1118,请备注投稿+姓名+公司职位),邮箱(guorui@csdn.net)。


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存