竹笋

首页 » 问答 » 问答 » 软件测试需要学什么年薪30W的测试工程
TUhjnbcbe - 2024/8/9 0:49:00

从事任何一个行业,不论想入行的新人还是已经在职的从业人员,一定要系统化的掌握自身的学习路线和发展方向,随时对自身的优劣点掌握清楚。尤其是对于软件测试这个岗位。测试职业所涉及的技能范围比较广,测试流程、测试计划、缺陷管理、测试工具的使用、测试类型(APP自动话测试、接口自动化测试、Web自动化测试、性能测试乃至集成测试等等)。

为了长足的发展,我们要能及时的完善自身的能力缺陷。哪些地方做得还不够,就去学;哪些地方还未涉猎,就去学;哪些地方是发展优势,一样要去学!

所以本篇内容,测试猿大课堂为大家整理出一份详细的软件测试学习路线,以期能帮助更多的“测试猿”在测试的职业道路上更加健康的发展!

#python#()废话不多说,进入正题!

一、软件测试从业方向与建议

方向一:纯技术类型——测试开发工程师

软件测试的应用领域极其广泛,测试需要用到的技术也非常多。一个未来发展稳定的技术路线工程师,一定要发展两个擅长点。

一是软件测试的技术纵深:

技术纵深指的是全面的软件测试技术,比如自动化测试、接口测试、性能测试、WEB自动化测试、移动APP测试、计算机运维、安全渗透测试等,并且掌握系统化的Sql数据语言、测试架构能力的掌握、DevOps集成测试的系统性应用。

除此以外,至少掌握和擅长一门编程语言是比较基本的要求。Python、Java、Go、C++等等都是可以选择的,一般掌握Python或Java其中之一就够用了。当然如果有能力同时掌握,对自己的职业发展和技术延伸肯定更有帮助。

二是软件测试领域的多项目经验:在我们发展自身软件测试纵深技术的同时,我们还可以同时挑战不同领域的项目测试。如上文提到的很多领域,AI人工智能、车机互联、金融系统、大型电商系统、鸿蒙等操作系统的多维度测试。对测试工程师而言,增加一些其他领域的测试经验,将会为以后的长足发展带来不可思议的好处,也能为测试工程师本身的能力加分。

方向二:产品经理

测试工程师因其工作的特殊性,需要掌握产品的用户需求、设计需求以及产品的底层结构等各方面,测试人员会从用户的角度出发,去看待软件产品各方面可能存在的不利体验和准确诉求。所以经验比较足的测试人员,对产品的各个维度都能做整体化的把控。比如分析产品的用户需求和体验,以用户的角度来分析产品的定位和功能的迭代等等。可以说从测试转为产品经理的人,一定是一名非常有全局性、前瞻性的优秀产品经理。

方向三:测试经理

软件测试工程师最直接的晋升路线就是测试经理了。一般是领导着整个部门,把控软件的品控、风控、质量管理、工作优化分配等等。优秀的测试经理,一定是对企业产品有充分且全面的了解,对测试的流程、测试的思维、高效的测试方法、丰富的测试实战经验有着异于常人的能力。

当然一名优秀的测试经理,肯定不可能只有高深的测试技术,还需要有比较出色的团队领导能力,毕竟不是每个人天生都适合做领导的。这一块儿不光是软件测试行业,其他行业的同学也一样需要注意,领导能力虽不是天生就会,但我们可以在工作过程中和优秀的领导学习,但如果你拥有比较出色的领导能力,那么你在任何一个地方都会是闪亮的金子。

二、软件测试的学习路线

1、软件测试基础知识

学习目标:对软件测试整理的测试流程有清晰的概念,了解软件测试到底是做什么的,软件测试的各种专业术语是什么意思,以及多种不同的软件测试类型区分,测试用例的作用、本质以及如何撰写,测试报告、缺陷管理、常见的软件测试工具(selenium

Postman

禅道的认识)等等

①软件测试概念:常见的软件测试类型、软件测试的概念掌握、软件质量模型等等

②测试用例:明白测试用例如何设计,测试用例的系统化设计原则,常见的几类测试用例设计方法(因果图法、场景法、正交表法、边界值法、等价类方法等等)

③缺陷管理:正确掌握何谓“缺陷”,常见的缺陷判定方法,缺陷报告的撰写方法,缺陷如何系统性的跟踪和维护等等

④Web项目实战:基础的Web测试项目实战,通过实战了解和掌握基础的软件测试流程、测试项目分析、测试计划和测试方案的设计等等

⑤App项目实战:掌握和了解APP的测试方法,Android、IOS、鸿蒙等不同系统的测试解决方案,Adb的应用等等

⑥测试管理工具:禅道、Testhub、Jira等不同测试工具的特性和优劣,以及测试管理工具的应用场景和原理等等。

2、计算机基础知识

学习目标:主要掌握计算机的系统基础原理(内存信息、运作原理、Linux操作系统命令)、测试的基本理论知识、前端方面的基础知识(HTML+CSS+JavaScript)等。

①计算机基础:掌握和熟悉计算机的组成部分(CPU、GPU、内存等等)、常用的Dos命令等;

②测试理论:软件测试的目的和最终定义,软件测试的术语系列、软件产品的基本测试流程和系统化的测试模型;

③HTML基础:HTML标记语言的基本语法和结构、CSS和DIV层及网页样式的概念,熟悉和掌握常见的HTML标签语法和作用,以及JavaScript语言的基础语法和应用

④Linux系统:掌握Linux系统的安装和操作,Linux终端的各类常见命令的作用(文件操作命令、用户权限管理命令、应用安装和升级的命令)、Docker的安装和使用、以及常见的Linux远程连接方式和方法,其次还要掌握Vi编辑器的使用

3、Sql数据库学习

学习目标:掌握基本的sql语句的使用方法,以及常见的sql增删改查、聚合函数以及各类条件查询、子查询的命令。同时需要了解Sql数据库在诸如接口和性能测试中扮演的“角色”和意义

①数据库的基本概念:什么是数据库,数据库都有哪些类型;

②数据库语法:学习掌握Sql语句的基本语法;

③数据库查询:学习和掌握多种数据库的查询方法,比如复杂查询、多表查询、条件查询等等;

④数据库索引:了解和掌握数据库索引以及数据库事务相关的概念;

⑤数据库客户端:常见的数据库客户端的使用方法,以及不同的客户端的优劣和应用场景。

4、编程语言学习

学习目标:对于软件测试工程师而言,想要在软件测试领域做的不错,就需要掌握至少一门编程语言。没有编程基础的我们建议选择Python,如果有一定编程语言基础的可以选择Java。但是Java入门周期和学习难度相对于Python要大一些,但是两者在市面上的应用领域其实差不多,Python在某些领域(人工智能、爬虫和数据分析)要更优于Java语言。所以测试猿大课堂的软件测试课程大纲,就是以Python语言为课标的。

①Python基础:学习和掌握Python语言的基础语法、Python的运行环境以及安装

②Python数据结构:学习和掌握Python的几种数据结构,诸如基础数据结构(数字类型、字符串类型、数值运算、关键字参数等等)和组合数据结构(列表、字典、元组、集合、hash对象、内存数据结构地址等等)

③程序控制:学习和掌握Python语言中的异常处理、顺序/循环/判断/结构、逻辑运算等

④函数:掌握和学习Python的函数运用、函数的定义和作用域等,内置函数和函数传参

⑤面向对象:学习Python语言面向对象编程的特点,掌握对象编程的特色和优势,学习面向对象编程的底层逻辑及特殊方法

⑥日志:学习掌握Python的日志格式、配置文件以及内置的占位符等等

⑦测试框架:学习和掌握Python中的Unittest和Pytest两种常用的测试框架,两种框架本身可应用于单元测试,但更多的是用于编写自动化测试脚本

⑧并发编程:和Java语言一样,Python有其独特的多进程、多线程、线程池、分布等并发编程,学员需要学习和掌握Python的并发编程的特色和方法

⑨网络编程:学习和掌握TCP服务端和客户端的使用方法,学习Python对HTTP/HTTPS协议的响应,以及socket的编程基础

5、接口测试

学习目标:学习和掌握接口测试的概念和原理。掌握HTTP/HTTPS协议的原理,学习和掌握Dubbox的接口测试方法和协议接口能力,主要掌握Postman的操作以及使用技巧

①HTTP/HTTPS协议:学习和掌握HTTP/HTTPS协议的原理

②请求:学习和掌握常见的Get、Post请求

③Cookie:学习和掌握Cookie、Session的原理以及解决方案

④接口相关:学习掌握接口的文档、接口的基本概念以及接口的测试用例编写,熟悉和掌握接口相关的Postman、Jmeter、SoapUI等测试工具的使用方法

6、性能测试

学习目标:性能测试属于高端测试工程师需要掌握的技术,对技术要求也有一定的门槛。学习性能测试需要掌握系统架构、Loadrunner等常用的测试工具。学习系统化的测试思维和流程,掌握性能测试的设计与需求分析,以及编写测试脚本。

①性能测试基础:学习和掌握性能测试的意义、性能测试的分类以及常见的性能指标概念的理解

②性能测试需求与设计:学习掌握性能测试的系统化需求分析、性能测试的场景设计

③性能测试进阶:主要掌握性能测试的脚本编写原理与方法,以及监控测试执行的资源,学习性能调优、回归测试等相关的概念与底层逻辑

③性能测试工具:深度掌握Jmeter和Loadrunner的拓展用法,学习性能测试的报告输出

7、App自动化测试

学习目标:APP自动化测试,是当前软件测试行业中较为主流的测试技术。我们需要掌握APP测试工具Appium的使用,掌握常见的多系统(Android、IOS、鸿蒙)系统的测试APP方法,移动自动化测试环境的搭建

①APP测试环境搭建:主要学习掌握Appium、模拟器、Adb、Desktop等测试环境搭建的必备知识,了解真机设备的调式模式,以及系统化的测试环境的搭建方法

②Appium的使用:掌握Appium的元素定位(原生App元素定位、WebApp应用元素定位)与元素交互(常见的界面互动操作方法、元素的基本属性和页面等待)方法

③测试框架封装:学习和掌握Appium集成、以及Adb工具的使用,了解移动App测试的深度应用(屏幕截图、异常处理、Appium日志解析等等)

8、持续集成和持续测试

学习目标:主要学习和掌握持续集成Jenkins、Git的环境部署,以及对应的系统化分支的学习,掌握Docker容器的部署和应用

①版本控制Git:为什么需要版本控制,为什么是git,git的部署,git的分支结构,分支合并和冲突解决

②持续集成Jenkins:Jenkins的作用,enkins环境部署,基本的文件结构,Jenkins基本的使用以及插件的使用

③容器Docker:Dockers的来源,docker镜像,容器

三、给所有入行软测的同学们几条真诚的建议

这里写给每位正在学习或想要学习软件测试的同学们一点建议,主要是帮大家梳理以就业为主的学习侧重点,简单来说就是。而且是对后续的就业至关重要的内容,一定要仔细看和记:

建议一:一定要学习一门编程语言,然后再开始使用自动化测试相关的工具

关于编程语言的选择,是很多想转行软件测试的新人们都会有的痛点。Python、Java、C++、PHP等众多优秀的开发语言,到底选择哪个好?哪个对未来的发展和就业帮助更大。测试猿大课堂建议大家,如果没有你自身之前没有编程的基础,我建议你先学Python,后续再根据职业的发展和岗位要求另行延伸。

因为Python在软件测试领域的应用非常广泛,许多大型互联网企业的测试脚本研发,也都已Python为主,其次Python语言对新手更友好,入门相对简单一些,学习周期短,上手非常快,5-10天的学习就能自己上手一个简单的小项目。

建议二:一定要在前期打牢基础,一步一个脚印

分基础尤为重要的有三个点:计算机系统原理基础、Linux系统命令的学习、Sql语言的基础(增删改查)、Web前端的基础(HTML+CSS+Javascript等等这些前端基础尤为重要)、其次就是HTTP/HTTPS(TCP/IP)协议的基础知识。当然还有Python的基础一样非常重要,这个不需要我多讲。

可以说这些知识点,是我们后期在企业中做自动化测试都会用到的知识点,尤其是新手,前期学习的时候,千万不要觉得这些知识还不是“测试”就掉以轻心,把这些基础打牢一定会让将来的你,在软件测试就业路上走的“更快,更高”!

建议三:掌握好不同测试类型的学习侧重点

接口自动化:需要熟悉Python语言,然后在Python语言的基础上学习Python的联网库Requests,需要封装成测试脚本。这时候需要Pytest单元测试库或者使用Unittst+HtmltestRunner来控制脚本生成测试报告,如果有需要持续集成可以再学习Jenkins

web自动化:同样需要掌握Python语言,然后学习Python控制浏览器的库Selenium,和浏览器相对于的Webdriver

APP自动化:需要熟悉掌握Python语言,然后再Python语言的基础上,学习Python控制手机App的库Appium,手机相关的知识比如Adb,Activity,需要封装成测试脚本

上面几点都是主流的测试方案,也是初级测试工程师必须掌握的几个重要学习知识点。还有更多的内容可以根据自身的就业方向和目标,进行纵深拓展。

建议四:不管实战还是学习中,一定要多动手

测试猿大课堂培训的很多学员中,有一些人存在着同样的问题。那就是学习的方式和效率不太高。后来我们在每周的测验中根据这些“问题学员”的问题,进行深度追踪后,发现他们都有个统一的特点:从不记笔记!

这让我非常震惊,学习怎么能不记笔记呢?学习怎么能不动手呢?学员的想法是感觉老师讲的他们都听懂了,而且他们还可以看回放!老师也有课后PPT和源码笔记分享给他们,为什么自己还要做笔记呢?

大家一定要记得,好记性不如烂笔头!学习吸收知识的最快方式就是亲自动手!不管是记笔记,还是说老师布置的作业。

千万不要把老师课后分享的源码拿过来放在自己的环境里一跑,欸,发现可以运行,完美!就不管了,这其中大脑所缺失的记忆过程,会让你在后续的学习里,迷糊点积累的越来越多!

建议五:不要习惯性的依赖,多利用发散性思维去改造甚至创造

软件测试行业比较特殊,市面上有非常多很不错的测试工具。很多初进入软件测试行业的新手,往往会习惯于依赖于现成的测试工具,个人感觉有这些工具应付工作就足够了。但这其实是一种非常危险的“惰性思维”。

软件测试行业中其实还有非常多优秀的开源工具,而很多大型互联网企业都比较倾向基于这类开源工具进行二次开发的自动化测试平台。测试工程师也一定要多尝试着去使用这类开源工具,一来可以拓展自己的思维和眼界,二来可以尽早熟悉自动化测试框架的底层逻辑和开发实战。这一点可以在将来面试的时候,为自己的简历打上一道非常不错的色彩。

1
查看完整版本: 软件测试需要学什么年薪30W的测试工程