我想涨工资,请问测试开发该怎么入门?

 

我是测试开发工程师!欢迎和我交流测试领域相关问题(测试入门、技术、python交流都可以)

我几乎是靠这套方法,从一个只会功能测试的小白,到成为测试开发工程师的。

别急,先慢慢看,只要按照下面的流程走一遍,你就会有收获,并有所改善的。

先上目录

一、测试开发应具备什么样的能力
二、测试开发应如何入门?

测试开发是什么?

放眼望去,测试开发在行业中已经不算什么新鲜的名词。

大多数人对测试开发的刻板印象是:

整天写写自动化测试,开发出一些高大上的测试平台或者测试工具,很少甚至几乎不用去做业务层面的测试,入行门槛比较高,是测试行业的天花板。

但事实真的是这样的么?

「并不是」,测试开发的水很深,“测试”后面加了一个“开发”,真的并不意味着你真的就是一个“开发”。

测试开发的工作内容,往往不是由“测试开发”这四个字定义的,而是「由招聘部门决定」的。

测试开发的工作内容大体可分为以下三种:

  1. 只开发,不测试
  2. 既开发又测试
  3. 只测试,不开发

这里简单做个解释:

「“只开发,不测试”」

一些互联网大厂发展到一定规模,用户体量十分庞大,这种时候假如出现一个bug,往往都会引发巨大的蝴蝶效应,给用户带来巨大损失。

传统的手工测试已经无法满足日常测试需要,单靠垒人去保证业务质量,测试片面、成本大、效率低。

所以大厂不惜高薪聘请测试开发工程师,开发测试工具或平台来,丰富测试手段,提升测试效能,强化产品质量,保证系统的高可用。

甚至坊间有传闻,某福报厂的一些部门更是要进行“去测试化”,美其名曰:“内卷”。

「“既开发又测试”」

一些中型的互联网公司,业务处于上升期,但是质量工程又处于起步阶段。

此时招聘的测试开发工程师,需要测试开发带领若干外包同学一起把业务测试任务给保证好,然后又需要从0到1(或者从1到n)去把质量基础设施给搭建起来。

既当爹又当妈,干活比较杂,基本上绝大多数的测试开发工程师都处于这个阶段。

「“只测试,不开发”」

“面试造火箭,工作拧螺丝”,用在此处真是相当的贴切。

一般都是一些公司业务特别多且比较复杂,需要招聘一些能力稍微强一点的业务测试小能手去Cover质量保证工作。

此类公司虽然明面上招聘的是测试开发工程师,但是实际进来后,其实纯粹是干业务测试的活。

相比于上面两种类型的测试开发,“只测试,不开发”的测试开发工程师还是占比较少数,且干活的“幸福感”普遍不高。

但无论如何,「招聘“测试开发工程师”的门槛石还是会比“测试工程师”要高出一些的,工资也会相对更高。」

测试开发具备什么能力?

臻叔从各大招聘平台上对测试开发的招聘要求、测试社区或博客对测试开发的描述以及结合自己的亲身经历,

得出以下结论:

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:310357728【暗号:csdn999】

「扎实的测试基本功」

  1. 对业务比较熟悉,能够独立负责某块业务功能的测试工作。
  2. 熟悉测试流程,能够合理的制定测试计划,掌控测试进度,具备敏锐的质量风险意识。
  3. 具备一定的测试思维,能够设计出较高质量的测试用例
  4. 测试手段丰富,至少在APP、小程序/H5、WEB、SERVER等,在其中某一端具备扎实的测试经验。
  5. 对于常用的测试工具做到如数家珍,并对这些测试工具运用自如
  6. 有一定的测试架构能力,对CD/CI有一定的了解,并且了解一些DevOps的具体实践

「扎实的计算机功底」

  1. 熟悉计算机网络,尤其是对HTTP、TCP协议要有深度的了解。
  2. 熟悉操作系统及基本原理,进程线程、CPU调度、内存管理、IO读写等
  3. 熟悉数据库,熟悉主流的关系型数据库及非关系型数据库,能写出复杂场景下的查询SQL。
  4. 熟悉Linux的基本使用,擅长编写Shell脚本

「扎实的编程功底」

  1. 掌握至少一门后端编程语言(Java/Go/PHP/C++),和至少一门脚本语言(Python/JavaScript)。
  2. 了解主流的测试工具/框架/平台,能够基于此进行二次开发
  3. 掌握WEB开发技巧熟悉后端开发框架及中间件,熟悉并掌握至少一个较为流行的前后端分离项目。
  4. 掌握IDE工具的基本使用会使用Git等代码版本控制软件。
  5. 具备良好的编程风格,了解基本的代码调优技巧。

「软实力」

  1. 敢想敢做,勇于尝试,具备创新精神。
  2. 善于思考,善于总结,善于查资料
  3. 具备勇攀高峰,克难攻坚的品格。
  4. 具备良好的沟通能力。

怎么入门测试开发?

「一、强化测试基本功」

加深对业务的理解

❝不能落地到业务的自动化测试,等同于耍流氓,我们做任何测试开发,最核心的目标,肯定都是要为业务赋能。那么如何加深对业务的理解呢? ❞

臻叔有几点建议:

  1. 长期维护一份全流程的测试用例,不用写得太细,但是要写得全,并且要经常更新。目的是帮助我们快速梳理业务细节。
  2. 养成手绘业务流程图的习惯,并善于总结和做笔记。
  3. 看开发写的业务代码,从代码层面去对深入理解业务细节。
  4. 研究竞品,包括功能、性能、稳定性方面。

提升个人测试能力

有以下几点建议:

  1. 掌握主流的测试手段,包括并且不局限于:自动化测试、接口测试、性能测试、稳定性测试、安全/渗透测试、移动端测试、服务端测试等。
  2. 对于业界流行的测试工具做到如数家珍
  3. 想要解决测试痛点,不要闷头苦想,闭门造车,你遇到的问题,大厂肯定都遇到过。可以在网上找一些大厂的解决方案,或直接询问在大厂工作的朋友。

「二、强化计算机功底」

❝计算机基础就像男人的存款,可以不用,但是不能没有。❞

「如果实在没有一点基础」,建议进行系统性的去学习

「如果有一定的计算机基础」,有以下几种途径来强化基础:

  1. 时间充足的情况下,系统的去看计算机专业书籍。推荐《操作系统》、《图解HTTP》、《图解TCP/IP》、《MySQL必知必会》等。
  2. 看技术博客:小林coding、良许Linux。
  3. 刷技术面试题,可以查缺补漏涨姿势,还能为跳槽面试做准备,岂不美哉?
  4. 极客时间、慕课网等在线学习平台进行自主学习。

「三、强化编程功底」

这里送大家四个字:勤学苦练。

编程语言的学习,千万不要一直停留在语法和基础的学习上,如果你长期停滞在这个阶段,不能突破,那么可能你真的不适合编程。

❝编程语言只是我们完成测试工作的一个工具,不要为了编程而编程。 ❞

为了把编程技术落到实处,我们应该多去学学一些测试工具/框架/项目,以及Web开发框架/项目,利用这些项目来帮助我们达到目的。

这里推荐大家几个比较优秀的「GitHub项目」去钻研学习,学学人家是怎么组织代码,以及是如何把工具变得简单易用的:

「UI自动化」

  • 【uiautomator2】基于Python的ui自动化框架,API简单易用。

「接口自动化」

  • 【sosotest】基于Django(Python)的接口自动化框架,支持HTTP、Dubbo测试。

「稳定性测试工具」

  • 【Maxim】号称智能Monkey,真香。

「抓包工具」

  • 【Mitmproxy】对Python有良好的支持

「命令行工具」

  • 【Arthas】阿里开源的Java诊断工具,易用性高,可以学习该工具的测试思路

「前端后台项目」

  • 【vue-element-admin】基于vue、element-UI的后台项目模版

「整站开发项目」

  • 【mall】Java的电商平台整站开发项目,学完能够对电商系统的设计有更深的了解,并且前后端都会涉及到,技术提升全面。
  • 【RuoYi-Vue】前后端分离的后台项目,基于vue+springboot,可以作为测试平台的搭建基石

以上项目,可以在GitHub去搜索获取。

「四、强化软实力」

学会看英文技术文档,以及看优秀的项目是怎么去编写技术开发文档的,不断的模仿、学习、提升。

另外,可以多在公司小组内进行技术分享,提高沟通和表达能力。

END点赞关注不迷路!今天的分享就到此结束了~!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/207723.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

postcss-pxtorem实现页面自适应的原理

先声明一点这玩意本身不能实现哈,他只是一个工具,更是一个postcss的插件 帮助我们从px转化成为rem比如我们的代码 div {height: 100px;width: 100px; }经过这个插件转化之后变成 假设变成下面这样哈 div {height: 1rem;width: 1rem; }其他没啥子太大作…

Spring全面详解

目录 1. Spring 概述 1.1 Spring是什么 1.2 Spring的作用 1.3 Spring IoC是什么 2. Spring 快速入门 3. Spring Bean 3.1 的实例化方式 空参构造器 3.2 的属性注入 全参构造器注入 setter方法注入 策略模式 3.3 注解管理 3.4 注解方式的属性注入 1. Spring 概述 …

奕碳科技亮相COP28:展现中国智慧,引领全球碳减排新篇章

11月30日,联合国气候变化框架公约第28次缔约方大会 (COP28) 在阿联酋迪拜开幕。COP28是全球气候治理的重要盛会,汇聚了世界各国领导人、企业界和科学界代表,共同探讨和制定应对全球气候变化的策略与行动计划。在这样的背景下,企业群体的积极参…

跨境电商系统搭建 无货源系统对接API 反向代购系统

跨境电商系统是为国外的客户代购中国商品的系统,系统实现与国内电商API对接,客户可直接在系统中搜索国内电商平台的商品。查看演示网站 一级功能二级功能 标准版 高级版 企业版 企业旗舰版 大客户尊享版 标准版高级版企业版企业旗舰版大客户尊享版 前台主…

2023.12.7 关于 MySQL 事务详解

目录 事务的四大特性 原子性 一致性 持久性 隔离性 事务并发执行 脏读 不可重复读 幻读 四个隔离级别 read uncommitted read committed repeatable read serializable 事务的四大特性 原子性 一个事务中的所有操作,要么全部完成,要么全部…

Java数据结构之《链式二叉树的创建及遍历》(难度系数100)

一、前言: 这是怀化学院的:Java数据结构中的一道难度偏难(偏难理解)的一道编程题(此方法为博主自己研究,问题基本解决,若有bug欢迎下方评论提出意见,我会第一时间改进代码,谢谢!) 后面其他编程题…

视频剪辑:视频转码实用技巧,批量将MP4转为MP3音频

随着数字媒体设备的普及,视频和音频文件已成为日常生活中的重要组成部分。有时,可能要将MP4视频文件转换为MP3音频文件,以提取其中的音频内容或者进行其他处理。这是耗费时间的任务,那要如何操作呢?本文详解云炫AI智剪…

教你pycharm运行Django第一个项目

文章目录 前言搭建Django:1.新建Django项目:2.为Django项目指定远程中创建的虚拟环境下的python解释器:3.配置ubuntu的端口转发(添加端口号为1234的端口):关于Python技术储备一、Python所有方向的学习路线二、Python基…

循环单向链表与约瑟夫问题

循环链表介绍 先不急着看约瑟夫问题是什么,先了解循环链表的结构,那什么是循环链表? 循环,顾名思义,从链表中第一个节点出发,还会遇到第一个节点,形成循环的一环。也就是说链表中最后一个节点…

python 使用 watchdog 实现类似 Linux 中 tail -f 的功能

一、代码实现 import logging import os import threading import timefrom watchdog.events import FileSystemEventHandler from watchdog.observers import Observerlogger logging.getLogger(__name__)class LogWatcher(FileSystemEventHandler):def __init__(self, log_…

《opencv实用探索·十五》inRange二值化图像

opencv接口如下: void inRange(InputArray src, InputArray lowerb, InputArray upperb, OutputArray dst);函数实现二值化功能,主要是将在两个阈值内的像素值设置为白色(255),而不在阈值区间内的像素值设置为黑色&am…

一篇文章带你快速入门 Nuxt.js 服务端渲染

1. Nuxt.js 概述 1.1 我们一起做过的SPA SPA(single page web application)单页 Web 应用,Web 不再是一张张页面,而是一个整体的应用,一个由路由系统、数据系统、页面(组件)系统等等&#xff0…

HbuilderX使用Uniapp+Vue3安装uview-plus

如果你是vue2版本想使用uniapp去配置uviewui库可以参考之前的文章 小程序的第三方ui库推荐较多的还是uview的,看起来比较美观,功能也比较完善,下面将提一下Vue3安装uview-plus库的教程 创建项目 安装 首先进入官网 uView-Plus 直接下载并导…

预训练--微调

预训练–微调 一个很简单的道理,如果我们的模型是再ImageNet下训练的,那么这个模型一定是会比较复杂的,意思就是这个模型可以识别到很多种类别的即泛化能力很强,但是如果要它精确的识别是否某种类别,它的表现可能就不…

07-2 Python模块和命名空间

1. 模块 概念:其实就是一个Python文件,正常文件有的变量,函数,类,模块都有 功能:模块可以被其它程序引入,以使用该模块中的函数等功能。 示例:test-module.py调用mymodule.py模块中的now_time…

一篇文章带你快速入门 Vue 核心语法

一篇文章带你快速入门 Vue 核心语法 一、为什么要学习Vue 1.前端必备技能 2.岗位多,绝大互联网公司都在使用Vue 3.提高开发效率 4.高薪必备技能(Vue2Vue3) 二、什么是Vue 概念:Vue (读音 /vjuː/,类似于 view) …

Mysql 日期函数大全

一、时间函数 (一)、获取当前时间 1、NOW() 获取当前日期和时间,在程序一开始执行便拿到时间 返回格式 YYYY-MM-DD hh:mm:ss eg: NOW() 得到 2023-12-03 12:20:02 NOW(),SLEEP(2),NOW() 得到 2023-12-03 12:20:02 | 0 | 2023-…

目标检测——OverFeat算法解读

论文:OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks 作者:Pierre Sermanet, David Eigen, Xiang Zhang, Michael Mathieu, Rob Fergus, Yann LeCun 链接:https://arxiv.org/abs/1312.6229 文章…

SpringAOP专栏二《原理篇》

上一篇SpringAOP专栏一《使用教程篇》-CSDN博客介绍了SpringAop如何使用,这一篇文章就会介绍Spring AOP 的底层实现原理,并通过源代码解析来详细阐述其实现过程。 前言 Spring AOP 的实现原理是基于动态代理和字节码操作的。不了解动态代理和字节码操作…

【C语言】函数递归详解(一)

目录 1.什么是递归: 1.1递归的思想: 1.2递归的限制条件: 2.递归举例: 2.1举例1:求n的阶乘: 2.1.1 分析和代码实现: 2.1.2图示递归过程: 2.2举例2:顺序打印一个整数的…