[IT技术] 新人如何入门和学习软件测试?

[复制链接]
hshf007 发表于 2023-10-22 16:07:14|来自:中国 | 显示全部楼层 |阅读模式
新人如何入门和学习软件测试?
全部回复5 显示全部楼层
想拒绝呼吸 发表于 2023-10-22 16:07:22|来自:中国 | 显示全部楼层
软件测试相对一些开发的专业来说,需要了解的东西特别多,拿一些招聘简章中的要求来看,大部分都要求熟悉网络、linux系统、数据库、软件测试流程及理论、Java或者python等脚本开发语言、自动化测试理论及工具使用(selenium、Jmeter、Appium、Loadrunner等,太多,此处不一一列出)、接口测试、安全测试等等,甚至最近热门的docker、Jenkins等都要懂一些,回头想想,自己现在懂得东西还真不少。
Python自动化测试2023版《笔记+代码+课件+资料 》VIP完整版知道了软件测试行业需要什么技能了,那没啥好版本,学呗,那就涉及到如何学的问题了。从么多年的软件测试经验中,我总结了如下的快速自学进阶的方法:
1、兵马未动粮草先行,在学习上也是这样,有扎实的理论基础,再开展实战会非常得心应手,这就要求我们把测试理论放在一个较高的位置,而不能只重技巧、工具,那就多看几本软件测试的好书吧,或者多看看网络上一些讲软件测试理论的视频课,不图学到多么高深的技术,只求多听一些概念理论以支撑自己的测试工作。
2、在实践中总结真理,其实在我们测试行业也是适用的,通过进行真实项目的实践,在项目中向经验丰富的同事学习,也是一个不错的提升方式,但这种方式进步速度可能会慢一点,这就要求我们足够自律,不断给自己加压,从最初的执行测试用例、提缺陷报告、设计测试用例,再到测试计划、需求及总结,要不断去挑战,让自己快速成长起来。公司内的项目测试类型会比较单一,没事就多逛逛大咖的博客或者论坛吧,不然自己的思维、技术会被限制的。
3、如果是零基础入行的话,建议自学一些软件测试的在线课程,这样能快速构建软件测试的理论体系,对自己在职业中的发展会有很大帮助。
总之如果在公司通过项目学习的话,可以1、2个月上手功能测试,但由于公司项目可能单一,对自动化测试或者其他测试类型学习可能机会较少;如果通过培训学习软件测试的话,可以在3、4个月内掌握软件测试的基础理论及自动化相关的技术,会对个人的职业生涯有很大的指导及帮助。如果你还没入行,也可以抽时间进行系统的学习,大概需要3、4个月的时间掌握软件测试的基础理论及自动化相关的技术,会对个人的职业生涯有很大的指导及帮助。


总结一下,如果是想自学软件测试,那就必须具备三大素质,一是学习方法,二是足够自律,三是有强大的意愿,我觉得第三条是前两条的基础。
很多新手,不知道软件测试学习该如何开始,软件测试需要掌握哪些知识。下面是根据本人的理解,粗略整理的一个学习大纲,基本上涵盖了软件测试工程师需要掌握的全部技能,希望对刚入行或者准备学习测试的朋友提供一点指引。
1.测试基础理论
不管有没有计算机基础,测试理论的学习都是首要的,不管你的目标是功能测试、性能测试、测试开发,这些基础知识必须优先掌握。
主要包括常见的软件开发流程及模型,尤其是解敏捷开发相关知识。然后,要学习软件测试的定义、分类、测试的流程、测试用例编写方法以及缺陷(bug)的管理及生命周期。其次,要了解web端和app的常见测试点和测试方法。最后,要会编写常见的测试文档,如bug单,测试计划、软件测试报告等。
2.数据库学习
数据库是开发和测试的最基本技能,软件前后端的交互,本质就是数据的交互,不管是功能测试、接口测试、性能测试、自动化测试等,都离不开数据库的支撑和使用。这一部分,主要了解数据库的基本概念,数据库SQL增删改查,常见的表操作语句,以及数据库工具(Navicat)的使用。
3.Linux学习
Linux操作系统一直被用作重要的服务端操作系统,作为软件测试工程师,我们常常需要在服务器端查看日志,从而定位问题的源头。当然,更多的场景是,我们需要在linux系统上搭建测试环境。这些都需要我们掌握基本的linux系统知识,熟悉常见的命令及工具。更高级的使用,是通过编写shell脚本,自动化完成测试任务。
4.接口测试
接口测试本质也是功能测试的一种,通过脚本或者工具,模拟客户端对服务端接口进行调用。因为是从接口层测试,所以能更早的发现问题,从而提高测试效率,降低修复成本。熟练掌握接口测试已经是软件测试招聘的基本要求了。
5.性能测试
性能测试的技术要求很高,不仅仅要对性能测试的指标、测试分类、测试设计有很深刻的理解。还要学习系统业务和架构相关知识,这样才能更好的设计性能场景,分析出系统的性能瓶颈。性能测试常用的工具有jmeter和loadrunner,大家可以根据需要进行学习。
6.自动化测试
学习自动化测试的基础是掌握一门编程语言,个人优先推荐Python,其次Java,并且还要掌握一定的前端知识。另外,还要掌握相关的自动化测试工具selenium、appium等,当然还要掌握常用的自动化测试框架。对于接口自动化测试,如果用python实现的话,则需要掌握requests库和unittest框架的使用。

shenzhen 发表于 2023-10-22 16:08:07|来自:中国 | 显示全部楼层
新人入门学习软件测试,要么自学,要么找一个培训机构带着你学。
先说自学。自学对自制力,学习能力,发现和解决问题的能力都有一定的要求。
资源的话,其实互联网现在最不缺的就是资源了,就去b站上,就有很多免费的视频教程。
学习的内容基本上都是差不多的,围绕市场的就业需求去学。
比如测试理论,系统测试,数据库知识,linux服务器知识,app测试,还要学一门编程语言用于自动化测试,很早之间大家都用的java,现在最流行的是python,测试的话学python就好了,之后再去学接口测试,性能测试,学习一下测试框架,基本就差不多了。
自学有自学的优势,比如时间安排更灵活,不花钱,不过也要考虑下学习的进度,如果自学进度比较慢的话,就得不偿失了,毕竟,早点学完早点找工作挣钱,也能更早的提升自己的软件测试水平。
如果自学比较吃力或者觉得进度慢的话,报名一个线上软件测试也是一个不错的选择。
线上软件测试性价比高,比线下便宜一半还多。测试没那么难,线上完全可以学好。
全程都是小班授课,跟老师更熟悉,更有针对性,可以学的更扎实,毕竟有不懂的都可以当场提问,小班人少,老师都能兼顾到!
还有就是1V1的答疑指导,有时候课上听懂了,自己课后练习的时候发现不会了,直接找1V1的答疑老师就好了,就是专门为你服务的,可以在最短的时间里解决问题,提高效率。
其实培训说白了,就是你花钱买服务,买效率,也就是买时间。可以在更短的时间里学的更扎实。
而且培训和自学的最大差距在于自学不容易找到实战项目,而现在竞争激烈,如果没有拿得出手的实战项目的话,找工作还是比较难的。
以上就是新人入门学习软件测试的一些经验,如果自学,可以按照我说的知识点去掌握,如果是报培训机构的话,自然会有人给你讲的更细致。
其实不管是报班还是培训,都是手段途径而不是目的,没有谁高谁低。我们的目的就是学好测试,高薪就业,加油吧!
测牛学堂软件测试就业培训:测牛学堂软件测试培训咨询/试听/报名看这里!
阿博科技 发表于 2023-10-22 16:08:18|来自:中国 | 显示全部楼层
从阿里测试工程师亲身经历的角度,给大家聊聊测试一行学习成长的经历。
目前阿里巴巴大淘宝技术的重点核心是自动化测试,究竟自动化测试怎么学,是否能完全代替手工测试?聊聊我们的观点。
(欢迎点击头像关注我们,后续分享更多一线干货)
——————————————————————————————————————————
1、 对自动化测试个人看法:

自动化是一个老生常谈的话题,也是一个软件领域非常有技术广度和技术深度的活动,特别是在大型软件的生命周期上。
个人觉得开展自动化测试的难度不亚于传统意义上的软件开发,
从产品角度来看:质量领域本身要求从业人员要全面了解产品、有全局风险意识,例如:产品需求/设计阶段能否发现设计缺陷、产品测试阶段能否发现深层次的bug、产品运维阶段能否制定良好的灰度策略、快速发现、定位线上问题,甚至如何做好新/老系统线上过渡切换等等,这里面都有自动化测试可发挥的空间。
从技术的广度和深度来看:
1)从技术广度来说,不同的技术领域的质量保障需要使用不同的技术(这些技术领域都有一些代表性的工具,但不一定能完全满足实际的项目自动化测试需求),例如有做JUnit接口测试的、有做Web/App/桌面客户端 UI测试的、有做性能测试的、有做用户体验测试的、有做AI算法测试的、有做IoT的、有做压测的、有做各种专项(如兼容性、安全、多媒体、网络)测试的等等,实在太多了......。
如果考虑到测试工具本身的可用性、系统性,除知道使用工具以外,可能还需要掌握一些基础开发技能,例如:Java/Node/Python后台、React/H5前端、或者Android/iOS客户端;
2)从技术深度来说,想通过开发软件去测试另一个软件是否正常,本身就是一个很具挑战的事情,特别是在黑盒的状态下,举个例子,试想你能否开发一款自动化测试工具能够模拟人的意识形态,它能够对当前多如牛毛的App开展自动化测试,很多人此时想起了Monkey、Appium、AirTest或者Applitools,其实这远远不够,因为目前并不具备解决场景构建甚至自我发现缺陷的能力,简单来说,还不具备“认知”App的能力。这个想法不是天方夜谭,事实上很多人正在往这个方向努力ing。自动化测试远远不只是在一个已有的工具上开发自己的脚本,达到所谓的一个通过率或覆盖率,更核心是思考如何在软件生命周期各个阶段提升产品研发效能及稳定性甚至用户体验。
2、技术新人如何学习自动化测试:

1)首先简单了解下QA在软件研发迭代过程中的定位
传统软件使用较多的是瀑布模型。测试人员的活动区域是有限的,活动的时间区域主要是提测至上线前。


传统瀑布模型中,QA发挥的空间比较有限,质量压力都集中在测试阶段。随着软件规模的扩大、部门职能的划分、敏捷迭代模式的发展,互联网或者大型软件项目绝大部分演变成了DevOps:


DevOps是软件文化上的一次飞跃,它强调产品、开发、测试、交付、运维各个环节的沟通合作,将敏捷的方式延伸到整个产品。从QA的角度也有了测试左移和测试右移的概念。
测试左移:
测试左移的思想是需求阶段、开发架构设计阶段或是未到系统测试或集成测试前就进行测试,目标是降低时间成本、减少风险,从用户角度描述产品行为、从技术角度建立好开发与产品需求的连接,防止产品设计上的雷或缺陷。这有利于减少无效代码的开发、以投入更好的时间在正确的产品上。也可以在代码编写阶段进行单元测试或覆盖率统计。日常工作中,QA都期望只对修改的代码或受连带影响功能/需求进行测试,从而减少重复回归的工作量,即“精准测试”。但是实际上,往往得到开发同学的回复要么是“最好全回归或者核心流程全回归”,要么“是没关系的,就回归下A功能就好”(实际可能已经带雷上线了)。设想如果能够有个工具能够帮我们将需求与相关的代码调用栈联系起来,在相关代码依赖变动时都能够自动评估有效回归范围,可能是“精准测试”实现的一个方向(我相信业界应该已经有人在做了)。
测试右移:
测试右移简单来说是指产品上线以后开展的一系列质量活动。事实证明,在快速迭代以及产品复杂化、多样化的今天,几乎不可能做到0缺陷上线,当然,对硬件产品或涉及资金的产品而言,存在缺陷可能意味着产品召回或是资损,会给公司带来巨大损失,对于某些互联网产品而言,由于产品发布的天然优势,一般具备热修复、热发布能力,因此在时间和产品质量维度,可能会更强调快速上线,比如facebook就提倡灰度快速上线。因而如何监控产品的稳定性、第一时间发现线上用户问题、用户反馈并使问题及时得到解决、如何了解更好的用户需求(如AB测试)变成了QA在测试右移活动中的关注点。期间也有大量自动化测试可发挥的空间。
由此可见,QA发挥的空间是在整个软件的生命周期的,DevOps的理念也强调流程自动化,我理解的在各个阶段能够代替人工工作、提升测试效率的都可以称之为自动化测试。这也反过来要求QA具备更高的软件产品流程/风险意识以及更强的自动化理念、编码落地实践能力。

2)QA做自动化测试应该掌握哪些技术?


说到具体的技术,其它回复也有提到,感觉整体太散了,初学者可能有点摸不到边,不知从哪里开始,个人建议顺序是这样的:




那让我们先修炼下最基本的内功吧

a)软件工程&测试理论基础
各个公司产品形态迥异,因此也制定了不同的软件研发流程。大多数大公司都设置有运营、产品、视觉/交互、开发、测试、运维、技术支持、客服等岗位,应当明白各个角色的职责,以及了解整个产品运转的逻辑。至少应该了解所在公司的研发流程以及当前主流的研发流程(如敏捷开发Scrum),并在项目过程中积极思考,形成自身的软件意识与理念。在校的同学可以多在网上找找资料,有个大概了解。个人理解,软件工程本身是一个浩大的工程,也在日新月异不断地向前发展,它需要长期积累、不断修炼内功,并在实际项目中实践驱动,从业2年、5年、10年、20年都会有不同层次/深度的理解,自动化测试亦是如此。
关于测试理论基础这里不赘述了,网上资料一大把,搜白盒/黑盒、等价类、边界值等关键字就可以找到。

b)通用计算机基础(其实就是计算机专业相关的大学课程)

建议至少掌握一门编程语言(C/C++/Java/Python,推荐Python,学习成本相对更简单一些)。相比于特定需求/领域的开发人员来说,测试人员对编码技术要求相对会弱化一些(当然并不意味着不需要极客精神、架构思想)。涉及到Web、桌面GUI、Android/iOS的可以到具体应用再学习相应的框架。
掌握基本的数据结构以及在具体程序语言中的应用,例如:list、map。
掌握面向对象程序设计的基本思想。
掌握一种代码管理工具,如git、svn。
掌握Linux的使用及基本命令使用,如:cp、grep、vi/vim等。
掌握关系数据库的基本理论和关系数据库(如MySQL)SQL基本使用、NoSQL(如Redis)的基本使用。
掌握基础的计算机网络理论,如TCP/UDP协议、IP划分。
接下来,我们就需要站在巨人的肩膀上了。这部分可以根据实际需要进行学习,涉及的内容实在太多了,我这里主要从App自动化测试的角度给出一些工具使用、方向学习建议,大家搜关键字应该都能找到一些资料。

a) 服务端:
(1)白盒单元测试:Junit(Java)、unittest(Python)、gtest(C++)
(2)http接口测试:Postman
(3)抓包工具:Charles、Wireshark
(4)压测:Jmeter,在大厂里面都会有特定的一些写好的工具可以使用。
(5)链路依赖分析:梳理应用间的依赖关系,提供压测模型,大厂里面也有一些工具可以使用。
(6)监控&日志分析:应用稳定性监控,如qps、rt,服务器负载、cpu监控等。日志分析这块可以做一些基于规则的错误日志监控、甚至基于AI的方式(如:机器学习)对日志大数据进行聚类、问题分析/定位。

b) 客户端(Android/iOS/H5):
(1)UI:Appium、Macaca、Airtest
(2)性能(CPU/内存/帧率):Android Studio、Instruments(iOS)
(3)稳定性:Monkey
(4)兼容性:各种云真机平台
事实上,即使非常熟练掌握了以上工具,也无法达到完全释放人力的目的,甚至在自动化实践过程中会存在各种各样的问题(例如如何针对具体的场景设计自动化用例、提升覆盖率、如何维护/构造测试数据、如何进行精确校验、如何提高执行稳定性、如何缩短执行时长、如何监控线上问题等等)。
这就需要我们更加深度的去了解产品形态、在已有工具解决不了问题时,怎么去用创新的思维看待各个阶段面临的问题、甚至创造工具,这已经不仅仅只是技术本身的问题了,而是如何去挖掘、思考问题、如何去运用技术的问题了。实际上自动化测试可以归纳为如下几个阶段,这也是近2年智能化测试的研究方向:



3、另外,个人觉得目前市面上对自动化测试其实是存在的一些误区的:
1)认为自动化测试无所不能,只要有自动化,人工可以完全释放。对于复杂产品,目前来看,这几乎是不可能的。因此,目前市面上并没有类似“统一宇宙理论”的自动化测试工具。
2)自动化测试没技术含量(测试没开发有前途),如果仅仅是对工具使用,没有创造力,那确实没有什么太高的技术含量。但是如果是在DevOps各个阶段发挥最大价值,个人认为比传统意义的开发岗位难度更高,并且可发挥空间更大。举个例子,能否创造一种工具,能够根据视觉稿或者App UI自动生成测试用例(啊? 怎么可能,试想下人是怎么设计用例的,得益于AI技术的发展,这完全有可能,目前也有一些根据视觉稿生成前端代码的工具了)。我不觉得这是一个没技术含量或没有价值的自动化测试。近些年,质量领域的大会越来越多,大家也可以关注关注。例如QCon、MTSC、TICA、Tid等等。
3)自动化覆盖率至高无上。这部分往往来自人们对自动化测试过高的期望,为了提升覆盖率,未考虑好ROI,以至于南辕北辙,入不敷出。著名的测试金字塔给了最好的解释。
4)人云亦云,泛而不专。相比于开发人员,个人认为QA开展自动化测试需要掌握的技术知识可能会更广泛,例如:开发人员可能专注于Android、iOS或者Java后端,亦或是某类AI算法,即对开发人员的要求是对某一技术掌握的足够深入,对QA来说,精力有限的情况下,可能又要懂点服务端、又要懂点客户端、又要懂点算法等等。再加上各种产品、技术形态不一,也衍生出了形形色色的工具和研究方向,初学者容易受到误导,不知所措。自动化测试和开发角色一样,也是一个逐步积累、实践的过程。
关于自动化测试确实有非常多的内容可以交流、学习,篇幅有限,先写到这里啦。以上内容是个人对自动化测一些理解,当然,如果继续往上走,到管理者,需要掌握的知识也远不止这些了。
最后插播一个招聘广告,大淘宝技术质量拥有业界强大的测试开发团队,并一直关注自动化测试领域,在这里可以经历世界最大的双十一、春晚等超大并发场景;可以接触到全链路压测、海量的数据处理、人工智能推荐算法等领域;可以学习到业界最前沿的测试技术。我们团队负责阿里新零售领域IM消息平台的质量保障,通过IM即时通讯产品(push,聊天机器人、单聊、群聊、消息号和聊天室)构建连接消费者和数百万商家,处理百亿级规模的消息,为上百家APP提供安全、稳定、标准化的电商组件SDK。团队探索智能化测试,将AI能力在测试开发领域落地,走在行业前沿。欢迎有相同兴趣的同学加入我们。
(本篇回答作者:阿里巴巴大淘宝技术 荣木)

——————————————————————————————————————————

阿里巴巴集团大淘宝技术官方账号。
点击下方主页关注我们,你将收获更多来自阿里一线工程师的技术实战技巧&成长经历心得。另,不定期更新最新岗位招聘信息和简历内推通道,欢迎各位以最短路径加入我们。
阿里巴巴大淘宝技术
cfang99 发表于 2023-10-22 16:08:51|来自:中国 | 显示全部楼层
各位想要转行软件测试的朋友们,虽然学习入门很容易,但是千万不要做一个功能测试。
已经在职的朋友们千万不要温水煮青蛙,应该要想开发一样,不断的学习,提高自己的变成水平,这样才不会有什么危机感。
一、测试人员的定位

只有知道企业需要什么样的软件测试,才能找到学习的重点。
1.1 具备软件测试思维

这就是要对软件测试,有比较清楚的认识,对测试流程有全局感。能够从各个方面对软件进行测试。这就算是有测试思维了。
所以在这个阶段我们的学习目标是:1. 熟悉计算机相关概念;2. 掌握基础的测试理论;
1.2 写测试用例

初级测试人员需要具备做事情的能力,在测试过程中软件测试岗位的人员最多的就是写测试文档,这其中就包括了分析需求/测试用例。
所以在这个阶段的学习目标是:

  • 1. 掌握测试的基本概念和测试常见分类;
  • 2. 熟练掌握黑盒测试用例设计方法,进行功能测试用例设计;
1.3 执行测试,缺陷记录

在实际工作中,遇到问题,需要会在缺陷管理工具上记录问题。
所以这个阶段的学习目标是:

  • 1.熟练掌握缺陷报告的编写;
  • 2. 熟悉测试管理工具禅道和JIRA的使用
  • 3. 掌握项目测试流程;
以上三点全面掌握基本就算是入门软件测试了,要是放在两三年前,找到一份手工测试的工作不难。但是如今2021年了,还需要大家更入学习。
二、软件测试自学

1.1 学习目标


  • 1. 熟悉计算机相关概念;
  • 2. 掌握基础的测试理论;
  • 3. 熟练掌握HTML常用标签和语法规范;
  • 4. 掌握使用CSS定义网页样式;
  • 5. 掌握js的基本用法;
1.2 知识点

知识框架详细解析
计算机基础计算机组成部分、操作系统分类、B/S和C/S架构、常用DOS命令、服务器域名
测试理论软件测试的目的、软件测试定义、软件测试原则、产品质量模型、测试基本流程
HTML基础软件测试的目的、软件测试定义、软件测试原则、产品质量模型、测试基本流程
CSS基础CSS基础语法、CSS四类选择器、常用文字属性、行高属性、边框、盒子模型、内外边距
JavaScript基础JS基础语法、JS引入方式
1.3 课程分享

软件测试入门到项目实战,7小时从小白到白领的软件测试快速入门课程_哔哩哔哩_bilibili​www.bilibili.com/video/BV1Zg411M7rd?spm_id_from=333.999.0.0二、Linux和数据库

2.1 学习目标


  • 1. 掌握Linux操作系统按照和配置;
  • 2. 熟练掌握Linux常用命令;
  • 3. 掌握数据库增删改查操作;
  • 4. 熟悉数据库索引、视图、事务、常见函数等高级功能;
  • 5. 掌握Redis的string类型、hash类型、set类型、list类型等基本类型和操作;
2.2 知识点

知识点详细内容
Linux(熟悉)操作系统介绍、操作系统发展历史、CentOS图形界面、文件和目录、常用LINUX命令使用、vim文本编辑器的使用
数据库介绍(熟悉)数据库基本概念、关系型数据库介绍、MySQL安装与使用、Navicat使用
SQL语句(了解)数据表操作、数据操作-增删改查、条件查询、排序、聚合函数、分组、分页、连接查询、自关联、子查询、子查询演练
数据库高级功能(了解)数据库设计、命令行操作数据库、函数、存储过程、视图、事务、索引、外键、用户密码
Redis数据库功能(掌握)掌握Redis的string类型、hash类型、set类型、list类型等基本类型和操作;
2.3课程资源分享

黑马程序员Linux运维工作场景解决方案零基础到就业_哔哩哔哩_bilibili​www.bilibili.com/video/BV14b411A7gi?spm_id_from=333.999.0.0黑马程序员MySQL全套教程,MySQL从基础到黑马订单案例实战_哔哩哔哩_bilibili​www.bilibili.com/video/BV1vi4y137PN?spm_id_from=333.999.0.0三、测试基础

3.1 学习目标


  • 1. 掌握测试的基本概念和测试常见分类;
  • 2. 熟练掌握黑盒测试用例设计方法,进行功能测试用例设计;
  • 3. 熟练掌握缺陷报告的编写;
  • 4. 熟悉测试管理工具禅道和JIRA的使用
  • 5. 掌握项目测试流程;
  • 6. 掌握Web项目功能测试分析和用例编写;
  • 7. 熟悉测试计划,测试方案,测试报告的核心内容
  • 8. 掌握功能测试与数据库的关系
  • 9. 掌握Fiddler工具的使用
3.2 知识点

知识点详细内容
软件测试理论软件测试的分类,软件开发模型和测试模型,软件的质量模型,测试用例的定义和要素
测试用例设计等价类方法、边界值方法、因果图、判定表、状态迁移法、正交、场景
缺陷管理缺陷定义、缺陷的判定标准、缺陷报告、缺陷跟踪流程
web项目实战搭建项目的测试环境,如何快速熟悉项目,项目的测试流程,测试计划和方案,功能测试分析,状态迁移法的使用,流程测试分析,非功能测试分析,测试报告编写,Fiddler抓包
app实战
测试管理工具禅道的使用,JIRA的使用
3.3 课程分享

黑马程序员软件测试多角度带你编写更规范的黑盒测试用例_哔哩哔哩_bilibili​www.bilibili.com/video/BV1QJ411g7nR轻松掌握测试计划编写,软件测试初学者必会【黑马程序员】_哔哩哔哩_bilibili​www.bilibili.com/video/BV11J41137jE软件缺陷报告与JIRA工具使用——测试人员日常必备技能_哔哩哔哩_bilibili​www.bilibili.com/video/BV1jE41117sC
四、编程+数据结构

4.1 阶段学习目标


  • 1. 掌握Python基础语法, 具备基础的编程能力;
  • 2. 建立编程思维以及面向对象程序设计思想。
4.2 知识点

框架内容
Python环境配置Python开发环境的搭建、Pycharm使用
Python基础变量以及变量的类型、标识符和关键字、变量名命名方式、算数运算符、变量数据类型转换、输入和输出、注释、if语句基本格式、if…else…语句、if…elif..else语句、逻辑运算符、比较关系运算符、运算符优先级、while循环语法格式、while嵌套应用、break的用法、continue的用法、列表概念及操作、元组概念及操作、字典概念及操作、字符串概念及操作、集合概念及操作、for循环及for…else用法、函数的基本语法、函数执行流程、文档注释、带参数的函数、带返回值的函数、函数的嵌套调用、匿名函数、递归函数、局部变量和全局变量、引用、文件的概念、文件的打开与关闭、文件读写, 以及文件定位读写、文件、目录相关操作
面向对象面向对象介绍、类和对象的概念、魔术方法的意义及作用、对象成员的访问控制权限、继承的概念及意义、继承、多层继承和多继承、多态的概念以及应用、类属性和实例属性、实例方法、类方法、静态方法、设计模式: 单例模式
异常处理理解异常的作用、捕获异常、异常的传递规则、自定义异常
模块和包模块和包的概念、__all__的用法、import语句用法、from...import...用法、from...import * 用法
4.3 课程分享


黑马程序员Python教程_600集Python从入门到精通教程(懂中文就能学会)_哔哩哔哩_bilibili​www.bilibili.com/video/BV1ex411x7Em?spm_id_from=333.999.0.0
五、web自动化

5.1 学习目标


  • 1.能够熟练搭建Web自动化测试环境;
  • 2.熟练掌握元素的定位方法和元素操作;
  • 3.掌握鼠标键盘操作及HTML特殊元素的处理;
  • 4.掌握使用UnitTest管理自动化测试的脚本;
  • 5.熟练掌握PO模式的设计思想,并能够对页面进行封装;
  • 6.掌握数据驱动的实现方式;
  • 7.掌握日志的相关概念,以及日志的收集处理;
  • 8.掌握在实际的项目中如何灵活运用自动化的相关技术。
5.2 知识点

框架内容
web自动化入门自动化测试的理论知识、主流的Web自动化测试框架介绍、Selenium的发展历史及工作原理、元素查看工具使用、环境搭建
web自动化基础素基础定位方法、Xpath和CSS元素定位方法、元素常见操作、浏览器操作方法、鼠标键盘操作、显示等待和隐式等待、HTML特殊元素处理、窗口截图、验证码处理
web自动化中级UnitTest框架、Fixture、UnitTest断言、参数化、测试报告
web自动化高级PO模式、数据驱动、日志处理
项目实战自动化测试流程、项目自动化框架设计、自动化代码实现
5.3 课程分享

黑马程序员首次公开丨黑马头条软件测试实战项目 完整版_哔哩哔哩_bilibili​www.bilibili.com/video/BV1N5411p7ky?spm_id_from=333.999.0.0六、移动自动化

6.1 学习目标


  • 1.掌握移动端APP测试特性;
  • 2.能够熟练搭建移动自动化测试环境;
  • 3.熟悉appium的工作原理;
  • 4.熟练掌握ADB工具的使用;
  • 5.熟练掌握元素的定位方法、元素操作和手势操作;
  • 6.掌握单元测试框架pytest的使用;
  • 7.掌握YAML数据读写;
  • 8.掌握使用allure生成测试报告;
  • 9.熟练掌握PO模式的设计思想;
  • 10.掌握数据驱动的实现方式;
  • 11.掌握Git的使用方式;
  • 12.掌握Jenkins持续集成的环境配置;
  • 13.掌握在实际的项目中如何灵活运用移动自动化的相关技术。
6.2 知识点

框架内容
移动自动化特性APP应用系统架构、测试环境及发布平台、APP敏捷开发模式、APP应用测试要点、业务功能测试、兼容性测试、安装卸载升级测试、交叉事件测试、Push消息测试、性能测试、用户体验测试、稳定性测试
移动自动化基础移动端测试分类及特点、ADB命令及Monkey使用、appium环境搭建、appium工作原理
移动自动化中级APP和手机系统操作、元素定位、元素操作、高级手势操作、混合APP测试、PyTest测试框架、定制测试报告、YAML数据读写
移动自动化高级PO模式、数据驱动、Git、Jenkins持续集成
实战APP项目实战
6.3 课程分享

黑马程序员零基础入门移动自动化测试——Appium框架_哔哩哔哩_bilibili​www.bilibili.com/video/BV1B441197rZ?spm_id_from=333.999.0.0轻松教你使用Appium进行IOS真机自动化测试【黑马程序员】_哔哩哔哩_bilibili​www.bilibili.com/video/BV1yE411r7WU?spm_id_from=333.999.0.0软件测试实战教程 《学车不》APP实战软件测试_哔哩哔哩_bilibili​www.bilibili.com/video/BV1fK411M7BR?spm_id_from=333.999.0.0七、接口测试

7.1 学习目标


  • 1.掌握接口及接口测试相关概念;
  • 2.掌握使用Postman进行接口测试;
  • 3.熟练掌握数据库的基本操作和事务操作;
  • 4.掌握requests库使用及脚本封装;
  • 5.掌握接口测试框架的设计和封装;
  • 6.掌握使用持续集成工具管理接口测试脚本;
  • 7.掌握在实际的项目中如何灵活运用接口测试的相关技术。
7.2 知识点

框架内容
接口测试基础接口及接口测试概念、HTTP协议、接口规范、项目环境说明、接口测试流程
PostmanPostman介绍和安装、Postman基本用法、Postman高级用法、Postman测试报告、项目实战
数据库操作数据库介绍、数据库基本操作、数据库事务操作
代码实现接口测试Requests库、集成UnitTest、接口测试框架开发、项目实战
持续集成持续集成介绍、Git、Jenkins、持续集成之Postman、持续集成之代码
接口测试扩展Mock测试、接口测试总结
7.3 课程分享

小白也能听懂的接口测试教程【黑马程序员出品】_哔哩哔哩_bilibili​www.bilibili.com/video/BV1LJ41137b5?spm_id_from=333.999.0.0
python实现头条项目接口自动化测试实战_哔哩哔哩_bilibili​www.bilibili.com/video/BV1WJ411S7PH?spm_id_from=333.999.0.0软件测试教程|巧用Python实现接口自动化测试【黑马程序员】_哔哩哔哩_bilibili​www.bilibili.com/video/BV1fE411C7ET?spm_id_from=333.999.0.0
八、性能测试

8.1 学习目标


  • 1.能够熟练搭建性能测试环境;
  • 2.掌握性能测试基础理论;
  • 3.掌握Jmeter常用组件使用;
  • 4.掌握Jmeter编写和录制性能测试脚本;
  • 5.掌握基于jmeter实现单一和混合场景搭建;
  • 6.掌握思考时间、事务、逻辑控制器在性能测试场景的应用;
  • 7.掌握Jmeter常用性能插件进行图表分析;
  • 8.掌握Linux服务型性能监控方法和指标;
  • 9.掌握数据库监控和调优的常见方法。
8.2 知识点

知识点内容
性能测试基础性能测试理论、性能测试分类、性能测试常用指标、性能测试流程
性能测试工具常用性能测试工具、Jmeter环境搭建、Jmeter功能概要、元件作用及执行顺序、线程组、参数化、断言、关联、连接数据库、逻辑控制器、定时器、分布式、测试报告
接口性能测试项目API文档分析、接口清单梳理、接口脚本设计、并发数据计算、逻辑控制器项目应用、单一场景搭建、常用响应图表插件及应用
web性能测试本录制、正则过滤、cookie管理器、事务控制器、思考时间、混合场景搭建、web性能脚本执行与分析
性能测试调优windows服务器性能监控、linux服务器性能监控、性能测试报告
8.3 课程分享


理论到实战结合-带你掌握AirTest自动化测试_哔哩哔哩_bilibili​www.bilibili.com/video/BV1dE411K7XN?spm_id_from=333.999.0.0
九、黑马说

9.1 写文档

在上面的头条实战课程中,学会分析它的界面,功能点,并且学会分析出如果这个软件要你测试应该从哪些方面上手才能保证软件质量。
学会一边分析一边在网上找测试用例模板,开始写测试用例,多分析多写。
9.2 执行测试

要学会培养自己对问题的敏感度,注意提交bug和跟踪bug。一个项目远远不够,大家可以多找一些项目,做一些测试任务。
9.3 多看

多看别的技术博主写的技术文章,有的是介绍技术的也有的是介绍这个行业的。不管是什么咨询大家要多多关注,对自己也会有一定的提升。
我是 @黑马程序员 ,认准知乎蓝V,在学习软件测试的过程中,可以随时有问题就问,免费答疑!
全年不休 发表于 2023-10-22 16:09:07|来自:中国 | 显示全部楼层
新人学软件测试,难的不是没有资料,而是没有高效的学习路线。

别人3个月已经找到了月薪10K以上的工作,你却还是在苦恼测试用例怎么写。
史上最详细的软件测试学习路径,按照这个路线学习找不到工作,算我输!

我根据薪资的不同,划分成以下几个阶段具体说一下:

  • 月薪5-9k:从零基础入门到能够找到工作
  • 月薪15-25k:测试在职搞定性能测试和自动化测试
  • 年薪30W+:搞定测试开发,进入一线大厂
这里为你准备了200G软件测试教程资料,包括用例模板、计划模板、报告模板、性能调优、自动化教程、测开模板、简历模板、面试技巧、大厂真题等!点击下方自行获取:



第一个阶段:月薪5-9k,刚刚入行,先学会功能测试!

可能你是刚毕业的学生,也可能你是打算转行进入软件测试这个行业,那么首先以下基本的理论你是必须要掌握的:
软件测试的定义、生命周期、工作流程、需求分析;
测试用例的设计、编写、评审;
bug的基本知识以及禅道的使用;
测试计划、测试报告的编写;
SVN、Git版本控制工具的使用;
搞定上上面的这些基本必备内容,就已经知道可以做具体的实战内容,这个时候最好是先找一个web测试项目去做一下,假如一个项目拿到手之后,按照下面的一套流程跑一遍:
发布项目进行立项,建立项目组进行分工;
需求评审,学会如何看需求文档,进行需求分析,罗列测试点;
整理测试点,编写测试用例,然后进行用例评审;
执行测试,比如功能、界面、前后台、兼容性、数据库,对于发现的bug提交到禅道;
分析、总结、编写测试报告;
这个流程完整的跑一遍之后,只能说对于整体的测试流程算是掌握了,但是仍然不足以找到一份合适的工作,想要学会做功能测试,以下的内容也是必须掌握的:
Linux相关技能
操作环境、命令、安装数据库、部署测试环境等
数据库相关技能
各种命令用法、字段、增删改查
接口测试相关技能
接口测试基本理论、http协议、测试方法;
接口测试需求分析、用例编写、评审;
几种工具的掌握,jmeter、postman、soupUI;
APP测试相关技能
安装/卸载、离线、UI、登录等测试内容;
兼容性测试、monkey、fiddler抓包;
OK,搞定了这些,恭喜你已经可以投出你的简历去寻找一份测试的工作了!
简历不会写?文末帮你解决这个问题!
如果你已经入行了,且能够正常上手业务了,那么你就要思考第二个问题:如何获取更高的薪资?
如果你是测试在职,我组建了一个2022年名企大厂测开岗位内推群,去年已经内推200+的同学进入大厂,最高的年薪达到70W+,点击下方进入内推通道:
第二个阶段:月薪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万以上是非常轻松的事情了!当然如果你想成为技术专家,或者想带领技术团队进行实施落地,那么请你接着往下看,关于年薪30W+的测试开发需要学习哪些内容:
完善测试技术体系
Linux、docker、shell、SQL、Python/java
打牢自动化测试技术基础
web自动化测试
selenium测试框架
PageObject设计模式、原则、演练
APP自动化测试
Android自动化测试框架
appium高级应用于原理剖析
APP自动化测试实战
测试框架封装改造
ios自动化测试
移动专项测试
健壮性测试、弱网测试、崩溃检测、耗电量分析等
移动端性能测试
移动端安全测试
接口自动化测试
接口协议与抓包、代理技术与mock
接口自动化测试框架、HTTPrunner测试框架
dubbo接口自动化测试
接口管理工具swagger、接口安全测试
docker容器技术
docker容器、docker镜像
持续集成/持续交付/devops
jenkins持续集成
Jenkins持续交付


以上内容绝对不是泛泛而谈!建议收藏或关注,日后去验证。
如果你是测试在职,那么相信文章后半段的内容,你一定能够看到其中的价值所在!毕竟按照这个路线和内容去学习的同学,已经进入了BAT等一线的名企,目前最高级别是阿里P7,年薪最高是60W+!
作为跳过很多坑的“坑主”,送你一个小小的建议:
你很优秀,即使现在什么都不会,以后依然会很优秀,千万不要迁就进入外包:
1. 外包公司很少具备代码权限,执行的多是低端任务,外包测试人员容易浪费大量时间在重复点点点上,而难以接触项目核心深入学习,掌握高阶技能。
2. 外包公司项目类型不固定,无法掌握深度的测试体系知识,获得完整系统的业务知识和项目实战经验。
你看中的是外包的薪资,外包看中的是你廉价的劳动力,如果能力不足,就沉下心学习!
未来你一定会成为高级测开!

最后再次奉上200G软件测试教程资料,包括用例模板、计划模板、报告模板、性能调优、自动化教程、测开模板、简历模板、面试技巧、大厂真题等,一定有你需要的!点击下方自行获取:
福利福利:

<a data-draft-node="block" data-draft-type="ad-link-card" data-ad-id="Plugin_b449ad7c533d1eb8392d7f528a7432ba">推荐阅读:
加入圈子:软件测试开发成长之路​www.zhihu.com/club/1190955713135198208?ab_signature=CiRBSEFDd3ZTdWx3eExCU0NvT0RyUnFMTjZPYkZqU2NkenB3Yz0SIDZiMDBmYmIzYmVmMzZlNmUzN2QyZWI0YzQxZTZjOWY4GhAIAhIGNi4zNS4wGgQyMDQy​www.zhihu.com/club/1190955713135198208?ab_signature=CiRBSEFDd3ZTdWx3eExCU0NvT0RyUnFMTjZPYkZqU2NkenB3Yz0SIDZiMDBmYmIzYmVmMzZlNmUzN2QyZWI0YzQxZTZjOWY4GhAIAhIGNi4zNS4wGgQyMDQy
更多技术干货请关注霍格沃兹测试学院官方机构号:测吧@测吧
测试开发是什么?为什么现在那么多公司都要招聘测试开发?
软件测试的岗位会越来越少吗?
软件测试真的干到35就干不动了吗?
二十五岁零基础转行做软件测试怎么样?471 赞同 · 52 评论回答472 赞同 · 52 评论回答测吧:软件测试如何获得高薪?144 赞同 · 8 评论文章144 赞同 · 8 评论文章

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则