软件测试需要学什么专业?软件测试2个月能学会


一个软件测试小白的进阶之路强哥是一个软件测试新人 , 毕业以后他的职业发展是这样的 。
Part.1
功能测试人员 , 也就是我们常常俗称的进行点点点测试工程师 。前1-2年做功能测试 , 使用其他人开发的工具进行测试 。
这个阶段的测试工作都比较初级 , 严重依赖于别人开发的工具和系统 。当系统进行升级换代的时候 , 强哥会明显的感觉到有阵痛期 , 一下适应不了这种变化 。
做了2年功能测试 , 强哥悟出了一个道理:功能测试人员一般最遵守行业规则 , 但是也最没存在感 。
强哥发誓在下班以后学习自动化测试技术 , 摆脱这种随便被人甩锅的命运 。
Part.2
成为自动化测试人员 。强哥终于面试上了一个自动化测试的岗位 , 这一年每天晚上熬夜学习终于得到了回报 , 试用期结束 , 强哥已经上手了第一份自动化测试的工作 。他在部门内部受到了其他同事尊重 , 尤其是部门的功能测试人员 , 一双双膜拜的眼神 。
强哥心里窃喜 , 这一年的付出是值得的 , 现在我也可以给别人脸色了 。自动化测试的工作内容 , 主要是使用编程语言编写脚本啊 , 进行自动化测试 。强哥明显感到了测试效率的提升 , 一个人可以干两个人的活 , 用老板的话说:小强不错 , 能打能扛 。
2年过去了 , 小强隐约感觉到了几点自动化测试工作的不足:
◆ 出来的代码 , 功能测试人员看不懂 , 也没有办法用 。平时他和功能测试的同事也是各干各的 , 相当于在两个部门 。
这就意味着 , 从老板的角度来说 , 没有发挥 1 + 1 > 2 的效应 。
◆ 自己使用的是 Python 语言 , 部门的另外一位自动化工程师用的是 Java 语言 , 她被招来做另外的项目测试 。
强哥很想去看看她的代码是怎么写的 , 怎么运行的 , 奈何看不懂 , 也不知道怎么运行 。同是一个岗位的人 , 却没办法切磋技术 , 好不孤独啊 。
◆ 并且还产生了一个问题 。前 3 个月自己写的代码 , 过几个月自己再去看 , 居然有点看不懂了 , 要调试一段时间才能弄清楚中间的思路 。
要是被别人知道了 , 肯定会认为自己很菜的 , 自己代码自己都看不懂 。虽然看到了自动化岗位的一些不足 , 但是强哥心里清楚 , 相比之前的功能测试 , 瞧别人的脸色 , 现在简直太幸福了 。
自从学习了 Python 自动化测试 , 他感觉真正融入了这个行业 , 情不自禁的开始关心行业动态 , 关心起 Python 这门编程语言的发展势头了 。
Part.3
在一次技术开发者大会上 , 强哥接触到了 ”测试开发“ 这个岗位 , 心中很久的疑惑终于被解开了 。进行技术分享的是国内某大型电商平台的技术专家 , 详细介绍了测试开发这个岗位的优势和进阶路线 。
强哥赶紧掏出一直放在双肩包里的袖珍笔记本 , 开始记录:
◆ 测试开发是给测试部门开发交互界面友好的测试工具和效率工具 , 像大家熟知的 Postman 和 Jmeter 属于测试开发的工作;
◆ 测试开发研发出来的产品 , 功能测试人员和其他工作人员经过简单培训就可以上手使用 , 充分发挥 1 + 1 > 2 的效应;
◆ 可以将部门管理 , BUG 管理 , 自动化运行 , 测试报告 ,  性能分析 ,  同事登录等工作模块全部集成到一个平台 , 大大减少了部门内部和跨部门的沟通成本 , 提高整个部门和工作的工作效率 。
◆ 测试开发是行业规则大的制定者 。使用工具和平台的人需要遵循这些规则 。强哥终于知道自己以前做功能测试的时候是被谁左右了 。他默默下定决心 , 要成为测试开发 , 成为规则制定者 。
测试开发这个工作确实挺好的 , 商业价值和技术价值都很高 , 技术演讲到后半段 , 强哥发现 , 事情也没那么美好 , 准入门槛挺高的 , 要学习的内容很多 , 初略总结下来 , 包含的最基本内容就有许多 。
HTML , GUI  , 手机端等页面构建技术 , 用来给使用者观察和使用的 UI 界面 。
强哥在自动化测试的时候学过 HTML , 打算再学深一点 , 就可以比较轻松的完成前端页面技术积累 。
服务端开发技术 。最初强哥不理解这是个什么技术 , 后来越听越明白 , 其实就是进行测试的时候接触的后端开发 , 以前经常和这帮人打交道 , 报了 BUG 去找他们 , 他们还死不认账 , 几次差点和他们打起来 。
强哥忽然想到:如果我要学这个技术 , 那我岂不是可以和后端开发做同样的事情了?他们私底下都在做自己的产品和工具 , 我也可以啊 , 搞不好还能融到资 , 卖点钱 。
◆ 数据库
数据库这东西强哥也接触过 , 不过了解得不太深入 , 只会几个简单的 SQL 查询语句 , 一旦设计到建表和多表查询 , 那就只能召唤搜索引擎了 。这方面可能还需要下点功夫 。
◆ 服务部署
【软件测试需要学什么专业?软件测试2个月能学会】服务部署强哥还是第一次听 , 很多概念都不懂 , 不过有一个名词强哥经常听到 , 那就是 Docker , 以前只知道概念 , 完全不知道它干嘛用的 , 今天终于算是启蒙了 。
听完这个基础技术准备 , 强哥感到热血澎湃 , 都想立刻起身回家开始学习这些东西了 。
可没过几分钟 , 站在台上那位大佬就给他泼了一盆冷水 。
他一再强调 , 这些是入门测试开发的基础内容 , 要真正开发一款好用的测试工具和平台 , 只会简单的使用这些技术是不够的 。
必须要对网络协议有一定的了解 , 要对开发模式非常熟悉 , 要会使用版本控制 , 更重要的 , 要深入编程语言的高级特性和编程技巧 , 如果 CS 基础不够 , 玩出来的都会是花架子 , 对职业发展没有太多好处 。
Part.4
强哥心灰意冷 , 大学学的 CS 课程全部忘光了 , 现在要捡起来谈何容易啊 。没想到一个小小的测试岗位要求这么高 。不过演讲者还是给出了一个比较可行的方法 , 那就是熟读源码 , 分析源码 。
我们使用的框架 , 比如 Selenium 和 Appium, 里面包含了很多优秀的设计思想 , 强哥当年学习的时候被整得一脸懵逼 , 苦不堪言 , 一度想放弃 , 后来用得此次多了 , 源码重读的次数也越来越多 , 慢慢能够理解他们写的代码有多么厉害了 。
想到这 , 强哥不由得感叹一声 , 要是有个人带我分析源码该有多好啊 , 能少走好多弯路 。演讲结束了 , 强哥决定回家试一试用 Python 语言写一个最简单的 UI 测试工具 , 在公交车上他已经思考好了大体的框架:
◆ HTML 页面展示;
◆ Python开发框架接受HTML页面上的请求 。现在还不知道有什么框架 , 回去了解一下 。
◆ 之前写好的测试脚本 。将脚本封装成函数或类 , 开发框架接受到请求 , 调用对应的方法就完成了自动化测试 。
回到家 , 强哥喝了口水就开始了解开发框架 , 上网了解了 Flask 和 Django 两大框架 , 他赶紧把想到的架构图画下来 。

软件测试需要学什么专业?软件测试2个月能学会

文章插图
如果用 Java 开发 , 把中间的开发框架换成 Springboot 就可以了 。
先把HTML写好:
软件测试需要学什么专业?软件测试2个月能学会

文章插图
强哥看网上 Flask 用的代码不多 , 他初略看了一下官方文档就开始依样画葫芦写简单的 Demo 。
软件测试需要学什么专业?软件测试2个月能学会

文章插图
至于自动化脚本 , 他从以前写的 Selenium 脚本随便抽了个最简单的拿出来用 , 封装成 auto_test 函数 。
软件测试需要学什么专业?软件测试2个月能学会

文章插图
虽然这个 Demo 非常的简单 , 但是强哥已经通过自己写的例子认识到测试开发的强大之处了 。
接下来 , 他要努力学习Python高级特性 , 开发框架  , 前端语言、数据库和部署技术 , 然后就是源码分析能力了 。
行业规则制定者 , 这个信念已经在心里 。