美文网首页
软件测试适合女生吗?

软件测试适合女生吗?

作者: 程序员馨馨紫 | 来源:发表于2022-05-17 17:44 被阅读0次

    大家好,我是程序员馨馨紫,一个混过大厂,待过创业公司,有着 6 年工作经验的软件测试妹纸一枚。之前在也写过几篇文章,之后很多粉丝过来咨询女生能不能做软件测试。

    今天索性写篇文章,详细的介绍一下软件测试,希望对大家有点帮助。首先肯定一点,在我长达 6 年的软件测试职业生涯中,始终认为:软件测试是非常适合女生的。

    下面从六个方面展开说说:

    • 女生从事软件测试的优势
    • 软件测试岗工作内容概述
    • 软件测试需要的能力模型
    • 软件测试的职业发展方向
    • 软件测试的薪资水平如何

    一、女生从事软件测试岗的优势

    从在职测试人员来看,女生从事软件测试职位的优势表现在以下五个方面:

    一)细心

    女生在软件测试工作中,比较细心,善于发现代码中的Bug。除了常规的业务场景之外,测试中还有很多小细节,例如每一个弹框的标题,每一个文案,每一个界面的样式等等,都是一些不可忽略的小细节,有些细节如果不仔细看,是很难发现的,女生在这方面就更有优势。

    二)耐心

    女生在软件测试工作中,比较耐心,能够胜任某些重复性的工作,软件测试中,包含有大量重复执行用例的工作,举一个简单的例子,一个新功能,首次测试,发现了Bug,将Bug提给开发,等开发同学修复完之后,转给测试同学验证,验证的过程,就相当于第二次执行重复的用例了。

    除了回归测试之外,兼容性测试,也很需要耐心,有些业务,需要兼容多种浏览器或多个手机机型,也就是说,同样的业务功能,需要在每个浏览器或者手机上都重复验证一遍。

    在测试过程中,一遍一遍的重复执行用例,很容易疲劳,导致发现不了Bug,因此,在测试过程中需要有耐心,才能更好地保证测试的质量。

    三)沟通能力

    女生在软件测试工作中,沟通能力强,且比较有亲和力,在工作中能很好地融入团队,带动团队氛围。

    对于沟通,也是有方法的,比如开发在紧急赶进度,手上有好几个项目同时进行,测试同学遇到了些Bug,但是又不是特别严重,也不阻塞测试流程,这个时候最好别一直在群里艾特开发同学。

    可以先记录在Bug管理工具上,抽一个时间点,集中一起和开发同学对一下,如果在群里一直艾特一直催促,一般情况下开发同学是不会立马响应的,还有可能会引起开发同学的反感,得不偿失。

    四)文档能力

    女生在软件测试工作中,文档能力一般要强于男生,测试工作是需要输出很多文档,而这往往是绝大多数女生的优势所在。

    测试同学往往需要产出很多文档,软件测试文档是指在软件测试的各个阶段用文档的形式记录测试过程,软件测试文档主要包括:测试计划,测试用例,测试缺陷,测试报告等等。

    测试计划:测试计划由测试小组编写完成后,需要同项目中相关人员进行评审,以确保当前的计划与项目进度等是一致的。

    测试用例:用于描述测试用例的具体细节工作,一般根据测试计划,原型文档和测试策略来编写。

    测试缺陷:描述测试过程中相关的缺陷信息,让团队更好的了解测试缺陷类型。

    测试报告:对测试结果进行统计分析及总结。

    五)换位思考能力

    女生思考方式趋于感性,往往善于站在对方的角度考虑问题,这恰恰吻合软件测试的本质即站在用户的角度去捕捉产品中的缺陷与建议。

    例如在流程设计方面,用户体验路径是否一致,在界面呈现方面,控件是否符合用户认知和是否具有一致性,在交互过程方面, 是否周全地考虑了所有操作成功或失败的反馈等等。

    从在职测试人员的表现以及职工性别比例来看,女生都是比较适合软件测试的,但是馨馨紫觉得,这不足以成为女生从事软件测试的理由,严谨点,我们还需要从以下几个方面来思考,自己是否适合从事软件测试岗位。

    二、软件测试岗位的工作内容

    一)常规需求的功能测试

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

    二)进行性能测试

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

    三)进行自动化测试

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

    四)跟踪线上反馈问题

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

    五)搭建测试环境

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

    六)把控项目进度和质量

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

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

    七)培养测试新人

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

    八)开发测试平台或脚本

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

    九)进行部门的管理工作

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

    十)工作强度

    每个公司的项目类型不同,企业文化也不同,从馨馨紫6年的工作经验和身边朋友的经历来看,工作时间大致如下。

    1、国企

    朝九晚六,也就是早 9 点,晚 6 点,基本上不需要加班,到点走人,周末双休。

    2、互联网企业

    上班一般是弹性制,早上 9 点到 10 点,晚上 6 点到 7 点弹性打卡,中午休息一个半小时。

    互联网企业,大多会有加班文化,很少会准点走,加班到八九点是常事,周末根据项目安排,也有可能安排加班,加班时长在一定程度上决定KPI,大家都懂的,所以该加班还是得加。

    3、私企

    私企的人数不多,碰上项目加急赶进度的时候,加班会很多。

    4、外企

    外企的工作强度不大,加班也比较少,氛围比较轻松。

    总之,加班的多少,取决于公司,企业文化以及项目组,但是从整体大环境来看,除了国企和外企,大多数公司都会有不同程度的加班。

    三、软件测试岗位的能力模型

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

    一)硬实力

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

    1、软件测试基础知识

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

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

    2、软件测试流程

    业界比较规范的软件测试流程是:需求评审,制定软件测试计划,编写测试用例,进行用例评审,执行测试用例,提交Bug,验证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,Robot Framework,Python+unitest/pytest。

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

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

    Postman,用于接口测试。

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

    Robot Framework,用于UI或接口自动化。

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

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

    对于实际的项目经验,馨馨紫最熟悉的还是Jmeter和Robot Framework,曾经利用Robot Framework完成了项目从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、团队管理能力

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

    四、软件测试岗位职业发展方向

    软件测试的职业发展方向,大致分为三条路线:

    • 技术岗:功能测试->自动化测试->性能测试->测试开发->测试专家
    • 管理岗:测试组长->测试主管->测试经理->CTO
    • 转型:产品经理/开发人员/运维人员/滴滴司机等等其他行业

    一)技术岗

    在技术岗的前三个阶段,title一般为:业务软件测试工程师,这个职位在测试群体中的比例是非常大的,这是最接近用户的一个群体,这部分的测试工程师主要负责常规需求的功能测试,接口自动化测试,性能测试等。

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

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

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

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

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

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

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

    测试专家,在功能和专项测试(自动化,性能,测试开发)等方面进行深耕,可解决整个测试团队的技术问题,为整个测试团队的技术赋能。

    二)管理岗

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

    1、入门级

    很多同学是校招或者社招转行进入软件测试,初入软件测试的前两年,职位一般是初级测试工程师,大家都做着最基本的测试工作,主要是进行功能测试,熟悉业务,能保证上线的产品不出大问题即可。

    2、3年左右

    业务组长,作为项目的主测人员,重点在测试计划的制定和执行,测试任务的安排以及估期,保证项目能按期交付,线上不出现重大的事故,管理人数大约在 3~5 人。

    3、5年左右

    测试主管/测试经理,该阶段的工作主要包含测试计划的制定,更多的是关注重难点项目,且需要掌握更多项目管理的知识,深入理解项目的价值,做好项目管理,成本管理,风险管理和人力管理,同时也会参与一些招聘,员工绩效,质量管理,风险管理的工作。

    4、8年或以上

    测试总监,该阶段需要理解产品的商业目标,直接对产品成功负责。该阶段的主要工作包含管理测试团队,进行人员招聘,带好整个团队的节奏,优胜劣汰,留住核心人员,淘汰达标的人员,提升团队战斗力。

    同时需要负责资源的计划和分配,持续改进测试能力,提升测试效率,保证产品质量,从测试的角度对交付的产品和质量负责。

    三)转型

    如果对测试没有很大的兴趣,觉得自己的沟通能力还不错,更喜欢与人打交道,可以转型到产品岗。

    在业界,有很多从测试成功转型为产品的同学,他们后续发展的非常好,因为测试对于产品功能是非常熟悉的,产品需要的能力与测试有较多的重合,所以相对来说,转型的难度不高。

    如果热衷于技术,追求技术带来的成就感,可以转到开发岗,在实际职场中,测试转开发的比率是很小的,测试同学要求的知识面是广而浅,开发同学要求的是精而深,个人兴趣和技术难度可能是转型少的一个原因。

    其实还有好多选择,可以转型做测试咨询,创业,滴滴司机,或者外卖小哥等等都可以的,遵循自己的内心,选择想要的岗位。

    五、软件测试岗位的薪资水平

    软件测试岗位的薪资,取决于三个维度:城市+公司+个人能力。大致从网上找了一些数据,仅供大家参考:

    一)一线城市例如北京

    985、211名校毕业的科班生,校招年薪大概在 16w~20w 之间。

    普通本科毕业生,校招年薪大概在 8w~15w 之间。

    1~3年经验社招,年薪大致在 12w~20w 之间。

    3~5年经验社招,由于个人能力不同,差距较大,普通软件测试:年薪大概在 12w~20w 之间,做去大公司的测开/自动化测试:年薪大概在 30~40w 之间。

    二)二线城市,例如成都

    985、211名校毕业的科班生,校招年薪大概在 10w~15w 之间。

    普通本科毕业生,年薪大概在 7w~10w 之间。

    1~3年经验社招人员,年薪大概在 8w~15w 之间。

    3~5年经验社招人员,年薪大概在 10w~25w 之间。

    三)三线城市,例如南宁

    很少看到招没经验的,基本都是1年经验以上。

    1~3年经验社招人员,年薪大概在 5w~9w 之间。

    3~5年经验社招人员,年薪大概在 8w~15w 左右。

    当然,这只是个参考值,具体拿到手多少薪资,还是取决于个人能力。

    以上纯属个人观点,仅供大家参考,希望对大家有所启发。

    原文链接:
    https://mp.weixin.qq.com/s/IkwMpYAJIhRa75h6y68Caw

    相关文章

      网友评论

          本文标题:软件测试适合女生吗?

          本文链接:https://www.haomeiwen.com/subject/mmpnurtx.html