• 华为7年经验的软件测试总监,给所有想转行学软件测试的朋友几点建议


    对于软件测试的建议,首先不知道大家当前具体情况,是非计算机专业转行的零基础小白还是计算机专业刚入行的新人?当然,不管前提条件怎么样,只要你决心想走上测试的道路,这些前提都不是问题。

    那么要想学好软件测试,我会从以下两个方面来分享我的一些经验,希望能对你们有所帮助!

    零基础小白如何自学软件测试
    软件测试工程师如何提高自己的软件技能

    一、零基础小白如何自学软件测试

    大家都知道,软件测试其实是计算机IT技术岗位中相对技术入门门槛比较低的,所以才会有很多计算机零基础的小白来会选择软件测试行业。

    虽然,大家都说软件测试相对开发、前端比较简单,但是对于完全没有相关基础想要自学的朋友,如跨专业转行(像文科转岗一类或者从没有接触过计算机相关方面的知识的),自己学习起来确实有一定的困难,可能很多测试入门书籍都很难去理解读懂。像这一类情况,如果自己还是特别想入行软件测试,那你就得严格要求自己。像学习能力,自学能力以及自制力肯定是要比较好的,因为学习本来就是一个很辛苦的过程,特别是自学,所以在一开始前一定要调整好自己的心态,做好遇到困难准备。最好是有善于解决问题的能力。

    关于自学软件测试,你可以借助一些网络资源,像现在网络资源也是比较丰富的,比如B站一类,或者你也可以买软件测试相关的学习书籍。当然,学习软件测试之前你最好得先要有一个学习思路,然后制定一个学习计划,就像在学校读书时的课程计划安排一样,从最先的基础开始循序渐进,做笔记,实操训练,复习巩固。

    1.自学软件测试的学习方法

    1)了解软件测试行业,规划自己的职业发展

    零基础的小白在想要踏入软件测试行业之前,一定要对测试行业有一个大致情况的了解,例如:软件测试行业发展前景如何?未来的发展趋势怎么样?以及软件测试职位的就业需求是什么样的情况?这样你在一开始学习中,就可以给自己确立一个大致的学习方向和学习路线,为后期有一个明确的职业发展目标做准备。同时,这样学起来会更有动力和积极性,也会更有方向感。

    2)制定学习计划(拆分学习目标)

    在开始软件测试的学习后,制定一个科学合理的学习计划很有必要。例如今天是有关软件测试数据库的知识内容,那具体要学什么?你可以把今天数据库需要学习的内容知识一条条列出来,而不是自己随心所欲想怎么学就怎么学。在制定好学习计划的前提下,不仅可以让自己在学习过程中更系统全面的掌握知识点,还能够督促自己的学习进度,一举两得。所以,在学习软件测试的时候,一定要根据自己的学习能力和实际情况来,按照自己的进度来制定适合的学习计划。

    3)自学应该看哪些书籍?

    因为现在社会人们比较浮躁,很多时候大家都认为看书学习没有太大必要。但对于零基础小白学习者而言,首先多看一些软件测试的书还是很有必要的,这样你就能对软件测试的基础理论知识方面有一个大致的了解。

    在网上可以搜索到很多有关软件测试的书籍,但大都比较杂乱,而且不是所有书籍都适合零基础小白的,给大家推荐一本适合零基础小白学习的书——《软件测试》 ,书里不仅有讲到软件测试基础理论的内容,也比较注重软件测试的实用性。里面还配套了免费教学PPT、学习大纲、题库等等。

    另外,关于软件测试专门的学习教材是没有的,而且软件测试涉及到的知识面非常广和复杂,所以要想学习好软件测试需要掌握的知识非常多。除了专门的软件测试领域的知识,像项目管理类、逻辑思维方面也需要广泛去涉及。

    推荐(仅供借鉴):

    • 需求分析:《淘宝十年产品事》
    • 测试方法和流程:
      • 《微软的软件测试之道 》
      • 《How Google Tests Software》
      • 《探索式软件测试 》
    • 逻辑思维:《批判性思维》

    4)多做实战项目的练习

    一般对于软件测试的学习,实战性要求很要。所以大家在掌握一定的软件测试基础知识后,对于练习项目练习很关键。当你在做一个测试项目的时候,首先,你需要对需求进行一个比较全面地分析,然后去分析评审程序设计,假设在实现需求功能点开发人员存在问题或者程序设计的编码出现问题的,然后,你根据这些假设设计[测试用例],在最后执行这些测试用例的时候验证程序不存在那些问题。

    两个实打实的软件测试真实项目

    一个web测试实战

    在这里插入图片描述

    一个接口测试实战

    在这里插入图片描述
    任何技能的学习都是建立在实践上面的,IT行业就特别强调项目经验。不练习,就像是花了半天时间去学习开枪的理论,结果根本没有机会摸枪,你觉得你打得准吗?想要学好软件测试,对技术有更深的理解,就一定要多去实操,没有熟练度的加成,你学的再多也只是纸上谈兵,一旦面对了真正的问题,你就会无从下手。

    2、零基础自学软件测试需要掌握的学习内容

    对于新手建议大家先了解一些有关计算机知识,先对计算机的基本操作原理要有一定的认知,然后需要了解计算机的系统知识,比如常见的操作系统Linux的使用命令以及Windows系统。像数据库相关的知识也需要掌握。

    月薪5-9k,刚刚入行,先学会功能测试!

    在这里插入图片描述

    软件测试的定义、生命周期、工作流程、需求分析;
    测试用例的设计、编写、评审;
    bug的基本知识以及禅道的使用;
    测试计划、测试报告的编写;
    SVN、Git版本控制工具的使用;

    搞定上上面的这些基本必备内容,就已经知道可以做具体的实战内容,这个时候最好是先找一个web测试项目去做一下,假如一个项目拿到手之后,按照下面的一套流程跑一遍:

    发布项目进行立项,建立项目组进行分工;
    需求评审,学会如何看需求文档,进行需求分析,罗列测试点;
    整理测试点,编写测试用例,然后进行用例评审;
    执行测试,比如功能、界面、前后台、兼容性、数据库,对于发现的bug提交到禅道;
    分析、总结、编写测试报告;

    这个流程完整的跑一遍之后,只能说对于整体的测试流程算是掌握了,但是仍然不足以找到一份合适的工作,想要学会做功能测试,以下的内容也是必须掌握的:

    Linux相关技能

    操作环境、命令、安装数据库、部署测试环境等

    数据库相关技能

    各种命令用法、字段、增删改查

    接口测试相关技能

    接口测试基本理论、http协议、测试方法;
    接口测试需求分析、用例编写、评审;
    几种工具的掌握,jmeter、postman、soupUI;

    APP测试相关技能

    安装/卸载、离线、UI、登录等测试内容;
    兼容性测试、monkey、fiddler抓包;

    OK,搞定了这些,恭喜你已经可以投出你的简历去寻找一份测试的工作了!

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

    简历不会写?文末帮你解决这个问题!

    会了以上这些内容,只能说是能够获得一份工作,但是现在行业招人的要求原来越高,搞定自动化或者性能测试,才能拿到10k以上的月薪。

    二、软件测试工程师应该如何提高自己的技能?

    比起盲目的努力,找对方向更加重要。所以要想提高自己的软件测试技能,先得找到方法建立适合自己的知识体系。

    那怎么找到适合自己的知识体系呢?可以利用反向思维进行推理,我们可以先明白不好的的知识体系是什么,进而去规避。

    像不好的一些知识体系大家可以参照《穷查理宝典》书籍的内容介绍,概括了主要有三个特征,分别是缺乏纵深、内容单一和知识松散无关联。

    所以关于软件测试工程师具体如何提高自己的技能,就可以按照这三个方面进行:

    • 打造到纵深的软件测试技术体系 ;
    • 提高自己业务能力,看问题不片面和单一;
    • 提升软技能实力,实现知识内容交叉合理

    1)月薪15-25k,搞定性能、自动化测试,独当一面!

    都说自动化玩好了很牛掰,但是性能测试才是互联网企业的核心痛点!

    对于性能测试,业界很多都是在“耍流氓”,举个栗子:

    我拿到了一份“流氓”的性能测试报告,上面只写了响应时间、TPS是多少,然后罗列了一下压力机基本配置情况,比如40个并发相应时间是5秒,TPS是260。

    那么,我该怎么判断这次性能测试的有效性:

    1.场景是否合理?

    2.压力是否传递均匀或者传递到指定目标?

    3.是否有干扰因素,或者说那些数据是否有效?

    4.有没有一些可信的判断方法?

    这些问题的出现,其实就是反映出了目前在做性能测试的一些误区:

    • 只测不调,无法给出研发和运维人员执行建议
    • 无法定位问题,缺乏清晰的逻辑和数据证明价值
    • 性能测试工具≠性能测试
    • 性能测试技术体系落后(loadrunner),急需拥抱开源软件

    如果要搞定这些问题,那么性能测试你得这么去学:

    性能测试的概念和流程

    常见问题剖析、流行工具、方案设计

    性能测试工具

    jmeter工具的使用、实战;
    jmeter多协议、拓展与定制;
    分布式压测与任务调度;

    性能监控

    性能监控体系与监控数据采集

    性能实施

    分布式服务压测,场景设计、场景执行
    测试结果关联分析,TPS、响应时间、线程关联分析,压力和资源使用率关联分析

    性能分析与报告

    jvm调试与系统调试
    性能瓶颈分析

    搞定这些,你完全可以很自信的和面试官说自己精通性能测试!

    性能测试你能到这个程度,15k那是妥妥的了,如果下面自动化测试的学习内容你能够掌握,那就可以直接冲击月薪25k!

    搞定Python或者Java语言,建议先从Python入手

    基本的语言知识,语法、函数、模块、输入与输出、面向对象编程
    脚本编写、标准库、多线程、第三方库,外部数据处理
    unittest、pytest测试框架、参数化、数据驱动

    web端的自动化测试

    selenium安装、录制、处理
    web控件、JavaScript脚本、PO模式

    移动端APP自动化测试

    appium使用、录制、元素定位方法
    APP控件定位、交互,参数化用例
    appium问题定位分析、源码分析、二次封装

    服务端接口自动化测试

    接口自动化测试框架request
    接口请求构造、断言
    json/xml请求、响应断言
    headcookie处理、认证体系

    上面这些说的是性能和自动化测试的学习路线和内容,搞定这些,基本上在这个行业,月薪2万以上是非常轻松的事情了!

    2)提升业务能力

    一个好的软件测试工程师首先要有一个好的项目,了解项目的受众人群是谁,同时要学会站在用户的角度去思考问题和设计项目。所以要想做好软件测试,学好测试技术只是一方面,同时把自己带入用户的角度去感受和体验项目也很重要。

    在软件测试实际的工作中会接触各种不同领域的项目,如互联网、电商、社交、游戏、医疗、金融等等。要想在各个领域都做的好,在一开始的业务流程以及相关业务模块上你就要做好提前准备,要非常的熟悉。

    3)提升软技能

    1)执行力:

    严格要求自己,做好的计划一定要按时完成,拒接拖延。

    2)学习能力:

    首先养成良好的学习习惯,要善于接受新鲜事物和挑战,在每一次接受新知识或技能的时候一定要用心,同时时刻保持虚心请教的心态,找到一套最适合自己的学习方法。

    3)善于解决问题的能力:

    遇到问题不能逃避或是随便抛给上级领导,要提升自己解决问题的能力;在不确定应该怎么做的前提下,也要提前准备一个或几个方案再和领导进行沟通。

    4)沟通能力

    平时要多阅读、多看新闻、多思考,从而增加自己的阅历和不断提高自己的应变能力,这样在与别人交流的时候才会有共同话题进而达到表达的目的。

    如果你是测试在职,那么相信文章后半段的内容,你一定能够看到其中的价值所在!毕竟按照这个路线和内容去学习的同学,已经进入了BAT等一线的名企,目前最高级别是阿里P7,年薪最高是60W+!成年人的世界没有容易二字,高薪靠的是自己的努力!

    如果你还是没有思绪,还有一个捷径走,就是去我下面推荐的测试学习群:769146372 去请教,学习群都是测试同行和一些前辈,有很多资历老有经验的人,这样精准去问会更有效率,如果你怕麻烦我建议你采取这种办法,我当时的学习资料就是这么搞来的,我天生怕麻烦,进了交流群之后就天天问,混的熟悉之后,就有朋友直接给我拷了一套资料,,我就直接顺着资料的思路逻辑学就行,现在我又把自己的学习项目给开源了。

    在这里插入图片描述

    喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!

  • 相关阅读:
    【Tauri】(5):本地运行candle和 qwen 大模型,并测试速度
    微电网两阶段鲁棒优化问题(Matlab代码实现)
    网络基础1:网络初始与网络套接字通信
    试过GPT-4V后,微软写了个166页的测评报告,业内人士:高级用户必读
    【C++设计模式之迭代器模式】分析及示例
    redis分布式锁
    Redis实现滑动窗口限流
    什么是原型链(prototype chain)?如何实现继承?
    python计算折线与坐标轴的面积(正负抵消)
    机器学习中遇到的函数以及用法
  • 原文地址:https://blog.csdn.net/weixin_56502375/article/details/126056789