查查知识网

软件开发工程师岗位职责(软件开发工程师工作内容)

发布者:高同远
导读今天小编和大家聊聊互联网企业技术岗位都有哪些?各个技术岗位都需要具备哪些能力?一些互联网企业对各个岗位的要求与岗位职责的设定?包括大家比较关心的岗位薪资福利情况。互联网企业中技术岗位被认为是核心岗位之

今天小编和大家聊聊互联网企业技术岗位都有哪些?各个技术岗位都需要具备哪些能力?一些互联网企业对各个岗位的要求与岗位职责的设定?包括大家比较关心的岗位薪资福利情况。

互联网企业中技术岗位被认为是核心岗位之一,常见分类有开发工程师,测试工程师,架构师、运维工程师、数据工程师等等,但是也有很多企业会设置更为细分的技术岗位,例如:DBA、BI、中间件工程师、AI工程师、CAD工程师等等。

今天我们说说技术岗位中的测试工程师之软件测试工程师,互联网公司中这个系列岗位是至关重要的,有的企业甚至通过测试工程师岗位和运维工程师岗位的配合解决了企业高成本,低效能问题,也有的解决了用户安全和体验问题,下面我们详细说说这个岗位。



测试工程师又有下列职位的区分,硬件测试工程师、软件测试工程师、自动化测试工程师等等。不同的企业因为业务领域不同,所需的测试岗位也不一样。但是不管业务是什么,自己生产出来的互联网产品(以前也叫系统,现在有的叫平台,权且都叫互联网产品)都需要进行测试,无论什么测试层级或深度以及测试手段等。有些企业也会把测试工程师叫做质量工程师或者也担任和质量工程师相似的一些工作任务。

(二说)软件测试工程师

任何一个系统都需要通过充分的测试验证之后才能够面向市场。如果不从事IT或者互联网行业,可能对于软件测试没有太多的概念,但是很多人都接触过这个职位,我举几个例子,玩游戏的同学们很多人都会听过或者玩过,“内测版本”、“公测版本”、“问题反馈”等等。其实这是很多平台都把软件测试工作,从原来的企业内部行为扩展到了企业外部,让用户有更多的参与感,同时提升软件的质量尤其是交互体验。

小编之前说了【硬件测试工程师】岗位,今天重点说说软件测试工程师岗位,也包括自动化测试(软件)。

说这个岗位之前,我们先说说什么是软件测试。就是使用人工或自动手段,来运行或测试某个软件系统的过程。其目的在于检验它是否满足规定的需求(业务、功能、交互、数据等等),实际结果是否满足预期结果(有差异也是正常的,有个指标叫bug率)。整个软件测试实施的过程中也有很多个阶段,如单元测试、集成测试、系统测试及验收测试等阶段。

软件测试工程师(Software Testing Engineer)指理解产品的功能要求,并对其进行测试,检查软件有没有缺陷(Bug),测试软件是否具有稳定性(Robustness)、安全性、易操作性等性能,写出相应的测试规范和测试用例的工程师。

软件测试工程师按照不同的能力要求,在很多企业也被分为三层:



A-初级软件测试工程师,针对软件的业务特性,功能特征,按照已经制定好的软件测试用例(包含功能用例,数据用例等)和测试流程对软件产品进行测试,检察软件产品是否有缺陷(bug,和预想测试结果不一致的问题);

B-中级软件测试工程师,具备编写软件测试方案(包含功能用例,数据用例,测试流程等)能力,并与软件产品团队一起制定软件测试阶段的工作计划,能够在软件产品交付上线(对用户开放使用)前合理利用测试工具完成测试任务;

C-高级软件测试工程师,熟练掌握软件测试与开发技术,且对所测试软件相关行业非常了解(熟悉业务),能够对可能出现的问题进行分析评估;具备通过软件开发技术实现自动化测试的能力,包括自动化API、UI等相关测试;熟练使用和部署软件测试工具。

1、软件测试工程师的技术体系

从测试技术来说,主要分为“黑盒测试”和“白盒测试”两大类。简单来说,黑盒测试就是测试人员并不知道内部情况,只是把表面看的见的验证清楚,白盒测试,就把里面开不见的也到找到,剖开来验证。例如:去买房子,没有打开门进到房子里面,你看的只是房子外面的环境。房子里面对于你来说就是黑盒,什么也不知道。当你打开门进入到房子中,你看到了房间的结构等等,这就是白盒了。黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的;白盒测试是从软件设计角度出发,验证软件程序的每一个功能逻辑分支的正确性,也包括数据逻辑的正确性;



黑盒测试也叫做功能测试,很多同学都是从黑盒测试开始,测试工程师不考虑程序内部的逻辑结构和内部特性,只依据软件产品的《需求规格说明书》,检查软件产品的功能是否符合它的功能说明。测试工程师无需了解程序代码的内部构造,完全模拟软件产品的最终用户使用该软件,检查软件产品是否达到了用户的需求。验收测试中更多的使用黑盒测试的方法。对于黑盒测试技术中,常见的有等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法、场景法以及各类典型的软件故障模型等

白盒测试也叫做结构测试,逻辑测试等。 深入到代码一级的测试,使用这种技术发现问题最早,效果也是最好的。该技术主要的特征是测试对象进入了代码内部。这部分测试工作多数是由开发人员完成,经常在单元测试阶段出现,当然集成测试和系统测试阶段也会发生,不过很多都是依靠自动化测试工具完成,否则成本巨大。对于白盒测试的常见技术有语句覆盖、分支覆盖、判定覆盖、基本路径覆盖等等。



其实测试技术演变到今天有很细分领域,例如:性能测试,压力测试,安全测试,兼容性测试,UI自动化测试,接口自动化测试(API)、手机测试等等。对于测试工程师来说,其实需要掌握的技能也是要非常丰富的,一般的软件测试工程师需要有以下能力:

1)计算机基础知识

①操作系统:Linux、Unix、windows、Dos、Mac等系统的基本命令和操作等;

②网络基础:TCP/IP、HTTP、UDP协议,常用的网络命令,网络抓包工具等;

(PS:初级--会用/了解,中级高级就不用说了,大家都明白的;至于更高深的知识,主要是看个人对职业的发展需要,以及企业对岗位的需要)

2)测试理论知识

①测试方法论,黑盒测试、白盒测试、性能测试,压力测试,安全测试,兼容性测试,UI自动化测试,接口自动化测试(API)、手机测试

②测试工程理论,单元测试、集成测试、系统测试及验收测试等;测试管理,测试用例,测试报告、测试场景、测试设计与文档编写等等

(PS:理论太多了,还是以项目实战为目的比较直接)

3)测试中的工具与开发技术

①Web测试技术栈与工具,LoadRunner、SoapUI、Selenium、Vue.js、Nginx、H5、CSS等等

②移动APP测试技术栈与工具,Monkey、Emmagee、Fiddler、Appium、Android、iOS、H5等等

③自动测试的开发语言,Java、JS、Python、go、shell、C/C++、Lua等等

④数据库与运维知识,Oracle、MySQL、MongoDB、DB2、Redis等等;Docker、Kvm、Xenserver等等

⑤常见管理工具,jira、SVN、Git、禅道、Mantis等等

4)测试行业的业务知识

这个主要是针对行业来说,也有的这对产品系统的所属业务,总之,测试人员是必须掌握业务知识的,甚至比开发人员更理解业务。很多企业的软件产品都是在设计之初就安排测试团队介入,有的企业产品设计完成之后,测试用例也就出来了。

测试工作不是简单发现错误的工作,发现错误之后还要分析错误,分析错误之后还要协助解决处理错误。有些错误可能有关联性、有些错误是表面错误,可能根源并不是这里。总之测试工作中有很多能力是必不可少的。


2、测试工程师的岗位要求(包含软件测试工程师和自动化测试工程师)

小编之前讲解了很多城市的不同企业对不同岗位的要求,本次测试工程师岗位,我们按照对外包测试、自建测试团队、自动化测试工作相对发达的方式来选择城市,成都、北京、上海。

1)我们先看看最近几年新起来的外包基地-成都,对日,欧美业务不少,也形成了除大连之外新的软件外包城市。本次选择的企业规模是100人以上企业,包括1家上市企业。



企业1:软件(自动)测试工程师,薪资9K-18K/月(中高级)

岗位职责:

1.按照业务需求,制定测试计划和测试方法,完成测试任务;

2.参与系统需求和架构设计评审,保证系统的可测试性;

3.参与测试效果评估和软件质量核查;

4.协助解决测试过程中的复杂技术问题;

5.参与自动化测试工作;

任职资格:(大专及以上)

1.计算机或其他相关专业优先;

2.三年以上软件测试经验,熟悉app、H5、web、接口测试、性能测试;

3.熟悉软件开发和测试流程;

4.具有良好学习能力、分析能力和解决问题的能力;

5.熟练使用Jmeter,python进行接口测试,熟悉oracle、mysql、redis、Hadoop相关特性

6.能接受加班,主动性强愿意自学提高自身技术水平;

企业2:软件(自动)测试工程师,薪资10K-15K/月(中高级)

岗位职责:

1、熟练掌握测试工具和测试方法,能独立完成项目的整体测试(费用结算相关业务),并给出评估报告

2、针对项目有自己的见解,能够参与项目的整体方案讨论,给出合理建议

3、能及时的协助开发处理线上问题,确保线上环境运行稳定。

4、会使用常用的测试技术和测试工具,结合公司的实际情况将其应用到实际工作中,改善测试环境、提高测试效率和测试质量;

5、能根据测试进展,合理分配时间,安排好测试项目的具体进程;

岗位要求:(大专及以上)

1、3年及以上测试经验,具有费用结算相关系统测试经验优先,保质高效完成交付任务;

2、有较强抽象思维能力,较出色的沟通协调能力,能协调各个角色快速定位及解决问题;

3、有一定的代码基础(JAVA、python),熟悉MySQL,熟悉自动化测试。

4、具有良好的团队与分享精神,团队协作能力以及抗压能力,能有效推动,协调工作的开展。

企业3:软件测试工程师,薪资6K-8K/月(初中级)

岗位职责:

1、 负责公司研发软件的测试工作,执行项目测试,以功能测试为主。

2、 负责被测软件及相关文档的配置管理。

3、 使用Redmine缺陷管理工具对测试中发现的BUG进行有效管理,并跟踪BUG修复进度,促进开发人员尽早修复缺陷。

4、 撰写测试计划、测试用例、测试大纲、测试报告等相关测试文档。

5、 改进测试流程,保证软件质量。

6、当项目需要时,可做一些简单的开发工作。

任职要求:

1、 本科及以上学历,有项目测试经验或有一定的C++开发经验,可以开发一些小程序。

2、 熟悉软件测试流程和方法,熟悉C/S,B/S架构项目,具备测试用例设计及测试相关文档撰写能力。

3、 熟悉常用的工具软件及测试工具(SVN、Redmine、Msyql、Git、禅道)。

4、 善于发现问题,具备较强责任心,热爱测试工作,学习心强。