如何从零开始学习软件测试?

谈到如何学习软件测试,首先最重要的是要先学会软件测试的思想和思维

很多同学都会先说,明明是学个技术。还吹个啥牛,学思想。很多时候,技术的问题的根源是底层思维的问题。只要底层的思维,原理都懂了,方法是可以变化的,很多时候方法只是思维的表现形式而已。

很多同学一开始就谈,我们如何学习,好的学习方法是什么。但是严重忽略了底层的思维。底层的思维又是什么决定的呢?是思想,思想其实就是态度,你学个技术是兴趣,还是直白点就是为了赚钱。我们的思想在哪里,结果就在哪里。但通常情况下,很多人都是冲着这个行业好赚钱,有前景来的。这就决定了最终的高度。所以一开始即便我们就是为了这个目的而来的。那也没有问题。因为如何有一天这个行业不是那么赚钱了。你还是可以转行的。

那我们就来谈底层的思维问题:

软件测试的初始定义是寻找软件中存在的问题和错误的。那么第一个底层思维其实也很简单。既然是判断错误,那么我们必须先知道对的标准在哪里?当我们把对方面弄清楚了,错误其实就轻而易举的就出现了。那这个标准的在哪里?系统测试的标准是软件需求规格说明书,集成测试的标准是概要设计说明书,单元测试的标准是详细设计说明书。所以做测试方法固然重要,但是比方法更重要的首先是先把这些标准或者说依据都弄清楚了。

综上所述,我们学好软件测试。先把这些文档都理解清楚了,我们再来谈怎么学。谨以此文,分享给后来的学习者。我们看到一门技能真正的本质是什么。这才是学习的不二的法门!


如果对于时间充裕,自学能力强的同学来说,在网上找找视频,多看看理论知识,再学习相关的软件软技能,如果时间多,学习python掌握一门语言,就差不多了。

但是如果对于时间不足,又懒惰的人来说,找一个靠谱的培训公司,更能让你快速上手,毕竟时间就是金钱,光有理论,没有实践,对于面试来说还少了点。

中公优就业专注于零基转行软件测试培训行业,如有意向私聊获取联系方式


软件开发专业可以0基础学习的。软件开发的毕业生,起点都很高,入职既可做数据库工程师、软件安全工程师、软件管理员,随着经验的积累可以做高级网路工程师、项目主管、项目经理,如果你有魄力的话,还可以自己创业。


软件测试在计算机领域当中属于相对于简单的方向,测试行业的职业属性属于典型的入行入门非常容易,但是深入难,需要一定的知识广度和学习能力。

软件测试是一个入门相对简单,技术含量也很高的工作,涉及的范围非常宽泛!

涉及到的知识点有:

1、测试需求分析方法:产品需求分析、用例设计、缺陷定义、测试报告、探索性测试方法等

2、测试管理工具QC、缺陷管理工具JIRA、项目管理工具禅道

3、企业级环境部署:虚拟机、LINUX命令、环境搭建、中间件tomcat、数据库安装、应用软件部署等

4、数据库专业知识:MySQL、redis

5、编程语言:python/java

6、自动化测试相关知识:自动化测试架构、接口自动化、web端自动化、移动端自动化、持续集成、质量管理平台搭建等等,工具会涉及到selenium、unittest、svn、jenkins、fiddler、postman、git等等

7、企业级性能诊断:性能测试基础、性能测试工具、性能调优、性能测试报告撰写


很多朋友想要入行软件测试,但是都不知道该怎么学。对于零基础的朋友,应该怎么去学习软件测试。学习软件测试有2条路可以选。

最省事的当然是找个靠谱的培训机构去培训啦,你就什么都不用想了,跟着培训机构认真地学习就行了。第二就是怎么去自学软件测试。毕竟软件测试的门槛真的挺低的。

一、自学

第一阶段测试基础

测试基础是软件测试最重要的部分,只要你是做测试的,不管是什么测试,测试的基础、理论知识都是必须学会的。

第二阶段工具学习

性能测试工具:loadrunner、jmeter。

接口测试工具:postman

抓包工具:fiddle

数据库管理工具:Navicat

项目/BUG管理工具:禅道、QC

搜索工具:百度、谷歌

第三阶段代码学习

关于编程语言的选择,我推荐Java或者python

第四阶段架构学习

前三个阶段学习完成后,各位就应该考虑怎么写代码更合理了。怎么去测试才更全面。怎么才能更好地保障项目的质量。我认为,在这个阶段,应该回头重新学习一遍测试基础。因为这个阶段的提高是思想、方法的提高了。在这个阶段你要自己去发现、为什么要那样做。

二、报培训机构

选择培训机构一定要自己去多了解才做出决定,毕竟不是所有的培训机构都负责,当初我的大学同学都是在星捷教育机构培训的,出来就业薪资都很可观,而且他们百分百就业,是老师亲自带着去就业,当初我们班老师也是给我们推荐这个机构,因为我们的就业率大多都是这个机构提升起来的。所以我们班大多数人都是去培训差不多三个月就有了工作。没有就业的同学都是干着低薪资的。

所以选择自学或者报班都是自己去选择,并不是所有的培训机构都是垃圾,毕竟他们也是成立了好多年的老机构,有着资源去让学生学习,有着专业的老师团队,有了效果他们才敢在社会上说自己能让你们百分百就业。没有这个能力毕竟也不敢说狂话,这样是会付出代价的。自学的是适合学习能力强的人,实践操作自己也要会找项目去做。


零基础学习软件测试无非有两种方式:自学和培训。

关于自学,无需多言,如果你自律性强,具备学习能力、有专研问题的好奇心、以及解决问题的能力,那么自学是完全ok的。

如果你选择培训,那么就分线上课程培训以及线下面授培训。

线上课程可以在网上找,也可以报一些培训班的课,这种学习效率一般会高于纯自学,因为老师会有一些项目演练,不至于让你只学习理论知识。当然,你学完后能不能融会贯通、合理运用又是另一回事了。

线下面授班因为场地、师资、以及各种硬件设施等成本,学习费用一般高于网教课程,面授班最大优势在于有问题可与老师面对面直接解决,学习效率最高,并且有一个技术学习环境。

总结来看,在线课程更适合有行业基础经验的工作者,他们利用自己下班后或周末的碎片时间给自己充充电,以此来提升技术能力。对于零基础转行者而言,还是线下面授班的学习效率更高一些,花最少的时间学更多的知识,但要考虑下自己的经济情况。


软件测试基础知识:

1.软件测试的定义(软件测试的概念)

2.软件生命周期(瀑布型、V型、W型、敏捷开发)

3.软件测试的分类(黑盒测试、白盒测试、集成测试、系统测试、性能测试、安全测试、自动化测试)

4.软件测试流程(测试需求分析阶段、测试计划阶段、测试设计阶段、测试执行阶段、测试评估阶段)

5.软件测试方法(等价类、边界值、因果图、判定表、场景法、错误推测法)

6.软件测试用例(用例编号、测试功能、测试标题、用例优先级、前置条件、测试数据、测试步骤、预期结果、实际结果)

7.缺陷(bug)的定义(bug的生命周期、bug的类型、bug的严重级别、bug的管理、bug的提交、bug的跟踪。)

软件测试从入门到精通教程


对于很多零基础想转行软件测试的小伙伴来说,怎样从零开始学,这是一个非常重要的问题。理清了思路和步骤,才能开始高效的学习。那么作为一个零基础开始,可以从以几个步骤去理清自己的学习过程。

1.选择适合自己的学习方式

零基础转行学习一般可以选择自学或者是参加培训。这两种学习方式各有优劣,自己可以结合自己的实际情况来做选择。

自学,优势是可以自己慢慢摸索,在整个过程中可以培养自己的学习能力,资料整合的能力,还有就是解决问题的能力。缺点就是,耗时比较长,对自制力要求很高,很多小伙伴在学习的过程中遇到困难不能及时去解决,就会很容易中途放弃。

参加培训的有点就是学习效率高,耗时短。在培训机构有专业的老师,学习的课程内容也是现成的,不用在花费时间去搜集。如果是参加线下培训,那么整个学习模式就是和高中时的学习模式非常的相似。有专业老师带,能在较短的时间内,系统的掌握相应的知识,整个学习过程有老师辅导,有同学一起奋进,坚持学完是相对容易。缺点就是,目前市场上软件测试培训学费都是一两万,费用会多一些。

2.确定需要学习哪些内容

如果是参加培训学习,那么这个环节可以直接略过了,但如果是自学,要就需要把每个阶段需要学习的内容都梳理得比较清晰,这样才能有利于学习的展开。一般而言,从零开始学习软件测试,可以为自己分几个阶段,由于培训机构的培训模式是比较成熟的,所以自学的小伙伴也可以借用培训机构对知识和技术的安排。

第一阶段可以学习一些基本理论知识,如计算机理论知识,软件测试理论基础知识。第二阶段就可以开始学习测试过程和方法,测试过程管理,软件需求管理,测试需求分析,测试用例设计,Mysql数据库常用操作,Web测试方法及项目实战等知识和技术。

软件测试需要掌握的知识还是挺多的,在学习的过程中需要把这些知识点都罗列出来做好规划。

学习的过程重在做好规划,然后按照规划去坚持,这样才能有效果的呈现。

更多关于软件测试的学习内容可以私信汇智妹,详细了解,能帮助到大家非常开心!


软件测试的基础学完了过后,应该学习工具了。

其实学工具真的很容易,所以大家不用去纠结工具的选择。

把最基础的几个工具学习了就行了,以后用到什么工具就去学什么。

下面我会列几个必学的工具,不用太精通,会用就行了。

性能测试工具:loadrunner、jmeter。

接口测试工具:postman

抓包工具:fiddle

数据库管理工具:Navicat

项目/BUG管理工具:禅道、QC

搜索工具:百度、谷歌

以上的这些工具都是纯图形化的,很好掌握,估计就性能测试工具稍微会费点时间。

第三阶段代码学习

好了,学完了以上两个部分,恭喜你,你已经是一个出色的初级测试工程师了。

接下来,你要考虑你的发展方向了。

是成为一个自动化测试工程师呢?

还是性能测试工程师呢?

还是安全测试工程师呢?

啊!这个问题好难!我也不知道该怎么选。

反正我啥都会一点,哪个岗位都能去面一面。

关于方向的选择,看我的这篇文章。

软件测试该如何提升自己

嗯,相信你心中已经有了答案了,那我们继续往下面说。

这个阶段,我们应该学习代码了,关于编程语言的选择,我推荐Java或者python。

还有数据库也是必须掌握的!在工具篇的学习里,我认为你已经可以通过navicat学会了基本的增删查改了。

那你在这个阶段就应该学会更复杂的SQL语句的编写了,也应该会用命令行工具了。

嗯,加油,各位先学习mysql就好,这个用的人多。

所以现在各位可以去学习编程语言了,不过不用像开发那样,学的那么深入。

比如Java,只需要学完JavaSE的部分就够你用了。

python的话也是一样的,把基础的部分学完就行了。

总之前期你两者二选一的学习就OK了。

第四阶段架构学习

前三个阶段学习完成后,各位就应该考虑怎么写代码更合理了。

怎么去测试更全面。

怎么才能更好的保障项目的质量。

我认为,在这个阶段,应该回头重新学习一遍测试基础。

因为这个阶段的提高是思想、方法的提高了。

上面讲的都是教你应该怎么做。

在这个阶段你要自己去发现、为什么要那样做。

跨过了这个阶段就基本上可以成为专家了。

学习都是水到渠成的,在这个时候,你应该已经掌握了不少框架了,甚至自己也能开发合适的框架了。

自动化测试框架、性能测试框架等等。

已经有了属于自己的一套东西了。

在群里或者论坛上去装逼、别人都会尊称你一声大佬了。

可能你也学会了一些其他的技术了,甚至在往全栈等方向跨进了。

总之,到了这个阶段就没什么学习路线了。

都是靠自己的悟性了。


本人已经从事软件测试行业近10年的时间了,一直在帮助测试小白升职加薪。软件测试这个行业其实入门并不难,功能测试阶段是完全可以自学的。后面的接口、性能、自动化、数据库、Linux、抓包、协议这些内容的时候,多看看网课。

软件测试基本概念

软件质量

ISO9126中定义的软件质量是:软件满足规定和潜在用户特求特性的总和,而2001年的软件国际标准中,把软件质量分成了:内部质量、外部质量、使用质量这三个部分。也就是软件满足规定和用户需求的能力,要从软件在内部、外部和使用中的表现来衡量。

内部:单元测试、安全性能测试等....

外部:系统功能测试、界面测试等...

使用表现:易用性测试,用户体验性测试等

软件测试与质量保证的区别(QA与Tester区别)

质量保证(QA)是通过预防、检查和改进来保证软件质量,即全面的质量管理与过程改进来开展质量保证工作;软件测试是执行软件,对开发文档和源代码进行走查,以找出问题,报告质量。

按软件开发阶段划分

1)单元测试:又称模块测试,对程序模块进行检验。

2)集成测试:又称组装测试,检验程序单元的接口关系。

3)确认测试:通过检验和提供客观证据,证实软件是否满足特定的预期的用途要求。

4)系统测试:确认系统是否达到目标要求,对集成的硬件,软件系统进行测试。

5)验收测试:按照项目任务书或合同。供需双方约定的验收依据文档进行的整个系统的测试与评审,决定是否接受或拒绝系统。

按测试的实施组织划分

1)开发方测试:又称验证测试,或α测试

2)用户测试:又称β测试

3)第三方测试:又称独立测试

α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。α测试的目的是评价软件产品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持)。尤其注重产品的界面和特色。α测试可以从软件产品编码结束之时开始,或在模块(子系统)测试完成之后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。

β测试是指软件开发公司组织各方面的典型用户在日常工作中实际使用β版本,并要求用户报告异常情况、提出批评意见,然后软件开发公司再对β版本进行改错和完善

按测试技术划分

1)白盒测试:对内部结构进行分析,检测寻找问题。

2)黑盒测试:通过软件的外部表现来发现缺陷和错误。

3)灰盒测试:介于白盒与黑盒之间,关注输出对输入的正确性;同时也关注内部表现,只通过一些表征性的现象、事件、标志来判断内部的运行状态。

测试类型

1)功能测试

功能测试是一个试图发现程序与其外部规格说明之间存在不一致的过程。外部规格说明是一份从最终用户的角度对程序行为的精确描述。测试时按照科学方法设计的测试用例执行测试,在优先保证测试用例执行完全的前提下,再根据对业务的了解和经验性的判断进行探索性测试。

2)界面测试

界面测试简称UI测试,界面为用户与软件交互最直接的层,所以更注重用户的体验性,主要从用户的感官、交互、浏览、情感和体验出发。具体测试用户界面的功能模块布局是否合理,整体风格是否统一,各个控件的放置位置是否符合客户使用习惯,是否符合操作便捷,导航是否简单易懂,界面中文字是否正确,命名是否统一,页面美观,文字、图片组合是否完美等等。测试时可以按照最终用户具体的需求,以及通用的用户体验原则进行测试list的编写,然后测试人员根据list执行。

3)兼容测试

兼容性测试是指测试软件在特定的硬件平台上、不同的应用软件之间、不同的操纵系统平台上、不同的网络等环境中是否能够很友好的运行的测试。通常兼容性测试为软件在不同浏览器、操作系统和分辨率下的兼容测试。测试时测试人员按照软件的具体兼容性需求进行测试。

4)易用性测试

考察评定软件的易学易用性,各个功能是否易于完成,软件界面是否友好等方面进行测试。测试时可以根据用户需求,以及同类行业软件对易用性的通用原则列出测试list,然后测试人员根据list执行。

5)性能测试

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

以上的内容,尤其是在测试类型这边,基本上就是小白循序渐进的过程。

之所以前面铺垫了那么多概念,主要是希望帮助大家理解软件测试。

1、“等价类测试”——主要是在输入框中输入不同的参数类型,来验证数据库判断逻辑的返回值是否正确。例如只允许输入中文的输入框,你就要去尝试输入英文、数字、符号以及中文+符号的组合。

2、“边界值测试”——对输入框所输入的内容进行长度限制的测试,超出边界范围和合理范围的处理情况。例如输入框只允许输入10个字符,你就要去尝试输入11个字符。还有输入数值的范围,例如发红包,最大是200元,我们就要测试200.01元,最小值是0.01元,我们就要测试0元,3、“因果图测试”——是针对有组合的选项框进行逻辑测试的一种有效手段,可以通过画表格的形式罗列出所有的可能性。防止测试遗漏~

4、“业务流程测试”——是对业务场景中所有涉及到的分枝和流程进行梳理,然后对每一条流水线进行测试覆盖,确保所有正向和逆向的流程可以跑通,其中最重要的是要测试各种“事件”,例如:输入密码错误一次,提示重新输入,错误超过3次则会冻结账号或者要求输入验证码,这都是属于事件的触发!

功能测试用例也有很多种,本人一直在北京上市公司工作,后面给您发一份我们公司的功能测试用例的模板!(如果需要这份模板可以私信我)


对于很多零基础的朋友想要入行软件测试,但却无从下手,这里我抽空和大家简单说下:零基础同学,应该怎样去学习软件测试

常规来说,学习软件测试有2条路可以选。

如果你自控能力相对来说不是很强,并且处于毕业需要找工作阶段的话,那么最省事的当然是找个靠谱的培训机构去培训啦,那样的话,你就只需要跟着培训结构认真的学习就行了。

当然,这里我们讲的是,怎么去自学软件测试,毕竟相对来说软件测试的门槛还真挺低的。

第一阶段测试基础

只要你是做测试,不管是什么测试,测试的基础、理论知识都是必须学会的,所以说测试基础是软件测试最基础也最最最重要的一部分了。

而学习的程度并不是说理解就可以了,最好是能够用自己的话给复述出来。

那测试基础有哪些内容呢?

测试的定义、测试的分类、测试的方法、测试的生命周期。

测试计划、测试方案、测试策略、测试用例的编写。

BUG的定义、BUG的分类、BUG的六要素、BUG的生命周期。

测试和开发流程的关系、瀑布流、V字形、W字型(双V)、螺旋型、敏捷等等。

PDCA、5W2H等分析管理的方法

质量管理体系CMMI(了解)

以上就是大概的内容,只要你肯背、肯写,都是能独立的掌握的。

第二阶段工具学习

软件测试的基础学完了过后,应该学习工具了。

其实学工具真的很容易,所以大家不用去纠结工具的选择。

把最基础的几个工具学习了就行了,以后用到什么工具再去学什么工具就可以了。

下面我会列几个必学的工具,不用太精通,会用就行了。

性能测试工具:loadrunner、jmeter。

接口测试工具:postman

抓包工具:fiddle

数据库管理工具:Navicat

项目/BUG管理工具:禅道、QC

搜索工具:百度、谷歌

第三阶段代码学习

如果你已经完成以上的两个部分的学习,那么恭喜你,你已经是一名出色的初级测试工程师了。

接下来,你需要考虑你的发展方向了。

是成为一个自动化测试工程师呢?

还是性能测试工程师呢?

还是安全测试工程师呢?

其实关于方向的选择,相信你自己心中已经有了答案了,那我们继续往下面说。

这个阶段,我们应该学习代码了,关于编程语言的选择,我推荐Java或者python,当然数据库也是必须掌握的!

自动化方向

等你代码已经基本掌握了,接下来就是要学习各种自动化测试了。

各种单端测试框架:unittest(python)、pytest(python)、JUnit(java)

WEB自动化测试框架:selenium(适用于java-python-javascript)

APP自动化测试框架:appium(适用于java-python-javascript)

以上的内容,根据你学的语言进行选择。

appiunm和selenium根据你参与的项目进行选择。

性能方向

对loadrunner和jmeter的掌握更加的深入。

可以手写脚本、脱离录制。

学会了多线程编程、能够手写java或者python、不用工具直接实现压测。

学习linux,毕竟性能总是和服务器打交道的。

学习系统架构的相关知识、方便你更容易的分析系统瓶颈。

说实话、性能方向的提示更难、因为需要掌握的东西太多了。

性能测试做深入了,基本上就是架构师的水平了。

可能你现在看着这个性能方向的学习一脸懵逼。

没关系、等你把上面的编程语言学会了你就不懵逼了。

安全方向

渗透测试

SQL注入

暴力破解

脱库

第四阶段

经过之前三阶段的学习之后各位接下来考虑的就应该是怎样写代码更合理、怎样测试会更全面。

上面讲的都是教你应该怎么做。

而在第四个阶段你需要自己去思考为何要这样做,也就是说这个阶段你要学会的是主动学习,跨过了这个阶段就基本上可以成为专家了。

学习都是水到渠成的,在这个时候,你应该已经掌握了不少框架了,甚至自己也能开发合适的框架了,已经有了属于自己的一套东西了。


从零开始学习软件测试,有两条路:自学和培训班。在这里不推荐自学,首先是学习软件测试还是需要一定的坚持和理解力的,但是现在很多人工作就很忙,没有时间和精力去字形研究;培训机构有专业老师,同时还会有非常多跟你经历差不多的人一起学习,方便交流心得。

很多人不相信培训机构,觉得就是骗钱的,误人子弟!我相信这样的机构绝对有,可能还不少,但是有时候自学吧,消耗的时间比较长,如果没有基础的话,想要自学也是比较难的,现在网上的软件测试资料也比较多,需要自己去识别哪些是自己要学习的,不然很容易陷入迷茫。

培训机构在这方面还是有一定优势的:学习时间相对较短,整体学习比较全面,学习内容也比较集中。而且有老师给指导,学习的范围也是目前行业的热门技术,学习更有针对性,转行的效率更高。

所以选择专业正规的培训机构学习还是可以滴,在挑选培训机构上,要注意这几点:

授课老师

想学软件测试,有丰富工作经验的,不脱离社会工作要求的老师会比较好,这样就可以了解现在工作的方向,去针对性教学。

机构专业性

现在有很多机构确实是骗钱机构,所以一定要事先了解一下机构的专业性,有没有联系老师,联系群,会不会随时跟进,如果是付了钱就消失的,一定要绕开。

课程安排

很多人的基础和学习目的都不同,所以说那种把所有学员都安排在一起的肯定不专业,可以去了解一下机构的课程管理,找到自己想学的,这样就万无一失啦~

找到合适的培训机构之后,其实事情就简单很多啦,你就可以去跟机构沟通,你目前是什么处境,想要达到什么样的成果,像我们柠檬班有全程班和速成班,还会根据学习的方向不同分为Python班,Java班等等,课程非常多分类,在选择课程的时候可以多和班主任沟通,选择之后,就跟着老师学就好啦~

如果需要软件测试视频干货学习资料的,可以私聊我免费获取哦~


原始地址:/rebang/6788.html