用 Python 爬了 10 万条软件测试工程师信息有这些发现!
点击上方“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)。
声明:本文为作者投稿,版权归作者所有。