互联网公司的技术岗位被认为是核心岗位之一。 常见的类别包括开发工程师、测试工程师、架构师、运维工程师、数据工程师等。不过,很多公司还会设立更细分的技术职位,比如:DBA、BI、中间件工程师、AI工程师、CAD工程师、 ETC。
今天我们说的是技术岗位中的测试工程师和软件测试工程师。 这一系列的职位在互联网公司中至关重要。 有的公司甚至通过测试工程师岗位和运维工程师岗位的配合来解决成本高、效率低的问题。 问题,有的还解决用户安全和体验问题。 下面我们就详细说说这个位置。
测试工程师分为以下职位:硬件测试工程师、软件测试工程师、自动化测试工程师等。不同的公司因为业务领域不同,需要不同的测试职位。 但不管什么业务,你生产的互联网产品(以前也叫系统,现在有的叫平台,现在都叫互联网产品)都需要测试,无论测试的层次或者深度、测试方式如何。 有些公司也将测试工程师称为质量工程师或执行与质量工程师类似的任务。
(2)软件测试工程师
任何系统都需要经过充分的测试和验证才能发布到市场。 如果你不是从事IT或者互联网行业,可能对软件测试没有太多概念,但是很多人都接触过这个岗位。 让我举几个例子。 很多玩游戏的同学都会听过或玩过“内测版”、“公测版”、“问题反馈版”等。其实很多平台已经将软件测试从原来企业内部的活动拓展到了外部企业,让用户有更多的参与,同时提高软件的质量,特别是交互体验。
小编之前讲过【硬件测试工程师】这个岗位。 今天我将重点介绍软件测试工程师职位,其中还包括自动化测试(软件)。
在讲这个职位之前,我们先来说一下什么是软件测试。 它是使用手动或自动方式运行或测试软件系统的过程。 它的目的是测试是否满足指定的需求(业务、功能、交互、数据等)以及实际结果是否满足预期结果(差异很正常,有一个指标叫bug率)。 整个软件测试实施过程有多个阶段,如单元测试、集成测试、系统测试和验收测试。
软件测试工程师是指了解产品的功能需求并对其进行测试,检查软件是否存在缺陷(Bugs),测试软件是否具有稳定性(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、Xensever 等
⑤ 常用管理工具,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、ZenTao)。
4、善于发现问题,责任心强,热爱测试工作,有强烈的学习欲望。
评论列表