软件测试怎么自学?如何高效率的自学软件测试才能快速达到就业的程度?自学软件测试有哪些必不可少的学习资源和辅助工具?本篇文章,测试猿课堂将围绕自学软件测试的几个侧重点,给大家讲解下,一个新手自学软件测试的一些方法、路线和资源。
自学软件测试一定要注意一点,软件测试是分为两个学习维度的,一个是软件测试的理论知识、一个是软件测试每一个测试步骤需要用到的技术知识。正确的学习步骤是:理论知识 > 技术知识 > 项目实践巩固。
1、软件测试基础知识
(1)学习软件测试的分类:
注:软件测试还有很多其他的分类,诸如按运行代码分的静态测试和动态测试,还有按软件特性区分的功能测试、性能测试等等。
(2)掌握软件测试的流程
软件测试是一项系统且周期化的工作。虽然软件测试有很多类型(移动自动化测试、web 自动化测试、接口测试等等),但是所有的测试流程都大致是同一个路线,掌握测试流程,才能保证我们在实际工作当中,高效率的做好测试工作!
测试流程:需求分析与评审(重点) 》 编写测试计划与测试方案 》 设计测试用例与评审(重点) 》 执行测试用例与 BUG(重点) 》 编写测试报告
(3)掌握项目测试需求的分析
分析项目的测试需求是整个测试流程的第一步。我们分析测试需求的目的,就是为了掌握软件和整个项目需要来测试的点,比如项目的安全性、兼容性、性能、接口调用等等。说白了测试需求分析这个点,就是为了让我们能清楚这个项目,我们要测试哪些、重点关注哪些测试点、测试的结果怎样才算合格、怎么才算缺陷等等。
(4)了解如何生成测试计划
所谓的测试计划,其实就是确定我们要对项目进行的测试的范围、测试的方法、整个测试流程要用到的资源、以及对接的测试流程文档等等。
测试计划的作用在整个测试流程中是非常重要的,测试计划决定了整个项目的测试点、测试点的被测特性、细分化的测试任务等等。所以我们学习这一点,就要了解整个测试计划是如何生成的,它有什么作用
(5)掌握撰写测试用例的方法
什么是测试用例?所谓的测试用例我们可以将其理解为就是一个【例子】。什么意思呢?我们测试软件的最终目的,是为了测试出软件的各个点是否符合我们的测试预期。既然叫预期,那肯定事先有一定的安排对吧。那么这个安排就是指的用例。用例是指我们提前设计好的,包含了各种测试点和测试结果的预期例子。
比如我们测试一个点,这个点可能有 N 种结果,那么我们便会根据项目需求分析中的,尽可能的列出所有结果(不绝对),每种结果都有它最终执行的不同变化。这个就是测试用例。
(6)熟练掌握测试评审的细节
测试评审这一个其实包含了诸如需求评审、用例评审、测试报告评审以及测试计划评审等多个环节。我们需要知道和学习的就是什么是评审,以及各个环节的评审怎么做。
2、计算机相关的基础知识
(1)计算机基础:我们学习计算机基础这块儿的知识,需要掌握计算机的运作原理,CPU、内存地址等等硬件之间的协作原理和方法。学习计算机基础的目的是因为软件测试作为一个 IT 岗,后期的多维度岗位发展,其实都是建立在计算机基础之上的。比如学习编程语言,在掌握了计算机基础知识后,很多难点可能就变的比较容易理解了。
(2)数据库:数据库类型有很多,比如常见的 MySql、Sqlserver、Oracle 等等。但是目前测试行业使用较多的还是 MySql 。所以我们重点学习 MySql 相关的数据库基础就行了,具体需要掌握比如数据库语言基础、数据库相关操作命令(增删改查)等等。
(3)Linux 系统:Linux 系统是互联网中很多行业都会选择的服务器类操作系统。我们需要学习 Linux 系统的安装、文件移动和更改、文件目录层级操作、用户权限的分配与管理等各种命令。Linux 系统与 Windows 系统区别在于,Linux 没有图形化的操作界面。windows 上的复制、粘贴、移动等等操作,在 Linux 上都是通过命令来实现的。所以我们学习 Linux 的重点就是要掌握和记忆各个常用操作的命令。
(4)前端基础:我们学习前端相关的知识其实是为了后续的 Web+Selenium 等等与应用界面操作相关的测试技术。前端相关的我们需要学习:HTML、CSS、JavaScript 等等。这些知识点,我们只需要掌握一下,知道是什么意思,怎么用的就成,不需要深入理解。毕竟我们不是做前端的。后期工作实践中,接触的多了印象自然就深了。
(5)编程语言学习:从事自动化测试工作,掌握一门编程语言是必须的。测试猿大课堂建议大家可以选择 Python 语言。因为目前很多企业的自动化测试框架都是用 Python 语言开发的,Python 自身在自动化测试领域应用同样非常广泛。
编程语言这一点的学习,我们可以根据下图来掌握学习的方向和侧重点!
3、软件测试进阶学习内容
(1)App 自动化测试:APP自动化测试,是当前软件测试行业中较为主流的测试技术。我们需要掌握APP测试工具Appium的使用,掌握常见的多系统(Android、IOS、鸿蒙的APP测试方法,包括移动自动化测试环境的搭建等等,这一块可以看下图:
(2)接口测试:学习和掌握接口测试的概念和原理。掌握HTTP/HTTPS协议的原理,学习和掌握Dubbox的接口测试方法和协议接口能力,主要掌握Postman的操作以及使用技巧
(3)性能测试:性能测试属于高端测试工程师需要掌握的技术,对技术要求也有一定的门槛。学习性能测试需要掌握系统架构、Loadrunner等常用的测试工具。学习系统化的测试思维和流程,掌握性能测试的设计与需求分析,以及编写测试脚本。
(4)Web 自动化测试:Web 自动化测试的学习重点主要在于 Web+selenium 的测试环境。我们需要去学习 WEB 自动化测试的方法,这里主要要熟悉使用自动化测试框架中元素的定位方法(ID、Name、X-path、Tag 等等)、和界面的操作方法。以及 WEB 自动化测试流程和脚本编写。