精华内容
下载资源
问答
  • 测试开发
    千次阅读
    2022-02-25 16:33:12

    测试开发学习路线

    HI,大家好,我是Lee
    通过某些圈子了解大家对于测试开发这个岗位了解的很模糊,对于技术栈不知道应该学习什么,接下来就通过各方面来说一下测试开发具体是做什么以及需要掌握哪些技术

    1、了解测试开发

    什么是测试开发?

    大家应该都了解过测试工程师,测试工程师主要是通过各种测试方法对程序进行测试,找出程序bug,在程序发布之前,把一些潜在的、严重的bug找出来,提交给开发人员解决,并在bug解决之后进行验证,降低软件研发过程修复bug的成本,对代码的要求比较少或不需要懂代码。
    测试开发是测试工程师的其中一个进阶路线,测试的进阶路线包括向自动化测试工程师、性能测试工程师以及高级测试工程师。
    测试开发更适合对开发有兴趣的测试,测试开发其实是一个相对小众需求,尤其是大多数中小型互联网公司基本不需要这样的职位,因为有很多开源的测试工具和测试平台供大家使用。
    现在大多测试招聘把对“具备自动化技术”的测试也冠以“测试开发”的title。
    测试开发应该具有自动化测试的技术,但是不仅于此,也应该具备平台和工具的开发能力。

    测试开发每天做什么工作?

    不同公司的测试开发工程师做的工作不太一样,有些公司是20%开发+80%测试,某些公司相反,还有些公司是纯开发,为测试开发测试工具或者测试平台,让测试同学使用。

    测试开发的薪资

    关于测试开发工程师的薪资我相信是大家最好奇的,相对于测试来说测试开发的薪资确实高一点,但是是建立在自己可以进入公司并且胜任这个岗位的情况下,接下来从某招聘网站找了两个测试开发岗位
    在这里插入图片描述
    在这里插入图片描述

    可以看到薪资相对来说还是可以的,但是测试开发是相对小众的岗位,并不是所有公司都需要这个岗位,所以在转岗时还是慎重考虑。

    2、测试开发需要的技术栈

    接下来我们说一下做一个测试开发所需要掌握的技术。

    1、测试基础

    首先作为一个测试开发,测试基础是必备条件。
    测试用例设计方法(等价类、边界值等)是必须要会的
    测试计划和测试报告的编写
    测试工具的使用:
    抓包工具:charles、fiddler
    接口测试工具:postman、apipost、apifox、jmeter
    用例编写工具:xmind
    bug管理工具:禅道、jira
    接口管理工具:yapi
    只想做功能测试的同学,只会这些技能就足够了(标红的都是重点)

    2、计算机基础

    计算机基础包含的就稍微多一点
    数据结构与算法
    时间/空间复杂度分析
    数据结构(数组、字符串、队列、栈、链表、集合、哈希表、数等)
    算法(排序、查找、双指针、分治、递归、回溯、贪心等)
    计算机网络
    网络分词模型
    网络传输过程
    IP、端口
    Http/Https协议
    UDP/TCP协议
    App地址解析协议
    网络安全
    DNS域名解析
    操作系统
    操作系统的组成
    进程、线程
    进程、线程间的通讯方式
    进程调度算法
    进程、线程同步方式
    进程、线程状态
    死锁
    内存管理
    局部性原理
    mysql数据库
    基本概念
    mysql搭建
    sql命令编写
    约束
    索引
    事务
    锁机制
    设计数据库表
    性能优化
    Linux(基本命令、shell脚本)
    Linux系统安装
    环境变量
    常用命令
    常用环境搭建
    shell脚本编程
    VIM的使用
    文件管理
    用户管理
    内存管理
    磁盘管理
    进程管理
    网络管理
    服务管理
    Linux内核

    3、编程语言

    编程语言有很多,很多同学不知道该怎么选择,在这里我推荐java和python,首先都是最主流的语言,python相对于java来说更适合小白学习,学习成本较低且语法简单,学习java推荐有语言基础,且大部分服务端都是java编写的,学习后对于服务端测试能力有较大提升。
    java基础
    数据类型、流程控制、面向对象、数组、枚举、抽象类、接口、集合类、常用类、泛型、注解、多线程、IO流、反射、异常处理
    python基础
    python安装、开发工具使用、变量、运算符和表达式、流程控制、基本数据结构、函数、面向对象编程、模块、包、异常处理、文件操作、函数进阶、正则表达式、数据库编程、并发编程、网络编程以及三方库使用(requests、openpyxl、nose、faker、datafaker)

    4、web框架

    首先说一下java的框架所需要掌握的:
    maven、spring、spring web、spring mvc、Mybatis、Mybatis plus
    spring boot、spring Security

    接下来是python的web框架:
    Django、flask、FastAPI、Django REST framework
    关于开发框架并不是了解就可以,而且可以根据框架来写一些东西,需要明白框架的原理以及了解框架之间存在的联系且学习java框架的时候不推荐开始就学springboot,建议循序渐进的从spring开始学习,没有时间学习的也可以直接学习springboot。

    5、开发知识

    前面我们已经说过开发框架的学习,这里就不重新说了,接下来说一下关于中间件以及开发常用的一些工具。
    git :因为在开发平台或者写自动化或者拉开发代码做白盒测试时免不了从git上拉代码,需要了解git的的工作区和代码的提交、推送、拉取、回退、重置以及分支的操作、代码合并、分支冲突的解决,还要区分git和github。
    Redis缓存:现在Redis缓存已经成为各个公司必备的一个缓存中间件,首先需要了解什么是缓存,了解本地缓存和多级缓存以及Redis的分布式缓存,熟悉Redis的一些应用场景,会解决使用Redis时遇到的一些问题(缓存雪崩、缓存击穿、缓存穿透等)。
    RabbitMQ消息队列:RabbitMQ消息队列是一个流行的开源的消息队列系统,不是必须掌握,但是也是需要了解,明白消息队列的作用,会搭建RabbitMQ消息队列集群,以及可以使用java操作RabbitMQ。

    6、平台开发

    在学习完各种基础以及框架和中间件之后可以自己手动搭建平台,包括像监控平台、接口自动化测试平台、压测平台等,下面给大家列举了testerhome的开源测试平台,大家可以去看下。
    点击跳转

    7、持续学习

    学习完上面的这些技术,大家就可以放心大胆的去找工作了,在这里希望大家都可以有一份满意的工作,不过在进入公司之后还是要继续提升自己的,给大家推荐一下学习的一些工具以及技术。
    首先是前端,HTML、CSS、javaScript、vue,不需要学习太多的前端技术,熟悉下基础的前端三件套,了解前端是如何向后端发送请求来做数据交互的一般就够了。有时间的话可以学下 Vue ,是比较容易上手的主流前端开发框架,Vue + SpringBoot 还是很香的。
    然后是后端,Redis高级操作、kafka、Nginx网关、Dobbo、微服务(spring cloud),学会如何使用中间件并不难,先能够独立使用,了解他们的应用场景;再用 Java 来操作中间件,和项目相结合。学习微服务时,建议先从 Dubbo 学起,对分布式、RPC、微服务有些基本的了解,再去食用 Spring Cloud 全家桶会更香。
    最后是测试,可以学习性能测试、大数据测试、算法测试等,测试这方面就不多说了。
    总之,再提升测试能力的同时也逐步提升自己的开发能力,希望大家都可以在技术方面提升一个台阶,有什么想法不同的可以在评论区讨论呢!

    麻烦大家可以关注下我的公众号:测试开发Lee
    以后可以一起讨论技术和生活上的琐事呢
    爱你❤️

    更多相关内容
  • 功能测试转测试开发的正确姿势

    千次阅读 2021-12-18 14:19:20
    测试的职业道路

    测试工作,通常被认为就是对着程序点点点。作为测试的你,是不是也这么想。

    工作了 3~5 年,你可能对整个公司,甚至某个垂直行业的业务流程非常熟练了。对测试任务,能娴熟地进行优先级排序和可测试性分析;甚至能把它轻松地分解成可测试的工作模块;并且针对每一个测试模块,熟练地应用白盒或黑盒的方式进行测试用例设计,最终生成一份覆盖产品需求的、可执行性的测试计划。

    在测试行业,这并不是个例。在无数个匆忙发版和 996 的不眠夜晚,你一定有过下面这些疑问:

    为什么每次发版时间都这么紧张?这样“工具人”的工作何时能到头?

    开发改动了核心代码, 我如何才能在这么短的时间内完成全量回归测试?

    手工执行用例、多浏览器重复验证同个功能、单个功能多个测试环境一遍遍点过去……每天重复这样“点点点”的简单工作,我的职业生涯还有拓展空间吗?

    这些问题看似没什么关联,但底层逻辑其实都是同一个,那就是:你的职业生涯的下一步应该怎么走?又应该如何安全度过职业生涯的第一个瓶颈期?

    功能测试应该何去何从?

    目前业界比较清晰的发展路径有两条:一个是业务型测试,另一个是技术型测试,我们看下它们各自的发展路径,如下图所示:

    图片

    左侧的业务型测试,多见于比较复杂的特定业务场景的行业,比如银行业。若想成为某一领域的业务专家,所需要的付出并不亚于走技术路线,但是相对于技术路线来说,业务路线会把自己的职业选择固定在某一个特定的领域。

    而右侧的技术路线相对来说,职业选择的面更广一些,这也是我们本专栏探讨的主题。在该路线中,你会发现“功能测试”这一初级小白,进阶至中级,离不开“测试开发”技能的加持。

    并且,目前各大互联网公司也都很亟须具备开发能力的测试工程师。比如在拉勾招聘网站上搜索“测试工程师”时,你会从“任职资格”中发现,许多中级测试工程师职位都要求你具备一定的测试开发能力。

    图片

    单纯的功能测试人员,找工作变得越来越难,甚至有些公司已经停止招聘只会功能测试的人员了。可以说,功能测试人员如果不转型测试开发,基本上得告别软件测试生涯了。

    更不用说如果你工作了 5 年以上,企业是这么要求你的:

    图片

    如果这时你的主要技能还没有转型到测试开发上来,那么,你真的是连面试的机会都不会有。

    转型之旅上的弯路与正确姿势

    不过很多有意愿转型测试开发的功能测试同学,可能由于时间紧,又缺乏正确方法和路径,都会走些弯路。

    1. 仅专注开发技术,从入门到放弃

    比如会有人单纯认为,转测试开发主要补充一些编程技术即可,所以开始提升自己的编程能力,但由于技术本身比较枯燥、自身基础不扎实,以及没有阶段性的实践输出刺激自己持续学习,所以很快就会陷入基础知识的“泥沼”,越学越混乱,直到放弃。

    那为什么会出现这样的情况呢?主要是因为自己都没有搞清楚测试开发的本质是什么,抓不住本质,也就无法有效地解决问题。

    我们知道,测试开发日常工作是解决软件开发过程中测试人员面临的技术问题,以保证软件产品高质量、高效率发布,所以我们说:测试开发的本质是助力业务成功。

    基于这个常见“弯路”,本专栏将结合案例,围绕业务痛点,带你学习开发测试框架所需的 Python 编程、Git 技巧等技术,让你在测试框架搭建过程中,有侧重点地学习测试场景所需的编程技术,而不是直接从编程知识入手,这样你便不会迷失在基础知识的假象里。

    1. 局限表面技能,缺乏对测试框架的全局认识

    还有一部分同学非常自律,白天辛苦地“点点点”做功能测试,晚上还强迫自己看书学习记录,比如他可以根据网上教程做自动化测试,也会写自动化脚本,能简单运用诸如此类的测试开发技能。

    但很快他就会发现自己写的脚本,这个项目能用,但换个项目,或者项目的数据结构一改变,自己写的脚本便不能用了,并且自己无力独立支撑一个自动化项目,更无法深入全面地认识测试框架。

    此时,他会关注普适性,开始有框架的思维,会关注那些现有的成熟框架,而不是局限于那些表面的测试开发技能。

    而该专栏便以自动化测试框架为核心,以真实的业务流程为依托,带你开发自己的自动化测试框架,解决一些经典的业务难题,比如如何融合 API 测试和 UI 测试,如何搭建 Mock Server 等。

    总之,随着你代码能力的提高,以及对一些优秀的框架设计了解到一定程度,你就可以从模仿走向创造了,把它们的实现逻辑列出来,不看源码,自己也能用代码重新实现一遍。在实现这些的过程中,你一定会发现有很多过去没注意的细节, 比如编程基础的巧妙应用,这时再回头去看涉及的特定编程知识,就不会觉得枯燥难以理解了。

    该专栏会讲哪些内容?

    本专栏分为 5 大模块,共 23 讲。从测试开发的新手任务,即测试框架入手,围绕测试框架的概念、开发测试框架的方法、测试框架的经典思想等内容进行讲解, 并将这些内容通过代码实现,带你彻底掌握测试框架的开发,进入测试开发的大门。

    模块一:打牢基础,从框架概念到代码实践

    你将从概念、组成、设计原则全方位认识自动化测试框架,并从工作场景出发,先行学习开发测试框架所需的 Python 知识、Git 技巧,打牢测试开发基础。

    模块二:项目实战,搭建自动化测试框架

    带你从零开始,搭建第一个 Web 和 API 测试框架,并直接应用于日常工作中,从而完成 UI 或 API 自动化测试,迈开测试开发第一步。

    在搭建测试框架的过程中,我将讲解 Python 的两个经典测试框架 unittest 和 pytest,带你搭建相应的测试框架。我还会带你深入了解这两个框架的一些经典功能的实现原理, 比如数据驱动 DDT,以及根据用户指定 Tag 执行测试等;我还会通过优化部分框架代码,手把手带你提升测试开发技巧;结合上一模块,你会对开发测试框架具体步骤和如何实施有更深入的了解 。

    模块三:能力修炼,全面掌握多项技能

    探索自动化测试框架开发中的经典实践,比如 API 和 UI 自动化测试融合的技巧,PO 模型、DB 链接、数据驱动以及数据操作的新方式——Pandas。通过本模块的学习,你将能够更加自如地应用市面上的测试框架,并将之改造以适应你的项目,做到知其然也知其所以然。

    模块四:深入自动化测试框架开发原理

    通过前面的学习,相信你已经对自动化框架的各个部分了然于胸,比如测试框架命令行参数、测试环境动态切换、测试用例动态挑选等。本模块将为你剖析这些经典模块的实现原理,并且带领你在了解原理后,自己编码实现这些功能。此外,我还会给你分享遇见问题时的解决思路,给予你思维引导,帮你成为一名合格的测试开发工程师,完全进入测试开发的世界。

    加餐:本职之内,技术之外

    向你讲解求职面试的高频考点,并传授面试技巧,以及入职后如何在一众测试开发中脱颖而出,在小团队中保持技术影响力,成长为技术骨干、技术管理。

    你将收获什么?

    “路漫漫其修远兮”,每条转型进阶之路都注定是孤单的,但分享和鼓励依旧会相伴随行,希望该专栏可以让你收获“智囊袋”,支持你的前行。

    从基础到实战,获得高效省力的正确转型路线:一站式教学,紧贴业务场景的行业情况,并非海量零碎知识点的串联,路径清晰,即学即用,具备实用性。

    收获你的第一个 UI 自动化测试框架 + API 自动化测试框架:以测试框架开发为核心,还原真实业务场景,留下项目实践经验,给简历增添亮点,敲开求职大门。

    充分了解测试开发的职责要求和实战场景,轻松突破瓶颈期:知己知彼,让你对市场职业要求和自我能力,以及对测试职业生涯各阶段的职务,有清晰认知,自信上岗。

    详细请咨询公众号:测试说
    测试者的交流社区,总有你想要的~
    在这里插入图片描述

    展开全文
  • 【测试】测试开发学习路线,助你通关大厂

    千次阅读 多人点赞 2022-02-21 19:51:20
    前言 大家好,我是洋子,一名测试开发工程师 在测试行业,我们一般都听说过这3种岗位:测试工程师(功能测试),自动化测试工程师,...本学习路线是结合我自己在百度做测试开发基础上整理出来的,详细列举出测试开发


    前言

    大家好,我是洋子,一名测试开发工程师

    在测试行业,我们一般都听说过这3种岗位:测试工程师(功能测试),自动化测试工程师,测试开发工程师。目前在互联网大厂,基本都只招测试开发工程师,意味着做软件测试也需要具备代码能力

    对于测试开发这种近几年才在国内火起来的岗位,在市场上基本没有可供参考的学习路线,很多非计算机科班的同学想转行做软件测试拿高薪,却不知道怎么学习

    于是我花了快一个月的时间,整理出了测试开发的学习路线,供大家学习参考。本学习路线是结合我自己在百度做测试开发基础上整理出来的,详细列举出测试开发需要具备的知识点,以及配套的优质学习资源,大家可以完整的自学测试开发,找到心仪的工作

    路线大纲

    该学习路线一共是7个阶段,循序渐进,学习路线相对比较平缓
    在这里插入图片描述

    阶段0 : 前言

    路线特点

    • 适用于想转行做功能测试与测试开发的同学
    • 适用于想全面学习/ 快速求职的同学,可以根据标记符号来选择学习内容
    • 给出目标、学习建议、关键知识点、最优资源以及各类资源推荐(视频、书籍、文档、项目、工具等)
    • 完整的测试开发学习路线,划分阶段并给出持续学习的方向
    • 我自己在百度 从事 测试开发工作 近2年,有自己的从业经历和思考

    符号标记

    在这里插入图片描述

    学习建议

    • 了解清楚测试开发的就业前景和工作内容,该岗位的核心目的是做质量保障,也可能会涉及点点点的工作,也可能需要写代码,确定自己是否喜欢
    • 在开始学习之前,确定你的学习目标。是想进大厂还是想找到一份工作就行
    • 了解清楚后,你需要准备一款本地IDE软件(学习python 推荐Pycharm,学习Java 推荐 IDEA,学习Go 推荐 GoLand),或者能在线运行代码的网站,如菜鸟工具 https://c.runoob.com/compile/10,用来运行代码,进行代码练习
    • 另外你还需要准备一款记笔记的软件,用来记录学习上遇到的问题,解决方案以及自己的心得体会,优质的资料等等,推荐笔记软件有Typora、印象笔记、CSDN,再次敲重点,不要太相信你的记性,一定要用笔记软件记录下来

    阶段1 : 入门

    目标

    该阶段是通过学习编程语言基础,能够了解编程语言的基本语法、使用规则,能编写出简单的程序,为后续学习自动化测试框架、Web开发框架做准备。在这个阶段你可以选择Java或者Python 任意一门编程语言进行学习,有计算机基础建议选择Java作为编程入门语言

    Python

    知识点

    • 函数
    • 面向对象编程
    • 模块
    • 异常处理
    • 文件操作
    • 迭代器/装饰器/生成器
    • 常用库(Requests、openpyxl)

    Java

    知识点

    • 数据类型
      • 基本数据类型
      • 引用数据类型
      • 枚举
      • 数组
    • 流程控制
      • 判断
      • 循环
    • 面向对象
    • 抽象类
    • 接口
    • 集合类
    • 泛型
    • 注解
    • 多线程
    • IO流
    • 反射
    • 异常处理

    学习建议

    对于编程语言学习,需要持续、连续、系统的学习,并且需要根据视频教程或者书籍自己敲代码,这样才能加深印象,遇到问题自己先Debug尝试解决,实在不会可以百度或者请教别人

    阶段2 : 基础

    目标

    本阶段有两个部分,一个是掌握开发的基础知识,另一个是掌握测试的基础知识

    在掌握了编程语言以后,还需要巩固计算机基础知识,比如数据结构与算法,基本上公司面试时都会重点考察。
    除此之外,操作系统、计算机网络、数据库、Linux这些计算机基础知识也是企业里常用到的知识 ,对你后面学习Web框架之类的知识都有帮助

    对于测试基础,需要学会基础的用例设计方法、抓包等测试工具使用,这些都是做软件测试的必备技能

    数据结构与算法

    常用数据结构

    • 数组
    • 字符串
    • 队列
    • 链表
    • 集合
    • 哈希表
    • 二叉树

    常用算法

    • 排序
    • 双指针
    • 查找
    • 分治
    • 动态规划
    • 递归
    • 回溯
    • 贪心
    • 位运算
    • DFS
    • BFS

    计算机网络

    知识点

    • 网络分层模型
    • HTTP / HTTPS 协议
    • UDP / TCP 协议
    • 网络安全
    • DNS域名解析
    • ARP 地址解析协议
    • Socket

    操作系统

    知识点

    • 进程、线程
    • 进程 / 线程间通讯方式
    • 进程调度算法
    • 进程 / 线程状态
    • 死锁
    • 内存管理

    MySQL数据库

    知识点

    • MySQL 搭建
    • SQL 语句(重点)
    • 索引
    • 事务
    • 锁机制
    • 设计数据库表

    Linux

    重点知识

    • 常用命令
    • 常用环境搭建
    • Shell 脚本编程
    • VIM 的使用

    功能测试基础

    知识点

    • 测试用例设计
      • 等价类
      • 边界值
      • 错误推测
    • 测试计划
    • 测试报告

    测试工具

    • 抓包工具
      • Charles
      • Fiddler
    • 接口测试工具
      • Postman
    • 用例编写工具
      • XMind
    • 缺陷Bug管理工具
      • 禅道
      • Jira
    • 接口管理工具
      • Yapi

    阶段3 : 进阶

    目标

    该阶段分为开发进阶与测试进阶两个部分,开发进阶主要为Web开发框架学习,代码管理工具Git以及Redis缓存,为后续能开发测试平台做准备。测试进阶则是包含了自动化测试部分,学完此部分应能利用自动化测试框架编写自动化case

    Web开发框架

    • python web框架
      • Flask
      • Django
    • javaweb
      • SSM框架(Spring、SpringMVC、MyBatis)
      • SpringBoot
      • Maven(项目管理)

    学习建议
    如果你选择的是Python编程语言作为入门,在这个阶段可以选择学习Flask或者Django Web框架。如果你选择的是Java编程 语言作为入门,则可以选择学习SSM框架,或者直接学习SpringBoot

    Git

    知识点

    • 工作区
    • 分支
    • 代码提交、推送、拉取、回退、重置
    • 分支操作
    • 代码合并、解决冲突

    Redis缓存

    知识点

    • 数据类型
    • 常用操作
    • Java 操作 Redis
    • 主从模型搭建
    • 哨兵集群搭建
    • 日志持久化

    自动化测试

    知识点

    • 单元测试自动化
      • TestNG:Java 测试框架(https://github.com/cbeust/testng)
      • JUnit:Java 测试框架(https://github.com/junit-team/junit4)
      • Unittest:Python单元测试框架
    • 接口自动化
      • Pytest(测试管理框架,可用来做接口自动化)
      • Robotframework(测试管理框架,可用来做单元/接口/UI自动化)
    • UI自动化
      • Selenium
      • Appium

    阶段4: 项目实战

    目标

    此阶段分为两个部分,开发实战和测试实战。对于开发实战,希望大家能把前面所学的编程语言,数据库,Linux等知识,开发出测试平台,或者利用自动化测试框架,实现case编写、case执行以及生成测试报告一系列操作。对于测试实战部分,可以通过利用测试工具,如Postman、Charles 完成接口测试,对于遇到的问题,能够通过日志分析,自主排查问题

    学习建议

    对于测试开发岗位的实战学习,最好能在公司真实环境内部进行,因为只有在公司内部才能体验到完整的项目流程。如果说对于想转行做软件测试的同学实在没有项目经历,可以在阶段3 学习Web框架的时候,开发出一个平台,作为开发的项目经历(测试开发岗位有开发经历会更吃香)。也可以在测试者之家(TesterHome)寻找开源项目进行练习

    知识点

    • 测试工具脚本(平台)开发
      • 监控平台
      • 接口自动化测试平台
      • 压测平台
      • 业务测试中台
        • 集成信息查询
        • 环境自动部署
        • 测试数据构造、mock数据
    • 测试实战
      • 客户端测试
        • Web测试
        • App测试
      • 服务端测试
        • 接口测试
        • 白盒测试
        • Mock数据
        • 测试数据构造
        • HTTP返回数据分析
        • 日志分析与问题排查

    资源

    • 测试者之家开源项目汇总https://testerhome.com/opensource_projects

    阶段5 : 求职

    目标

    找到一份好工作

    求职建议

    • 精心准备一份简历
    • 尽早做规划,可以通过大厂招聘官网的岗位描述来了解岗位的要求
    • 多读牛客网面经,坚持刷Leetcode算法
    • 多参加面试,面试完成后进行复盘总结

    资源

    • 网站
      • 牛客网
      • Boss直聘
      • 拉勾网
      • 企业招聘官网
    • 面试真题
      • 牛客网测试开发面试真题汇总https://www.nowcoder.com/discuss/experience?tagId=2678
      • 微信公众号:测试开发Guide 回复【面试】

    阶段6 : 持续学习

    目标

    持续学习,提升自己核心竞争力

    学习方向

    • 测试效能提升
      • CI/CD
      • 容器化
      • 测试左移/测试右移
      • diff 测试
      • AI 测试
      • 流量回放
    • 测试平台(工具)开发
    • 性能测试
    • 算法测试
    • 大数据测试
    • 专项测试
    • 稳定性测试
    展开全文
  • 一文带你搞懂什么是测试开发

    千次阅读 2019-10-15 10:35:31
    需要说明的是,原文发表于作者的公众号中,文章篇幅虽长,但内容朴实、且能帮助读者进一步理解测试开发工作,请读者耐心品完~ 01 开始前说点什么 1. 自我反省 公众号开通了也有两年多了,除了刚开通的那段时间发文...

    需要说明的是,原文发表于作者的公众号中,文章篇幅虽长,但内容朴实、且能帮助读者进一步理解测试开发工作,请读者耐心品完~

    01 开始前说点什么

    1. 自我反省

    公众号开通了也有两年多了,除了刚开通的那段时间发文比较频繁之外,从去年上半年开始,几乎很少再去打理了,翻了翻历史推文,从时间频率来讲,基本上平均2~3个月才更新一篇文章,工作忙虽是一方面,但这也只是借口,归根原因还是不够坚持。

    2. 养成投资自己的习惯

    最近一直在思考,当初为什么要开办公众号?有些读者可能会想:“是不是就想弄个渠道引流打广告!”,上周确实也帮朋友在公众号内做过一两次专栏推荐,但我想说的是,虽然有些小部分推文有些推广的成分,但请试想一下,推荐给大家的学习专栏,都是实实在在能帮助大家提升自己技能、打造职场竞争力的有用课程,并不是无用的。经常有周边同事或者读者跟我说:“你怎么会懂得那么多种类的专业知识啊,而我自己啥都不会,但又不知道怎么学,怎么办呢?”,我想对这些人说,放开畏难情节,养成持续学习的习惯,这样知识技能的积累才能越来越多、越积越厚。现在社会上有很多人,喜欢投资房子、投资脸蛋、投资享乐,当然这些都没有错,但真正的长期投资,应该是投资自己,知识的投资对于自己来说,才是永恒属于自己的。

    3. 回归初衷

    前面说了那么多,更重要的还是想呼吁大家懂得投资学习,投资自己。回想当初为什么要开办公众号,我想最根本的初衷目的还是想提供一个分享交流的平台,在帮助他人的基础上,也是通过这种方式来倒逼自己要持续不断的输出自己的思考、输出自己的实践积累。

    4. 定个小目标

    因此笔者打算重新激活公众号,并计划后续每周都能有一至两篇的原创文章分享给大家(保底至少一篇),也算是给自己设定的一个小目标!小目标虽然不能像王健林那样霸气,随口就是五个亿,但这个小小的目标至少也是对自己的一个短期成长促进。

    5. 开篇写点啥

    重新激活公众号,作为开篇,写点啥呢?公众号之前的名称叫【技术大全】,觉得这个名称范围太大,一时间也很难让公众号的内容涉及到技术方方面面,于是思考良久,在上周重新定位了公众号的受众和作用,改名为:【测试开发技术】,旨在围绕分享以质量保障技术、测试开发技术实践及行业发展、工作思考等。既然公众号取名为:测试开发技术,作为开篇,不妨先聊聊分享一些笔者对于测试开发岗位及工作的一些理解。

    02 为什么会产生测试开发岗

    1. 测试开发是趋势

    测试开发是近几年行业中一个流行词,但有很多人并不太理解测试开发的工作和意义,认为测试开发岗就是整天写写自动化测试、开发出一些高大上的测试平台、测试工具出来。并且从近几年行业发展趋势来看,越来越多的公司都设立了专门的测试开发团队,也因此越来越多的传统手工测试从业人员都想转型到测试开发岗。

    2. 来自测试开发的诱惑?

    手工测试从业人员想转型成为测试开发,从想法上并没有错,所谓“人往高处走”,但很多人转型前,并不理解测试开发真正意义是干什么的,甚至不明白自己为什么要转型,大多数人是看到现在行业中越来越多的人往测试开发岗转型,因此也跟着随波逐流罢了,这一类人我暂且称之为行业跟风者。另一类想转型的,我想无为乎两方面:

    • 一方面手工测试做腻了,认为测试开发不需要参与业务测试,从而摆脱功能“点点点”的苦日子。

    • 另一方面,来自测试开发岗高薪资的诱惑,认为转型成为测试开发岗,就能拿到高薪,从而摆脱屌丝,迎娶白富美,成为人生赢家。下图是部分互联网公司测试开发岗薪资区间(从薪资区间来看仅是中高级的测试开发岗),可以看出,相对于传统手工功能型测试人员的薪资来说,这个薪资范围确实有一定诱惑力。
      在这里插入图片描述

    3. 先思考几个问题

    在谈测试开发是干什么之前,我们先思考一下,早期软件行业中只能看见测试工程师、开发工程师这类的职位,为什么近几年冒出一个测试开发工程师?这个岗位是怎么产生的,它的存在意义是什么,这个岗位的存在真的有必要吗?(这几个问题欢迎读者下言留言讨论)

    4. 行业发展带来的质量保障挑战

    相信大家都能感受到,当今互联网行业,特别是从2012年之后,各种新技术和新概念层出不穷,例如:移动互联网、人工智能、大数据、云计算、区块链、微服务等,随着各种新技术和新产业不断涌现,软件测试的理论、流程、工具、技术、需求等都随之发生了变化。这些新技术和新概念给软件质量保障带来了巨大的挑战。

    5. 企业对产品更高的质量要求

    同时企业对软件质量的要求也不断提高,这也给从事软件测试工作的工程师带来了很大的压力。 早年软件测试追求的基本都是大而全,而现如今软件交付的周期越来越短,用户对产品的质量要求也越来越高,软件测试追求的也演变成了基于风险驱动的精准测试策略:一方面强调测试的”左移“,即需要开发人员在早期更多地参与到软件测试的活动中,另一方面强调测试要遵循”少就是多“的原则,在不牺牲产品质量的前提下节约成本,科学合理地缩小测试的覆盖率,这些都对软件测试从业人员提出了不小的挑战。

    6. 顺应行业变化+企业用人需求而产生

    传统的测试从业人员大多都只关注业务功能测试,俗称“点点点”纯黑盒测试,他们当中大多数人并不了解开发知识,不理解业务技术架构实现,不知道甚至没有想过该如何让自己提能增效从大量重复的工作中解放出来。而软件测试作为保证软件质量的有效手段和途径,要想有效和高效地保障软件质量并不容易,它涉及多方面因素,包括对软件质量的认知、软件测试技术和方法、软件测试管理、软件测试过程和过程改进、测试工具的支持、测试环境的搭建和管理等,这些都需要软件测试人员不断探索新的、合适的测试方法,并从测试过程本身的改进去适应新的技术和发展。
    软件质量作为软件成功的决定性因素之一,随着对软件开发周期要求越来越高,为了又快又好地交付软件,行业或者各个公司里,需要有一类人,能在这种新技术变革推动以及业务快速迭代发展之下,仍然可以科学合理、精准高效的保障产品质量,相信这个也是大部分公司设立测试开发团队最原始的原因。

    03 测试开发是干什么的

    在这里插入图片描述

    1. 测试开发不是什么!!!

    正如前面谈到的,很多人认为测试开发岗就是整天写写自动化测试代码、开发出一些高大上的测试平台、测试工具出来就行了。不可否认,测试开发工程师在实际工作过程中,确实需要结合团队及业务现状,设计开发出一些自动化测试框架、测试工具或者平台,但这些绝对不是测试开发工程师工作的全部。

    甚至还有些人认为,测试开发不用去关注业务,不用去理解参与业务需求,他们只关注如何实现预先设计的功能,而完全不关心所开发的测试框架和工具平台在测试中的具体应用场景。如果是这一类的人,即便他的开发能力再强,但他的核心能力还是开发,并不能胜任测试开发岗位。

    一名合格的测试开发工程师一定可以成为合格的开发工程师,但是合格的开发工程师不一定会成为合格的测试开发工程师。

    2. 测试开发是什么

    当前因公司、团队现状的不同,测试开发主要分为两类:

    • 一类是基于业务驱动型的测试开发,这类型测试开发,或者可以理解为就是业务测试工程师,只是多具备了开发能力和质量改进思维。他们需要扎进业务中,主动去挖掘业务过程各个环节质量的薄弱点并想法设想解决,并且通过流程改进、开发出得心趁手的工具,让自己测试工作能持续高效。(现在大部分一线互联网大厂的测试开发工程师都是属于这个类型:50%测业务、50%进行效率改进)

    • 另一类,是基于框架平台型的测试开发,这类型测试开发,需要站点更高的维度来看待产品质量,他们会针对研发整体过程或某个大的专项去开发设计出一些测试平台、框架,并将其这些能力以服务的形态提供给各个业务线使用,以此来保障全局内建质量。

    但不管是哪一类,测试开发岗位的核心其实仍是”测试“,”开发“的目的是更好的服务于测试,测试开发应该看重的是对测试的理解,以及在此基础上设计、能开发设计出帮助测试人员或开发、运维人员提高效率并解决实际业务问题的工具。

    关于测试开发岗位的工作职责范围,不同公司之间会存在一定的差异,但不妨参考一下现在一些知名互联网公司对测试开发岗的职位范围描述。(如下供参考)
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    04 测试开发需要具备哪些技能

    既然是测试开发工程师,那么代码开发能力是最基本的要求!!!除了代码开发能力之外,测试开发工程师还需要具备分析测试系统需求的能力,系统质量风险识别能力,要能够站在测试架构师的高度,识别出测试基础架构的需求,提出提高效率的方法。

    另外,测试开发工程师需要具备非常广的知识面,因为它不仅需要和开发工程师打交道,还要和CI/CD、运维工程师有紧密的联系。除此之外,还要能对测试架构部署、生产架构部署所采用的各种技术非常熟悉。

    关于测试开发岗位的能力要求,不同公司以及职级(专家、资深、高级、中级、初级)的不同,能力要求也会有所不一样,下面列举了几家知名互联网公司对测试开发职位能力的要求描述。(可作参考)

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    从上面附图中列举的能力要求中,可以看出,对于测试开发工程师来说,开发能力已经成为最基础的能力要求了,前两年行业一直在流行全栈工程师,可以很肯定地说,一名优秀的测试开发工程师是最能接近全栈工程师能力的人。当然能力越大,能从企业获取回来的薪资也越高!

    关于如何打造提升自己测试开发能力,推荐给大家一个学习进阶专栏《软件测试52讲》
    在这里插入图片描述
    专栏的作者茹炳晟曾在世界五百强公司担任资深测试架构师,专栏内容非常全面(深入讲解自动化测试、性能测试和测试架构设计的核心原理,带你从软件测试的“小工”进阶为“专家”。),实战性强 ,推荐读者可以订阅学习一下 笔者自己也有订阅 内容确实值得推荐!

    如果需要的,大家可以扫下方的二维码,目前订阅优惠中,只需要65元(超值专栏)!!!
    在这里插入图片描述

    05 小结

    今天的测试工程师不再只是充当产品质量的”守门员“,更是掌握多种技能和知识的全能选手,他们既要熟练运用测试领域的相关技术,又要对产品开发全流程中每个环节都要有所了解,现时还要及时领会相关行业里的最新技术及其发展趋势,因此,对从业者学习能力的要求越来越高。

    作为产品研发中的一个重要环节,测试质量直接影响产品交付的质量,随着互联网的发展,测试的场景越来越复杂,这些对软件质量保障工作都带来了越来越大的挑战。此外,产品的迭代速度对于企业来说是核心竞争力之一,怎样通过自动化、工具化、平台化的建设提升测试的效率显得尤为重要。不管是测试工程师还是测试开发工程师,第一要责都是需要通过高效的策略手段,来保障产品交付质量。

    06 最后

    原文链接发表于笔者公众号内:月薪30K+,高薪?一文搞懂什么是测试开发!
    感兴趣的可以关注笔者公众号:测试开发技术(mikezhou_talk)
    在这里插入图片描述

    展开全文
  • 开发、测试开发和测试的区别

    万次阅读 多人点赞 2020-06-30 23:50:37
    突然发现好像挺多人想投测开和测试的,很多人面试的时候也会被问到这几个职位的区别,然后有测试经历或者说有系统学习过测试的人蛮少的,楼主去年投这个岗位的时候也...软件开发工程师(SWE),测试开发工程师(SWT),测试
  • 测试开发~

    万次阅读 多人点赞 2020-09-01 13:48:49
    1、首先针对测试这边的工作有(可以根据测试流程来回答): 需求分析阶段:需求分析与评审、学习业务...2、针对开发这边的工作: 自动化测试:编写测试脚本,执行测试,分析,提交BUG,跟踪BUG状态、总结 对测试
  • 手工测试人员如何转测试开发

    千次阅读 2021-11-08 19:35:03
    测试开发简单来说就是既要会做测试又要懂开发。
  • 测试开发必备技能

    千次阅读 2021-11-13 21:41:26
    测试开发必备技能 一、掌握简单的Java基础知识 1、基本数据类型(包装类型); 2、集合(List、Set、Map); 3、能够看懂代码(不需要懂代码是怎么写的)。 二、数据库方面知识 1、基本常用的SQL会写,比如:查询、...
  • java开发转测试开发经历

    千次阅读 多人点赞 2021-02-08 14:25:11
    1、背景 我从毕业一直做java开发已经两年半了,到目前为止...3、为什么转测试开发 其实根据工作内容接触到财务知识,我最先考虑的是做会计,走财务审计方向。中间报班考证学习了一阵子,迷茫了起来,不是因为我发现自
  • 对于在公司成为一位优秀的测试开发工程师,我觉得下面这篇文章涉及到的是我们需要的,稍微进行改动https://blog.csdn.net/sinat_21026543/article/details/79909062 测试流程方面:从最开始的分析需求开始,逐步地...
  • 这期我们来学习下,测试工具的开发。 在我们实际的测试工作中,经常会写一些脚本,来辅助测试。比如测试数据的制造,测试场景的制造等等。可能你写的脚本,很方便,可以推广给你的同事或者朋友。但是他们看不懂你的...
  • 很多人都会纠结到底是做Java开发还是做测试开发,其实这个问题没有标准答案,选择适合自己的岗位才最重要。如何选择?那就要搞清楚这两个岗位的入行门槛、技能要求、发展前景、薪资待遇之间的区别,然后再结合自身的...
  • 测试开发需要学习的知识结构

    万次阅读 多人点赞 2018-04-12 10:40:58
    努力成为一个优秀的测试开发从业者,加油!!! 一些视频链接:我这有一些软件测试的视频,你可以点开看看。转行互联网测试需要哪些技能? - 假装在测试的回答 - 知乎作为一名软件测试人员,有哪些网站是你应该多多...
  • 你有达到测试开发的薪资水平吗?

    千次阅读 2020-11-23 08:25:00
    不知道是不是年底了,大家都焦虑了,最近经常收到后台留言:现在的工作学不到东西,技术水平难以提升,薪资也很难有涨幅。测试工作做到两三年的时候,基本就能掌握测试需要的大部分知识了,很多人就...
  • 测试开发必备技能-Jmeter二次开发

    千次阅读 2022-01-13 20:15:42
    JMeter作为一款开源的性能、接口测试工具,有时候无法满足我们工作的需要,一般体现在:协议不支持、没有相应数据处理功能等。 一般这种情况下,我们可以做的选择有: 第一种找插件 第二种自定义实现 JMeter二次开发...
  • 《软件自动化测试开发》认真看过的读者应该都知道,介绍的主要是自动化测试基础以自动化测试框架为主线,同时附带提到了自动化平台的功能。 第一本书是偏向于Java语言开发。   然后   第二本书,第一本...
  • 什么是测试开发工程师?

    万次阅读 2019-11-22 07:30:00
    什么是测试开发工程师?测试开发工程师 (Software Development Engineer in Test,简称SDET)是指那些既可以称作是开发人员,同时也负责...
  • 测试开发工程师的认识 从名字来看,可以理解为既要懂测试,也要懂开发。事实上,确实如此。 对与单元测试、代码评审、代码重构,它们可以保证产品代码的质量。但国内大部分公司都是由开发人员负责。确实,自己写...
  • 软件测试和测试开发有什么区别?

    千次阅读 2019-10-06 08:51:21
    对于没有进入IT领域的同学而言,软件测试并不陌生,但如果听到测试开发,他们一定会感到十分困惑,这究竟是测试呢?还是开发呢? 按照字面意思理解,大家或许会觉得测试开发是指既能开发产品又能测试产品的“技术...
  • 测试岗/测试开发岗面经合集

    万次阅读 多人点赞 2019-08-17 16:04:21
    目录测试岗/测试开发岗面经一面(30min-1h)二面/三面(不一定有)(30min-1h)HR面(30-45min)测试岗/测试开发岗面试真题自我介绍项目/实习介绍计算机网络Linux命令数据库与SQL手写SQLC++/Java/PythonC++Python...
  • 2021年社招字节跳动测试开发工程师面试题总结(一二三面),每个人面试题可能不一样,仅供参考(字写的丑请忽略字体)
  • 首先,我们需要明确一下手工测试干的好好地,为啥非要转到自动化测试或者测试开发领域。总结一下有以下几条原因: 1.手工测试重复性很强,不断地从键盘或者鼠标输入,或者用手直接点手机,点了好几年了,心灵难免...
  • 许多计算机专业的同学都听说过“测试开发工程师”这一岗位,或许你会有疑惑: 1.“测试开发”与“测试”和“开发”有什么区别? 2.网易游戏(互娱)的“测试开发工程师”都做些什么? 3.自己适不适合做游戏公司的测试...
  • 测试开发岗位-面试总结

    千次阅读 2019-02-21 22:31:45
    2019.1.18-2019.2.21期间找工作总结 公司 ...对测试开发人员的要求: ...1.在第一份工作中,由于是客户端测试...6.准备面试和面试的过程虽然很辛苦,但是也知道了各个公司对测试开发人员的要求,很值得的过程
  • 测试开发工程师的理解

    千次阅读 2018-03-01 18:37:00
    随着测试在软件开发周期中越来越受到重视,国内测试的缺口一直比较大,各种软件和互联网公司都大肆招收测试工程师,有些走在前面的公司甚至从今年开始取消了测试工程师职位,全部变成了测试开发职位,比如百度。...
  • 测试工程师
  • 大家知道,测试开发或者开发测试范围很大,一个人的精力和你当前的项目经历,决定了你属于某一个领域的具体的测试开发的工作。在这里,我不纠结测试开发和开发测试有何不同,有一个叫法罢了。今天这里要讨论的是如何...
  • 团队协作能力,合理进行人员分工、协助组员解决问题、配合完成测试任务、配合开发重现缺陷、督促项目整体进度、出现问题勇于承担; 专业技术能力,掌握测试基础知识、掌握计算机知识、熟练运用测试工具; 逻辑思考...
  • 测试开发成长学习路线--引导篇

    万次阅读 多人点赞 2017-06-17 18:45:57
    我相信,有很多测试人员会不断问自己,自己到底要不要坚持做测试测试的职业发展到底怎么样?如果你还在迷茫,在到处找各种大牛问类似的问题,我希望这篇文章,你看完能够结束你的这个烦恼,给你更多的指明方向,...
  • 测试开发的进阶之路

    万次阅读 2021-08-13 10:49:04
    前言:很感谢大家的信任,我好长一段时间没写博客了,最近满血复活会把博客来个敏捷迭代,毕竟目前积累的草稿挺多的,那...测试大佬的进阶之路一、 测试流程与理论二、 Linux与Bash脚本课程三、 python实战课程四、 Py

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,638,191
精华内容 1,055,276
关键字:

测试开发

友情链接: 8266-rgb.rar