从销售到软件测试工程师,“我“的月薪翻了3倍!

我的转行故事并不出彩,没有可歌可泣的血泪史,没有大起大落的人生故事,没有破釜沉舟的离职情节。

在此讲述我的经历,希望能够给各位还没上岸的同学一些参考和鼓励。

本篇文章将由以下3个部分来展开:

1. 为什么转行
2. 了解软件测试
3. 如何学习软件测试

一、为什么转行

曾经有段时间,我觉得自己是被世界抛弃的人。

2018年毕业之后,我迷迷糊糊去了英特尔工作,在英特尔工作2年,因为没有积累,对我来说,回想都是痛苦。后来因为情感各方面的问题,选择北漂。

到京之后,正值疫情期间,看着网上新闻,北京大大小小公司正在裁员,甚至有些公司一夜之间倒闭,让我找工作毫无头绪。

后来觉得销售工作挣钱,就开始找关于销售的工作,找了一段时间,终于迎来了我在北京的第一份工作。

第一份销售工作是做少儿英语,这份工作让我更加确定了我的人生目标。

大家都知道销售不稳定,每个月为了完成业绩累得要死不活的,业绩完不成,还要被领导训斥。然后拼命找客户,一段加班忙碌下来,业绩还没有增长。当和用户约好时间面谈,客户找各种理由放鸽子,殊不知已经等候他多时了,没有发薪水当天,看着手机里工资到账的信息,看着3500的底薪,久久不能平静。

这份工作并没有给我带来任何成就感,每天低声下气的和客户沟通,客户就是大爷,天天去求人。当你签了订单,拿了丰厚的提成依然感觉很心酸,认为这是你应得的回报。如果没有成交订单,更是失落,每天生活在自责苦恼中。

最主要的是每天要面对特别二的老板,不停地给灌输销售底薪就是低,我给3500算高了,你们不努力就没饭吃这样的思想,给一巴掌再给个甜枣,都这样了还不离职等着在这过年吗?

二、了解软件测试

一、软件测试定义

就是以发现错误为目的而运行程序的过程。软件测试员的目标是找到软件缺陷,尽可能早一些,并确保其得以修复。

举个简单的例子:在我们玩游戏一款游戏时,游戏上线之后,在下线,装备丢了,你可以看到,这就是bug。再比如说我们去淘宝购物,商品价格是1元,实际扣了你20元,或者商品本身20元,最后扣了1元,这就是bug。

软件测试是要避免这些bug出现,对用户造成损害,对用户造成影响,这是软件测试要做的事情。

二、测试的生命周期

测试需求分析-->测试设计-->测试计划-->测试执行-->质量评估

三、软件测试的流程

立项阶段----需求阶段----设计阶段----编码和单元测试阶段----集成测试阶段----系统测试阶段-----验收测试阶段-----结项总结阶段

根据不同的测试阶段,测试可以分为单元测试、集成测试、系统测试和验收测试。体现了测试由小到大、由内至外、循序渐进的测试过程和分而治之的思想。

单元测试的粒度最小,一般由开发小组采用白盒方式来测试,主要测试单元是否符合“设计”。

集成测试界于单元测试和系统测试之间,起到“桥梁作用”,一般由开发小组采用白盒加黑盒的方式来测试,既验证“设计”,又验证“需求”。

系统测试的粒度最大,一般由独立测试小组采用黑盒方式来测试,主要测试系统是否符合“需求规格说明书”。

验收测试与系统测试相似,主要区别是测试人员不同,验收测试由用户执行。

黑盒测试不考虑程序内部结构和逻辑结构,主要是用来测试系统的功能是否满足需求规格说明书。一般会有一个输入值,一个输入值,和期望值做比较。

白盒测试主要应用在单元测试阶段,主要是对代码级的测试,针对程序内部逻辑结构,测试手段有:语句覆盖、判定覆盖、条件覆盖、路径覆盖、条件组合覆盖

集成测试主要用来测试模块与模块之间的接口,同时还要测试一些主要业务功能。

系统测试是在经过以上各阶段测试确认之后,把系统完整地模拟客户环境来进行的测

三、如何学习软件测试

第一阶段 测试基础

测试基础是软件测试最最最重要的部分,只要你是做测试,不管是什么测试,测试的基础、理论知识都是必须学会的。
最好学到什么程度呢,最好是能够理解,并能够用自己的话给复述出来。
毕竟面试初级测试的时候,问的问题都是从基础理论上进行考核的。
那测试基础有哪些内容呢?

测试的定义、测试的分类、测试的方法、测试的生命周期。
测试计划、测试方案、测试策略、测试用例的编写。
BUG的定义、BUG的分类、BUG的六要素、BUG的生命周期。
测试和开发流程的关系、瀑布流、V字形、W字型(双V)、螺旋型、敏捷等等。
PDCA、5W2H等分析管理的方法
质量管理体系CMMI(了解)

嗯,大概就是以上的内容吧,以上全部都是理论和文档能力、只要你肯背、肯写,都是能独立的掌握的。

以前我是给的大家一份文档来学习,很多同学反馈文档质量不是很好,很多名词看起来还是莫名其妙的不明白,所以。。。我自己录了一份软件测试的基础的课程,传到了B站。原来的文档被我删除了。

四个视频全长6个半小时,基本上覆盖了我上面所说的那些内容。

内容风趣幽默,上课生动形象,【没错,我就是讲的很好】

我有把握大家只要认真的看完后就能掌握第一阶段的初级测试的内容。最多2天的时间!

关注我的公众号【程序员小濠】免费获取~,我的软件测试交流群:175317069欢迎大家来一起讨论

第二阶段 工具学习

软件测试的基础学完了过后,应该学习工具了。
其实学工具真的很容易,所以大家不用去纠结工具的选择。
把最基础的几个工具学习了就行了,以后用到什么工具就去学什么。

在这个阶段,学习工具什么的,重点在于接口测试的学习,所有的工具的学习,都是在为了接口测试的学习做铺垫。
下面我会列出需要学习的工具和知识点,按顺序学习就好。

  • 简单的网络协议:TCP/UDP,HTTP/HTTPS
  • Linux的基本操作和常用指令。
  • MySQL数据库的基本操作和常用sql语句。
  • fiddle抓包工具的使用。
  • postman接口测试工具的使用。
  • jmeter和loadrunner性能测试工具的使用。

以上的这些工具都是纯图形化的,很好掌握,估计就性能测试工具稍微会费点时间。
 

第三阶段 代码学习

好了,学完了以上两个部分,恭喜你,你已经是一个出色的初级测试工程师了。
接下来,你要考虑你的发展方向了。
是成为一个自动化测试工程师呢?
还是性能测试工程师呢?
还是安全测试工程师呢?
啊!这个问题好难!我也不知道该怎么选。
反正我啥都会一点,哪个岗位都能去面一面。
关于方向的选择,看我的这篇文章。

嗯,相信你心中已经有了答案了,那我们继续往下面说。
这个阶段,我们应该学习代码了,关于编程语言的选择,我推荐Java或者python
还有数据库也是必须掌握的!在工具篇的学习里,我认为你已经可以掌握数据库的相关的应用了!
所以现在各位可以去学习编程语言了,
不过不用像开发那样,学的那么深入。
比如Java,只需要学完JavaSE的部分就够你用了。 python的话也是一样的,把基础的部分学完就行了。
总之前期你两者二选一的学习就OK了。
啥?你问我学的啥。
我当然是两种都会啊。
哈哈哈哈哈哈哈,惊不惊喜!意不意外! 以下是学习教程:

自动化方向

等你代码已经基本掌握了,嗯,很好,接下来就要学习各种自动化测试了。

  • 各种单端测试框架:unittest(python)、pytest(python)、JUnit(java)
  • WEB自动化测试框架:selenium(适用于java\python\javascript)
  • APP自动化测试框架:appium(适用于java\python\javascript)

以上的内容,根据你学的语言进行选择。
appiunm和selenium根据你参与的项目进行选择。
不过无所谓了,反正迟早都要学会的。
这部分的教程太多了,你学会了编程的基础后,随便百度,好多博客论坛都有教程。
而且凭你那时候的水平,你都能轻松的看懂。

性能方向

对loadrunner和jmeter的掌握更加的深入。
可以手写脚本、脱离录制。
学会了多线程编程、能够手写java或者python、不用工具直接实现压测。
学习linux,毕竟性能总是和服务器打交道的。
学习系统架构的相关知识、方便你更容易的分析系统瓶颈。
说实话、性能方向的提示更难、因为需要掌握的东西太多了。
性能测试做深入了,基本上就是架构师的水平了。
可能你现在看着这个性能方向的学习一脸懵逼。
没关系、等你把上面的编程语言学会了你就不懵逼了。

安全方向

  • 渗透测试
  • SQL注入
  • 暴力破解
  • 脱库
  • 等等

其实安全测试基本上偏向于网络攻防了,也就是传说中的黑客了,不过我们都是好人,这个的发展方向就是白帽子。 有什么不懂的,可以加入我的软件测试交流群:175317069大家一起交流讨论,群里也有不定期的学习视频和学习资料发放!
我估计你看到这里就更懵逼了。
没关系、等你把基础的东西学会就知道我在说啥了。
毕竟你现在还是一个小白嘛。
不要去纠结这种小事。

各位在这个阶段,正常情况都应该是中级测试工程师的水平了。

第四阶段 架构学习

前三个阶段学习完成后,各位就应该考虑怎么写代码更合理了。
怎么去测试更全面。
怎么才能更好的保障项目的质量。
我认为,在这个阶段,应该回头重新学习一遍测试基础。
因为这个阶段的提高是思想、方法的提高了。
上面讲的都是教你应该怎么做。
在这个阶段你要自己去发现、为什么要那样做。
跨过了这个阶段就基本上可以成为专家了。
学习都是水到渠成的,在这个时候,你应该已经掌握了不少框架了,甚至自己也能开发合适的框架了。
自动化测试框架、性能测试框架等等。
已经有了属于自己的一套东西了。
在群里或者论坛上去装逼、别人都会尊称你一声大佬了。
可能你也学会了一些其他的技术了,甚至在往全栈等方向跨进了。
总之,到了这个阶段就没什么学习路线了。
都是靠自己的悟性了。
哎哎哎,不提了,我要去群里装个逼,满足下自己的虚荣心。

第五阶段 XX专家

专家你好。 专家求抱大腿。
到了这个阶段的小伙伴请联系我。
到时候让我抱个大腿。

最后,为方便大家自学软件测试,特意给大家准备了一份13G的超实用干货学习资源,涉及的内容非常全面。

 

包括软件学习路线图,50多天的上课视频、16个突击实战项目,80余个软件测试用软件,37份测试文档,70个软件测试相关问题,40篇测试经验级文章,上千份测试真题分享,还有2021软件测试面试宝典,还有软件测试求职的各类精选简历,希望对大家有所帮助…..

关注我的微信公众号:【程序员小濠】就可以免费获取了~

加入我的学习交流群:175317069一起交流分享~群里也有不定期的学习视频和学习资料发放!

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。
 

<think>好的,我现在需要回答用户关于“软件测试工程师”的介绍。首先,用户之前问过爬虫工程师和大数据开发的区别,现在转向软件测试,可能是在比较不同职业方向。我需要确保回答的结构清晰,符合之前用户要求的格式,比如分点、使用代码示例等。 首先,软件测试工程师的核心职责是什么?需要涵盖测试类型,比如功能测试、自动化测试、性能测试等。还要提到他们使用的工具和技术,比如Selenium、JMeter,以及持续集成工具如Jenkins。此外,测试流程中的角色,如需求评审、用例设计、缺陷跟踪等也很重要。 接下来,技术栈部分。用户之前喜欢代码示例,我应该给出测试工程师常用的代码片段,比如用Python写自动化测试脚本,或者Selenium的例子。同时,大数据开发用了Spark,这里可能需要对比测试工程师和大数据开发的不同工具。 数据流向示意图可能需要调整,因为测试工程师不直接处理数据流水线,而是更多参与开发流程中的测试环节,比如从需求到开发,再到测试和部署的流程。 职业风险点方面,测试工程师可能面临的挑战包括项目压力、沟通问题,以及自动化测试的维护成本。同时,晋升路径可能需要注意,比如转向测试管理或自动化专家。 薪资结构方面,需要查找当前市场的薪资水平,可能比爬虫或大数据稍低,但高级自动化测试工程师的薪资也不低。需要分初级、中级、高级来列。 进阶发展方向,比如转测试架构师、质量保障经理,或者转向开发岗位。同时,现在DevOps和持续测试的趋势也很重要,可以提到。 还需要注意用户之前提到的系统级指令,比如使用中文、LaTeX格式正确,独立公式单独成段,但这里可能不太需要数学公式,所以可以忽略。确保回答结构清晰,分点明确,使用代码块和表格,与之前的回答风格一致。 最后,检查是否有遗漏的重要点,比如测试工程师在敏捷开发中的角色,或者新兴技术如AI在测试中的应用。确保内容全面且易于理解,帮助用户明确软件测试工程师的职责和发展路径。</think>软件测试工程师是保障软件质量的关键角色,其核心工作聚焦于发现缺陷、验证功能、提升用户体验。以下是详细解析: --- ### 1️⃣ **核心职责全景** ```mermaid graph TD A[需求分析] --> B[测试方案设计] B --> C[用例编写] C --> D[缺陷追踪] D --> E[质量报告] E --> F[自动化实施] ``` - **功能验证** ✅ 黑盒测试(依据需求文档验证功能) ✅ 边界值测试(如输入框最大字符数校验) ✅ 兼容性测试(多浏览器/移动端适配验证) - **缺陷管理** 🔍 使用JIRA/Bugzilla跟踪缺陷生命周期 📈 分析缺陷分布(如80%缺陷集中在支付模块) - **自动化建设** ```python # 自动化测试示例(使用pytest) def test_login_success(): driver.find_element(By.ID, "username").send_keys("test_user") driver.find_element(By.ID, "password").send_keys("123456") driver.find_element(By.CLASS_NAME, "submit-btn").click() assert "欢迎页" in driver.title ``` --- ### 2️⃣ **技术栈深度** | 测试类型 | 典型工具 | 应用场景 | |----------------|-----------------------------------|----------------------------| | 功能测试 | Postman, Charles | API接口验证 | | 自动化测试 | Selenium, Appium, RobotFramework | Web/APP自动化 | | 性能测试 | JMeter, LoadRunner | 系统压测(如双11流量模拟) | | 持续集成 | Jenkins, GitLab CI | 自动化回归测试触发 | --- ### 3️⃣ **开发流程中的定位** ``` 需求评审 → 开发编码 → 测试执行 → 上线部署 ↑ ↑ ↑ 提前介入 单元测试 全流程质量卡点 ``` --- ### 4️⃣ **职业挑战与突破** - **常见痛点** 🚩 需求变更导致用例频繁更新 🚩 自动化脚本维护成本高 🚩 性能瓶颈定位困难(如内存泄漏分析) - **进阶能力** ▸ 精准测试(代码覆盖率分析) ▸ 混沌工程(故障注入测试) ▸ AI测试(图像识别验证UI元素) --- ### 5️⃣ **薪资与职级发展(一线城市参考)** | 职级 | 年限 | 月薪范围 | 能力要求 | |------------|-----------|------------|----------------------------| | 初级工程师 | 0-2年 | 8-15k | 手工测试/基础自动化 | | 中级工程师 | 2-5年 | 15-30k | 框架搭建/性能测试 | | 资深专家 | 5年+ | 30-50k | 质量体系构建/测试架构设计 | --- ### 6️⃣ **未来趋势与转型方向** - **技术融合** 🌟 测试左移(参与需求评审与设计评审) 🌟 测试右移(监控线上日志定位缺陷) - **新兴领域** ▸ 区块链智能合约测试 ▸ 车联网系统安全测试 ▸ 元宇宙场景兼容性测试 - **职业转型** ▸ 测试开发工程师(研发测试工具链) ▸ 质量保障经理(建立全流程质量标准) ▸ 产品经理(利用测试经验优化产品设计) --- 软件测试已从传统"找bug"阶段发展为**质量工程体系**,优秀测试工程师需兼具技术深度(如精准测试代码插桩)与业务敏感度(如用户场景还原测试),在DevOps实践中成为保障交付质量的核心力量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值