软件测试工程师应该怎样提高自己?----阿里十年软件测试工程师告诉你!
Posted 程序员小濠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试工程师应该怎样提高自己?----阿里十年软件测试工程师告诉你!相关的知识,希望对你有一定的参考价值。
向比努力更重要。所以想提高自己,最好的方法是先得给自己建立一套牛逼的知识体系。
不知道什么是牛逼的知识体系呢?那我们可以利用反向思维,先想清楚坏的知识体系是什么,然后避免它。
坏的知识体系按照《穷查理宝典》书籍的介绍,主要有三点特征,分别是缺乏纵深、单一化和松散无联系。
先说第一个,缺乏纵深。这点很好理解,就是你什么都知道一点,但也什么都理解得不够深刻,那你就会发现,很难打通现象和底层规律之间的通道。这样的话,我们在社会上的竞争力就会很弱。
再说第二个,单一化。单一化的知识体系会造成狭隘的视野。举例某个公司,长期做销售的人会认为“产品卖得好,主要是销售的功劳”,而长期做产品研发的人呢,会认为“产品卖得好,主要是是产品质量好,销售不怎么重要”。显然这两种看法都很片面,这就是单一化。
还有第三个,松散无联系。就像任意堆积的衣服一样,不去整理它们。长此以往,不仅增大了你的认知负荷,也容易让你形成松散凌乱的知识体系。
而这3大特点,正是我们大多数人的知识体系,所以我们是普通的平凡人。
所以你要提高自己,打造自己的不平凡,就必须首先打造相反的知识体系即可。那就是1、有纵深,2、不单一,3、知识合理交叉 。如果你认同上面这3点知识体系,那么软件测试工程师如何提高自己就有方向了。
测试人员具体如何提高自己呢,那就是按照下面三个方面打造即可:
1、打造到纵深的测试技术体系 ;
2、提升业务能力,看问题不单一;
3、打造软技能,实现交叉合理实现知识
一、打造到纵深的测试技术体系
打造到纵深的测试技术体系,咋一看感觉很空洞、很抽象?那接下来我们就从几个具体方面来探讨一下什么技能比较重要以及该如何学习该技能。
1、数据库相关知识
之所以把数据库单独列举出来,是因为数据是一个系统的核心和灵魂,没有了数据系统就只是一个空壳,没有任何的价值。我们平时的测试工作,其实就是在测试数据的交互、数据的流转、数据的展示、数据的状态变化是否正常。
- 学习一种关系型数据库:比如mysql、Oracle等。作为测试人员至少熟悉一种数据库,并且能够通过编写SQL语句实现基本的增删改查操作,尤其是查询操作需要重点学习,包括:多表关联、条件过滤、分组查询、排序、分页查询、子查询等。
- 学习非关系型数据库:比如Redis、MongoDB等。
2、测试工具的使用
工欲善其事必先利其器,为了提高测试的效率、为了解决一些手工测试无法解决的问题,我们需要学习很多测试工具,来更好、更快的完成测试工作。下面把常用的测试工具及用途列举一下:
- Fiddler、Charles:抓取接口请求数据包,协助定位问题及接口测试
- 禅道、Jira:管理测试用例和缺陷
- Navicat:数据库连接客户端
- Postman、JMeter、SOAPUI:接口测试工具
- JMeter、Loadrunner:性能测试工具
- PyCharm、IDEA:代码集成开发工具
3、编程技术
如果想知道被测系统底层实现的原理你需要学习编程,如果想提高测试的工作效率你需要学习编程,如果想在测试的道路上走的更远你需要学习编程...,学习一门编程语言对测试人员来说是百利无一害!
根据目前的市场来看,对于测试人员来说要想学习一门编程语言的话,建议选择Java或者Python。
- Python语言最大的好处是简单易学、上手快
- Java语言有一定的难度,但是对于开发来说Java是市场体量最大的,所以学习Java方便实现对后台系统进行白盒测试和性能测试
针对一门编程语言的学习步骤如下,以Python语言为例:
- 学习Python的基础语法:变量、标识符、流程控制、数据序列、函数
- 学习面向对象编程:类、对象、封装、继承、多态
- 学习一些框架用来解决具体的问题
实现Web自动化测试:Selenium、UnitTest/Pytest
实现APP自动化测试:Appium、UnitTest/Pytest
实现接口自动化测试:Requests、UnitTest/Pytest
4. 培养代码封装优化的能力
UI自动化测试:PO模式、数据驱动、关键字驱动
接口自动化测试:代码分层封装,降低代码的耦合性
5. 测试工具和测试平台的开发
以上是关于软件测试工程师应该怎样提高自己?----阿里十年软件测试工程师告诉你!的主要内容,如果未能解决你的问题,请参考以下文章