In 2023, it is said that software testing is saturated, is it true?

In the past two days, I talked with my friends about the development of software testing. In fact, software testing has undergone great changes unknowingly. The software testing industry in the past few years was still an outlet. The software testing industry has flooded into the software testing industry. At present, the "gap" in the software testing industry has been basically saturated. Of course, what I am talking about is that there are very few job requirements for the most basic functional testing, but there are still many opportunities for automation, performance, security, and even big data testing and AI testing that may appear in the future.

 

"The back waves of the Yangtze River push the front waves, and the front waves die on the beach", a joke that once made people smile, has now become a true portrayal of the software testing industry. Due to the low barriers to entry and high salaries in the software testing industry, there are constantly fresh blood washing over the "forerunners" in the software testing industry, which has brought us great pressure.

One can imagine the pressure faced by those students who have been in the industry for several years but are still functional tests. After all, the software testing industry is still a technical position. Since it is a technical position, it must rely on technology to speak. Continuously mastering new skills and improving the ability of software testing to "find bugs" has become an urgent problem that software testing practitioners need to solve. Therefore, most junior functional testers are now moving closer to automation, performance, and security.

However, there are still many software test engineers standing at the "crossroads" confused, helpless, and unable to find their own direction.
 

 

All the confusion is due to thinking too much and doing too little! Every practitioner in the software testing industry is aware of the current dilemma they are facing, but there are still too few people who can make timely changes and adapt to the changes of the times. Do most people obviously "mountain Tai collapsed in front of them and their faces are like dirt" but they can only watch themselves being eliminated by the industry?

No, the following knowledge architecture diagram of the development direction of software test engineers will tell you where to work hard:
learning suggestions

1. Generally speaking, when testing newcomers, you first need to lay a good foundation. You can test the theoretical foundation by reading some classic books or there are many free resources on the Internet. Choose the first two basic books, and you will benefit a lot.

2. At the beginning, it is not recommended to join too many technical groups or other forums to ask questions. If you encounter problems in the early stage, you can search and try to solve them yourself. Of course, you need to control a stop loss point, and don’t spend too long on a problem.

3. While learning the basics by yourself, you must take good notes, and you must do it after your own understanding. You can use mind maps to connect what you have learned before and after

4. After reading a book or a stage, you can take a self-assessment and consolidate or check for omissions by finding some classic written test questions or some istqb questions, and consolidate what you have learned in a targeted manner

5. Next, you can find some projects to do or go to the crowdtest platform to see some basic project testing processes, including the writing specifications of basic test documents, etc. The testin crowdtest platform is a good platform for training, at least test case design and execution And bug exploration and submission of defects are very good.

 

6. At present, there are many platforms that offer some free public courses. Through the technical discussion group, you can receive news push, set a good time to listen to some test methods in professional fields, and you can quickly understand the general process. (Be sure to go through strict screening and choose high-quality ones, otherwise a lot of time will be wasted):

learning route

 

Phase 1 Test Basics

The basics of testing are the most important part of software testing. As long as you are doing testing, no matter what kind of testing it is, the basics and theoretical knowledge of testing must be learned.
What is the best level of learning? It is best to be able to understand and retell it in your own words.
After all, during the initial test of the interview, the questions asked are all assessed from the basic theory.
What is the basis of the test?

The definition of test, the classification of test, the method of test, the life cycle of test.
Writing of test plans, test scenarios, test strategies, and test cases.
The definition of BUG, ​​the classification of BUG, ​​the six elements of BUG, ​​and the life cycle of BUG.
The relationship between testing and development processes, waterfall flow, V-shaped, W-shaped (double V), spiral, agile, etc.
Analysis and management methods such as PDCA and 5W2H
Quality management system CMMI (understanding)
Well, it is probably the above content. All of the above are theoretical and document capabilities. As long as you are willing to memorize and write, you can master them independently.

Common testing tools in the second stage
Testing tools are always the right-hand man of software testers. You can’t completely rely on tools, but you can’t be without tools. In the process of learning software, you must focus on the use of intermediate software testing tools. The figure below covers elementary and intermediate levels If you want to learn the testing tools that software testing engineers need, start learning.

In the software testing professional circle, there are thousands of tools, and it is impossible to use all of them. At least you must know which tools are available, when to use which tools, and what problems each tool can solve, and then apply several tools in depth. , Let me summarize it for you below.

test management tool

禅道:简单好用,市场主流,互联网行业居多
Jira:简单好用
QC/禅道:简单好用,市场主流,互联网行业居多
Jira:简单好用
QC/ALM:复杂,收费,电信/金融行业使用较多
bugzilla:功能简单
svn:代码和文档管理工具
git:但是多分支管理比svn好ALM:复杂,收费,电信/金融行业使用较多
bugzilla:功能简单
svn:代码和文档管理工具
git:但是多分支管理比svn好

Interface Test Tool

Jmeter(开源)
postman
SoapUI
推荐使用 jmeter 和 postman。

performance testing tool

loadrunner:大而全,要学精通还是有点难度,重量级工具,过去和现在都是行业老大
jmeter:基于java平台的性能开源测试工具,其实也很强大,而且比较好用
Locust:基于python的一个性能测试工具

White Box Testing Tools

junit/testng:java下的单元测试框架
unittest/pytest:python下的单元测试框架
cppunit:跨平台的c++单元测试框架
PhpUnit:Php语言下的单元测试框架
TestBed:一个重量级的白盒测试软件,可以进行单元测试、集成测试、静态测试,军工行业常用
Klockword:静态测试工具,军工行业常用

Continuous Integration Tool

Jenkins:比较常见的一种CI工具
Hudson

network testing tools

以HTTP/HTTPs协议为主,网络测试工具有:
wireshark
fiddler
charles

app automation tools

appium:这个应该算是目前最流行的基于app的自动化测试框架了
uiautomator:安卓自动化测试框架,基本上支持安卓的所有事件操作
Monkey:安卓自带的测试工具
Monkey Runner:Monkey改进版,支持自己编写脚本测试,用Python语言
Robotium:一款国外的Android自动化测试框架,用法比较

web security testing tool

appscan:算是用的非常多的一款工具了,扫描后能够将绝大部分的漏洞找出来
fiddler:网络抓包工具
burpsuite:暴力破解、抓包工具
skipfish:这是一个轻量级的安全测试工具,处理速度很快,每秒可处理2000个请求。

The third stage of code learning
Well, after learning the above two parts, congratulations, you are already an excellent junior test engineer.
Next, you have to consider your development direction.
Should you become an automated test engineer?
Or a performance test engineer?
Or a security test engineer?
ah! This question is so difficult! I don't know how to choose.
Anyway, I know a little bit about everything, and I can meet for any position.
Regarding the choice of direction, see my article

Well, I believe you already have the answer in your heart, then let's continue to talk about it below.
At this stage, we should learn code. Regarding the choice of programming language, I recommend Java or python.
There is also a database that must be mastered! In the study of tools, I think you can already master the related applications of the database!
So now you can learn programming languages,
but you don't have to learn as deeply as development.
For example, Java, you only need to learn the JavaSE part is enough for you. The same is true for python, just learn the basics.
In short, you can choose one of the two to study in the early stage.
What? You ask me what I learned.
Of course I can do both,
hahahahahahaha, no surprise! Not surprisingly! 

Automation direction

When you have basically mastered the code, um, very good, the next step is to learn various automated tests.

Various single-ended testing frameworks: unittest (python), pytest (python), JUnit (java)
WEB automated testing framework: selenium (applicable to java\python\javascript)
APP automated testing framework: appium (applicable to java\python\javascript )
The above content, choose according to the language you learn.
Appiunm and selenium are selected according to the projects you participate in.
But it doesn't matter, anyway, sooner or later you have to learn.
There are too many tutorials in this part. After you have learned the basics of programming, just go to Baidu, and many blog forums have tutorials.
And depending on your level at that time, you can easily understand it.

performance direction

 The mastery of loadrunner and jmeter is more in-depth.
You can write scripts by hand, off the record.
Learned multi-threaded programming, can write java or python by hand, and directly implement pressure testing without tools.
Learning linux, after all, performance always deals with servers.
Learn the relevant knowledge of the system architecture, so that you can analyze the bottleneck of the system more easily.
To be honest, the hint of performance direction is more difficult, because there are too many things to master.
The performance test has been done in depth, which is basically the level of the architect.
Maybe you are now looking at this performance-oriented learning with a look of confusion.
It doesn't matter, when you learn the programming language above, you won't be confused.

 security direction

 

Penetration testing
SQL injection,
brute-force cracking ,
database removal ,
etc.
In fact, security testing is basically biased towards network attack and defense, which is the legendary hacker, but we are all good people, and the development direction of this is white hat.
It is recommended to know Chuangyu's learning system.
I guess you are even more confused when you see this.
It's okay, you'll know what I'm talking about when you learn the basics.
After all, you are still a rookie.
Don't bother with such little things.

Everyone at this stage, the normal situation should be the level of an intermediate test engineer.
 

The fourth stage of architecture learning

 

After the first three stages of learning are completed, you should consider how to write code more reasonably.
How to test more comprehensively.
How can we better guarantee the quality of the project.
In my opinion, at this stage, you should go back and relearn the basics of testing.
Because the improvement at this stage is the improvement of thinking and methods.
All the above are teaching you how to do it.
At this stage you have to discover for yourself why you did what you did.
After crossing this stage, you can basically become an expert.
Learning is a matter of course. At this time, you should have mastered a lot of frameworks, and you can even develop suitable frameworks yourself.
Automated testing frameworks, performance testing frameworks, and more.
Already have a set of things of their own.
If you pretend to be aggressive in a group or on a forum, others will respectfully call you a big boss.
Maybe you have also learned some other technologies, and even stepped into the direction of the full stack.
In short, at this stage, there is no learning route.

[Finally]
I believe that if you have mastered all the knowledge and skills in the above picture and can use them flexibly, your monthly salary of more than 20k will not be a problem

Guess you like

Origin blog.csdn.net/lzz718719/article/details/130657981