• 0
  • 0
分享
  • 软件测试前景和发展方向——软件测试圈
  • 恬恬圈 2023-11-10 15:12:15 字数 5152 阅读 761 收藏 0

  由于测试的薪水比较高,最近几年有很多其他专业的人涌进了测试行业,加速了这个行业的内卷,但是据某招聘网上的数据统计,测试当前的需求量还是远高于其他行业的平均线的。所以,测试的现状我觉得是不错的,至少几年内是无需担心的。

  测试就业前景如何,我现在居住在一个三线城市,朋友是从事测试工程师,处于三线城市一个测试开发工程师就月入7k到9k更别说一线,二线城市,你说他的前景如何?现在还是互联网普及时代,新媒体快速发展,测试就显得尤为重要。

  一、测试基本知识

  测试同学的职责无非就是两个,保证软件测试质量和提高测试效率。

  为了达到这两个目标,测试同学的日常就包括:常规需求的功能测试,自动化测试,性能测试,跟踪线上反馈问题,搭建测试环境,把控项目进度和质量,开发测试平台或脚本,进行部门的管理工作等等。

  1、常规需求的功能测试

  包括参与需求评审会议,制定测试计划,编写测试用例,评审测试用例,执行测试用例,提交Bug,回归验证Bug,发送测试报告,进行线上验证等一系列活动。

  2、进行性能测试

  根据项目需求,对重要接口制定压测方案,利用Jmeter等测试工具进行压力测试,配合开发同学找到系统瓶颈,并产出压测报告。

  3、进行自动化测试

  利用自动化测试工具例如RobotFramework,Python+unitest/pytest,Selenium等完成页面UI自动化或接口自动化,提升测试效率,尽早暴露问题。

  4、跟踪线上反馈问题

  在日常测试中,线上问题不可避免,反馈过来的线上问题,需要测试同学过滤和重现,再同步给开发同学,并协助开发同学定位问题,待开发同学解决后,测试同学验证完成后上线。

  5、搭建测试环境

  有的测试环境由运维同学来搭建,而有些则需要测试同学来搭建,视不同的公司而定,搭建测试环境会有文档,根据文档,即可完成,一般的测试环境有Linux,Windows,而Linux偏多,因此会用到较多的Linux命令,平时学会一些基础的Linux命令是很有必要的。

  6、把控项目进度和质量

  对于项目中出现的Bug和不确认点,需要测试同学积极推进,及时与产品和开发同学沟通,尽快解决问题,推动项目的进展。

  对于产品的质量,测试同学会对定期进行Bug统计,分析Bug原因,如果质量一直很差,就会采取一些措施来积极改进和提升。

  7、培养测试新人

  新人在试用期间,会分配一位导师,对其工作内容和转正考核负责,一般由测试组长承担该角色。

  8、开发测试平台或脚本

  有些公司有专门的测试平台,来完成Bug统计与质量分析,接口自动化统计等等功能,这部分开发工作会由测试开发工程师来承担。

  9、进行部门的管理工作

  管理工作由领导承担,包括各项目的人员安排,项目测试时间的评估,项目测试进度跟进,部门成员绩效考核,人员招聘,团队建设等等。

  二、所需能力模型

  想要做好软件测试,需要具备两方面的能力,即硬实力和软实力。

  硬实力

  硬实力,也就是测试同学需要的专业知识,具体的知识体系如下:

  1、软件测试基础知识

  馨馨紫在大学期间,有幸上了软件测试这门专业课,算是入了门,为后续的职业发展也打下了基础。

  入门测试基础知识,主要从软件缺陷,软件开发周期模式,软件测试分类,软件测试用例设计方法等方面入手。

  2、软件测试流程

  业界比较规范的软件测试流程是:需求评审,制定软件测试计划,编写测试用例,进行用例评审,执行测试用例,提交Bug,验证Bug,发送测试报告,进行线上验证。

  但是在实际工作中,往往不会有这么规范的流程,馨馨紫只在一家公司经历过这么规范的流程,当时刚好公司进行流程规范,请了何勉大佬,来公司专门做指导。

  该大佬,是一名资深精益产品开发顾问,专注于精益产品交付、精益创业、创新及精益产品设计等领域,曾为华为、平安科技、招行以及多家成功的创业公司建立或引入精益产品开发和创新方法,推荐大家看看他的书籍《精益产品开发:原则、方法与实施》。

  大多数不规范的流程主要分为以下几种:

  (1)没有需求评审,开发完直接提测

  需求由开发同学口述或者在邮件中进行简单的说明,测试同学就开始介入测试。

  在需求不明确的情况下进行测试,测试同学往往在沟通需求的过程中花费很多时间,而且最后可能会背锅。

  这种情况下,测试同学则需要记录好已经测试的点,并与开发和产品同学确认清楚范围,只能保证当前已经测试功能的正确性,其他未测功能风险未知,并在测试报告上做明确说明,万一以后线上有Bug,可以拿测试报告说话。

  (2)没有用例评审环节

  用例评审,即测试,开发,产品三方一起,确认测试点,旨在避免遗漏测试点,在比较复杂的系统中会有该环节,对于逻辑很简单的系统,就没有必要了。

  做好用例评审,要把握好评审的粒度,如果粒度太细了,与会的同学会比较疲,参与感会越来越弱,所以把握好粒度很重要,列出测试点即可,不用特别详细。

  (3)没有Bug管理工具

  在Bug管理系统上记录,有利于质量分析,同时Bug库也是一个很好的测试用例库,很多Bug具有普适性,在不同的项目中可以相互借鉴。

  有的公司没有Bug管理系统,直接用文档记录,或者发在群里,Bug比较少还好管理,但是Bug一旦多起来,就容易混乱,前后端的Bug需要不同的人员认领,修复了没有地方去更新状态,最后也不利于质量分析。

  有的公司则是有Bug管理系统,但是由于开发人员的KPI与Bug数量有关,内部默认不记录Bug,直接用IM沟通,手动记录。

  理论上来说,Bug管理系统是很有必要的,不仅能节省沟通成本,还有助于质量分析,大家如果合理利用,能带来很大的价值。

  3、常用的测试工具

  (1)测试用例工具

  编写测试用例的工具有很多,常见的有Xmind,Excel,TAPD,Testlink,Zentao等,在实际工作中,因为Xmind的简单和便捷性,用到的是最多的。

  (2)项目管理工具

  常用的项目管理工具,有Zentao,TAPD,Teambition,Coding,Jira,企业自研工具。

  在实际工作中,接触的到主要有Jira和企业自研工具,在何勉老师精益指导的过程中,用到的就是Jira,对于每一个需求,开发和测试同学,都会认领一个task,task的周期从开始到结束,每天站会沟通后,及时更新task的状态,在每个季度末,统计每个需求所花费的时间,做项目管理分析。

  (3)Bug管理工具

  常见的Bug管理工具,有Jira,TAPD,Zentao等。

  Bug是一个很有价值的系统,定期进行整理和分析,不仅能发掘很多测试点,还能评估项目的提测质量。

  (4)自动化测试工具

  常见的自动化测试工具,有Jmeter,Appium,Postman,Selenium,RobotFramework,Python+unitest/pytest。

  Jmeter,大多数时候用来做压力测试,偶尔也用来做接口自动化测试。

  Appium,用来做移动端的自动化。

  Postman,用于接口测试。

  Selenium,用于Web应用的自动化。

  RobotFramework,用于UI或接口自动化。

  Python+unitest/pytest,用于接口自动化。

  自动化,分为接口自动化和UI自动化,性价比相对较高的是接口自动化,接口的变化比较小,相对好维护一些,而UI自动化,页面变化快,维护成本高,所以很多项目都不考虑做UI自动化。

  对于实际的项目经验,馨馨紫最熟悉的还是Jmeter和RobotFramework,曾经利用RobotFramework完成了项目从0到1的UI自动化和接口自动化,接口自动化覆盖率达到90%,并集成至CI上,每天自动跑,有问题及时发送邮件,大大提升了冒烟测试效率。

  (5)抓包工具

  常见的抓包工具有Fiddler,Charles,Wireshark,这三种都比较常用。

  抓包,也是为了更好的协助开发同学排查问题,出现了Bug,通过抓包,可以更清晰地排查是前端问题还是后端问题,比如未发送请求,或者传参错误,字段取值错误等都是前端问题,接口返回报错或者返回字段值错误等则是后端问题。

  (6)辅助工具

  常用的辅助工具有Navicat,Xshell,Wiki,F12等等。

  Navicat主要用来连接数据库,可查看数据库的字段,或通过SQL进行数据报表的测试等等。

  Xshell主要用来远程连接Linux服务器,对服务器做一些基本的操作,在目录查看文件,启动服务,安装软件等等。

  Wiki,主要用于公司内部的文档沉淀,例如编写接口文档,测试文档等等。

  F12,抓取接口信息,查看接口请求和返回,区分前后端Bug。

  4、基本的SQL语句

  在实际测试过程中,例如一些列表或数据报表的展示,需要用到基本SQL语句的增删改查,所以掌握一些基础的SQL语句是很有必要的。

  5、基础的Linux命令

  在部署Linux环境,做压测等会用到Linux命令,熟悉一些文件管理,压缩与解压,性能监控,系统管理,用户管理,软件安装等命令就满足日常工作的需要了。

  6、架构相关知识

  架构知识需要结合实际的项目,在日常测试中,可以与开发同学多多沟通,了解下架构相关的知识,主要从语言,框架,部署等方面入手。

  一个好的架构具有高可用,高性能,可伸缩,可拓展等特性。

  软实力

  大家不要忽略软实力,软实力有时候甚至比硬实力更重要。

  软实力包括沟通协调能力,自主学习能力,文档输出能力,团队管理能力等等。

  1、自主学习能力

  在测试日常中,与产品,研发同学沟通必不可少,要是沟通能力不行,比如需要确认的需求点说不清楚导致线上问题,与开发同学的测试范围确认不清楚而导致漏测,这无形会给日常的测试工作增加难度。

  自主学习能力,这点很重要,我们生在互联网行业,大家知道,技术更新是日新月异的,时常关注行业新框架,新技术和新动态是很有必要的。

  2、文档输出能力

  文档输出能力,编写测试报告,编写邮件等等都涉及到文档输出能力,这些报告和邮件是平时测试的成果,在业绩考核中也占有一定的比重,如果只会埋头干活,不会表达成果,升职加薪也是有难度的。

  3、团队管理能力

  团队管理能力,有句话说的好,学而优则仕。的确,大家不可能永远待在基层岗位,大多数人都会慢慢往管理岗靠近,团队管理能力的重要性不言而喻。

  三、职业发展方向

  软件测试工程师的职业发展,可以分为四个方向:

  业务测试工程师

  业务测试工程师,在测试群体中这个比例是非常大的,这是最接近用户的一个群体,这部分的测试工程师主要负责常规需求的功能测试,接口测试,自动化测试,性能测试等。

  涉及的业务主要有电商,金融,在线教育等等,不限于Web,客户端,移动端的测试。

  馨馨紫待过测开比1:10的团队,也待过1:1的团队,具体的比例取决于业务形态和公司的资源,有的项目逻辑简单,开发周期短,出事故的概率低,造成的损失低,测试人员就会配置的少一些,而项目逻辑复杂,盈利多,开发周期长,测试人力就会配置的充足些。

  在微软,测开比一般为1:1,在谷歌,测开比则为1:10,还是那句话,现状决定流程。

  测试开发工程师

  测试开发工程师,主要开发公司内部的测试平台/测试工具,也为业务测试工程师解决一些技术问题,例如搭建自动化测试框架,编写一些提升效率的自动化测试脚本。

  测试开发的要求比业务测试工程师高一些,需要写得了代码,测得了需求,也就是即会开发,又会测试的同学。

  一些小公司是没有测试开发工程师这个岗位的,一是没有自研的测试平台,而是由业务测试的同学偶尔做做补充,业务测试的同学也可以写点小脚本和小工具,所以就没有设置专门的岗位了。

  测试开发的人员比例,馨馨紫经历过的公司大概是1:10,2个测试开发工程师,服务于20个业务测试工程师,具体比例取决于目前公司的现状。

  四、总结

  总结,其实是一个复盘的过程,也是一个自我改进提升的过程。

  测试过的项目,用到的测试工具,思想和方法,碰到的难点以及解决方法等等都可以总结记录,并以文档的形式输出沉淀,都是一个很好的积累过程。

  在下次碰到同样的问题,可以有自己的一套思路,或者分享至博客,记录在公司WIKI,对他人来说,可以避免踩同样的坑,利他即利己。

  今天的分享就到这里,希望对软件测试职业道路上的你有所启发。



作者:自动化测试冰茶    

来源:http://www.51testing.com/html/48/n-7789548.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   华为于 6 月 21 日在 HDC 2024 开发者大会带来全场景智能操作系统鸿蒙 HarmonyOS NEXT。  据介绍,鸿蒙 HarmonyOS NEXT 系统将在出行领域打造“人 + 车 + 家”协同出行体验。其内置的 HiCar 功能得到升级优化,将带来全新桌面设计、音乐 / 导航等功能交互。  同时新版 HiCar 还将采用分布式协议,将实现车机侧代码零修改效果。  HarmonyOS NEXT 版 HiCar 采用 ffrt 机制,连接流程阶段得到优化,实现核心体验提升 30%。  新版 HiCar 外观、交互得到升级优化。IT之家注意到,新版 HiCar 整体页面布局更像鸿...
            0 0 645
            分享
          • 无人在意双12今年双12还没开始就结束了。12月12日一早,宁波老板陈强打开手机,看了一眼空空如也的仓库订单,上街买了一屉肉包子。“似乎没人记得今天是双12了,我也只能吃饱了继续睡。”陈强名下有一家第三方发货仓库,规模达上万平方米,专门服务于电商平台商家。往年从双11到双12,他基本是睡在仓库里,以便随时处理订单。而今年双11期间,宁波干线快递不通,许多城市难以发货,他的生意有些惨淡——没想到双12更加清冷。这天中午,高敏为了买酒精和N95口罩,来回在各大电商平台切换,看看谁家能快速发货,却得到失望的结果。她这时才后知后觉地发现已经到了双12。想想每年双12她都会提前备起年货,而今年只能抢酒精...
            0 0 965
            分享
          • 人脸识别现在越来越流行了,广泛应用与各行各业。那对于软件的这项高大上的功能该如何进行测试呢?接下来我们讲究一起看看这个神秘的过程。首先,在测试之前需要先了解人脸识别的整个流程。首先是人脸采集。安装拍照摄像设备之后,需要在动态的场景与复杂的背景中判断是否存在人脸,并分离出这种面像。然后采集到人脸的照片。因此采集过程是非常重要的,一需要能够采集到内容,二采集的内容能够分离出来是人脸。而特征提取的原理是,将获取的人脸照片进行色彩矫正、光线调整,五官定位和脸部分割,将人脸的鼻子、眼睛、嘴巴等视为一个个特征点,计算每个特征点所在的位置、距离、角度。正常场景下,在合适的光源下,采集人脸的正面,包含正常完整...
            0 2 4215
            分享
          •   一、接口的产生  1、接口的定义  一般来说,接口分为硬件类接口和软件类接口。银行系统的接口一般指的是软件接口,软件接口分为两种:  (1)程序内部的接口:方法与方法、模块与模块之间的交互,程序内部抛出的接口,用于模块与模块之间的交互,使用于自身的系统。  (2)系统对外的接口:与银行别的业务系统之间的交互。由于对方系统不会提供数据库共享,只提供一个写好的方法,让其对接,业务系统需通过这个写好的方法,来获取自身系统想要的数据。这个写好的方法,就是对外的接口。  2、接口的分类  接口一般分为两种:  (1)webService接口:走soap协议通过http传输,请求报文和返回报文都是xm...
            0 1 1234
            分享
          • 摘要:测试数据在项目开发、测试过程中占据着重要的作用,随着我行信息系统建设速度的加快,软件更新速度的不断提升,对数据交付时间和数据格式的要求也越来越高。对于数据库大表来说,无论是脱敏还是导出的速度,往往不能满足实际需要,Kettle作为业内最著名的开源ETL(数据抽取)工具,可直接对数据库表进行操作并以多种格式进行导出,格式规范,效率较高,能很好的满足使用过程中的需要。本文对kettle在实际中具体的使用与实践进行重点介绍。1、常用ETL工具现状简介ETL是Extract-Transform-Load的简写,用来描述将数据从源端经过抽取(extract)、转换(transform)、加载(lo...
            0 0 4375
            分享
      • 51testing软件测试圈微信